X

Les développeurs doivent suivre le rythme de l’essor du streaming de données


L’essor du streaming de données a obligé les développeurs à s’adapter et à acquérir de nouvelles compétences ou à être laissés pour compte. L’industrie des données évolue à une vitesse supersonique, et il peut être difficile pour les développeurs de suivre constamment le rythme.

SD Times a récemment eu l’occasion de s’entretenir avec Michael Drogalis, le principal technologue de Confluent, une société qui fournit un ensemble complet d’outils nécessaires pour connecter et traiter les flux de données. (Cette interview a été modifiée pour plus de clarté et de longueur.)

Heures SD : Pouvez-vous définir le contexte de la croissance actuelle du flux de données et dans quelle mesure est-il important que les développeurs y accordent plus d’attention ?

Drogalis : Je me souviens qu’en 2013 ou 2014, j’ai assisté à la conférence Strange Loop, qui était vraiment géniale. Et pendant que je me promenais, j’ai vu qu’il y avait cette conférence sur la scène principale par Jay Kreps, qui est maintenant le PDG de Confluent, et c’était à propos d’Apache Kafka. Je suis reparti avec deux choses en tête. Premièrement, ce gars était super grand comme 6 pieds 8, ce qui était très impressionnable. Et puis l’autre était qu’il y a au moins deux personnes dans le monde qui se soucient du streaming, ce qui est essentiellement l’ambiance à l’époque, c’était une toute nouvelle technologie.

Il y avait beaucoup d’articles universitaires à ce sujet, et il y avait clairement des zones d’intérêt pour le paysage technologique qui pouvaient être rassemblées, mais aucune d’entre elles n’avait vraiment éclaté.

L’autre projet à l’époque était Apache Storm, qui était un processeur de flux en temps réel, mais il lui manquait juste les composants qui l’entouraient. Et donc il y avait comme un ensemble de personnes : une petite communauté.

Et puis avance rapide jusqu’à aujourd’hui, et c’est juste un monde complètement différent. J’ai le privilège de travailler ici et de voir des entreprises de toutes tailles, de tous secteurs, de tous secteurs, de tous cas d’utilisation et avec toutes les exigences de latence. Et la transition est un peu choquante pour moi que vous ne voyiez pas beaucoup de technologies éclater aussi rapidement au cours d’une décennie.

Heures SD : Y a-t-il des projets autour de cela qui, selon vous, sont intéressants ?

Drogalis : J’ai vu quelques statistiques intéressantes cette année. Kafka de la Fondation Apache est l’un des projets les plus actifs, ce qui est plutôt cool, car la Fondation Apache a maintenant un grand nombre de projets qu’elle incube. Et j’ai également vu dans l’enquête annuelle auprès des développeurs de StackOverflow que Kafka était classée comme l’une des technologies les plus appréciées ou les plus reconnaissables. Le voir passer d’un courant sous-jacent à quelque chose de vraiment important et dans l’esprit des gens est plutôt génial.

Heures SD : Quels sont certains des défis de la gestion du streaming de données aujourd’hui ?

Drogalis : C’est un peu comme conduire de l’autre côté de la route que d’habitude. Vous allez à l’école et on vous apprend à programmer en Java ou en Python. Et donc le paradigme de base que tout le monde enseigne est le suivant : vous avez une masse de données dans une structure de données dans un fichier, et vous l’aspirez, puis vous la traitez, puis vous la recrachez quelque part. Et vous faites cela encore et encore jusqu’à ce que vous effectuiez votre tâche de traitement de données, ou que vous fassiez ce qui doit être fait.

Et le streaming bouleverse vraiment tout cela. Vous avez cette inversion de flux, et au lieu de structures de données bornées, vous avez des structures de données illimitées. Les données arrivent en permanence et vous devez constamment traiter la prochaine chose qui apparaît. Vous ne pouvez vraiment pas scruter arbitrairement le futur, car vous ne savez pas vraiment ce qui s’en vient. Les événements peuvent arriver dans le désordre et vous ne savez pas encore si vous avez une image complète. Tout est effectivement asynchrone par défaut. Et il faut un certain temps pour s’y habituer, car cela devient un paradigme de plus en plus robuste.

Mais, c’est certainement un grand changement pour se faire une idée. Je le compare en quelque sorte au moment où les gens commençaient à adopter JavaScript sur le serveur, et c’est asynchrone. Il faut donc un peu de temps pour s’y habituer, mais la puissance en vaut la peine.

Heures SD : Quelles sont donc les meilleures pratiques et les compétences les plus courantes nécessaires pour faire face à la croissance du streaming de données ?

Drogalis : Cela dépend en grande partie de l’expérience. Je veux dire, c’est une sorte de technologie plus récente qui a en quelque sorte évolué récemment. Donc, une grande partie consiste simplement à se salir les mains, à sortir et à comprendre comment cela fonctionne? Qu’est-ce qui fonctionnera le mieux ?

En ce qui concerne les meilleures pratiques, je pense que deux ou trois choses m’ont sauté aux yeux. Le premier consiste à comprendre l’idée de la conservation des données. Lorsque vous travaillez avec des systèmes orientés batch, l’idée est généralement de conserver toutes vos données pour toujours, ce qui peut fonctionner. Vous pouvez avoir une politique d’expiration qui fonctionne en quelque sorte en arrière-plan où vous effacez les données dont vous n’avez pas besoin à un moment donné, mais les systèmes de streaming semblent avoir cette idée de rétention intégrée lorsque vous vieillissez les anciennes données, et vous faites ce compromis entre ce que je garde et ce que je jette et ce que vous gardez est en quelque sorte la limite de ce que vous êtes capable de traiter.

La deuxième chose qui vaut la peine d’être étudiée est d’être intentionnel à propos de vos conceptions et de l’idée du temps. Avec le streaming, vos données peuvent en quelque sorte sortir de l’ordre. Je pense qu’un exemple classique de cela est peut-être que vous collectez des événements qui proviennent de téléphones portables, et peut-être que quelqu’un prend un téléphone portable et se rend dans la forêt amazonienne, et il n’a aucune connectivité. Et puis ils sortent et ils se reconnectent. Et puis les données de téléchargement de la semaine dernière, les systèmes que vous concevez doivent être suffisamment intelligents pour les regarder et dire que ces données ne se sont pas produites par hasard. Ça date d’il y a une semaine. Il y a du pouvoir et il y a de la complexité, et le pouvoir est évidemment que vous pouvez vraiment mettre à jour rétroactivement votre vision du monde. Et vous pouvez effectuer toutes sortes d’actions spéciales en fonction de ce que vous voulez faire avec votre domaine. Mais la complexité est que vous devez trouver comment gérer cela et en tenir compte dans votre modèle de programmation.