A la découverte de Kafka au Blend Web Mix 2017

C’est avec intérêt que je me suis inscrit à l’évènement BlendWebMix, afin de donner du grain à moudre à ma veille technologique. J’étais notamment attiré par le sujet «  A la découverte de Kafka, le log distribué »,  un outil dont j’avais déjà entendu parler à plusieurs reprises.  Cette conférence présentée par Florian Garcia a abordé de nombreux sujets autour du produit et a été très intéressante, en voici une synthèse.

Kafka est un outil facilitant les échanges de messages entre les différents systèmes d’information d’une entreprise en centralisant et redistribuant les flux de données en mode publish/subscribe. Il permet la mise en place d’une architecture orientée évènements (l’arrivée d’un message étant un événement, traité à son arrivée). Kafka est en charge du transport des données, mais pas de l’intelligence qui les exploite.

Des solutions à ces problématiques existaient avant Kafka : citons par exemple RabbitMQ. Toutefois, Kafka présente l’avantage de réunir en un seul outil un système distribué performant, scalable horizontalement (par simple ajout de serveurs), pouvant traiter de grandes volumétries de données, et la consommation de flux de données par plusieurs consommateurs. Kafka persiste également les messages, ce qui garantit la fiabilité du système.

Beaucoup de points techniques autour de Kafka ont été abordés. Notamment :

1 ) La terminologie autour de  Kafka et des concepts mis en œuvre :

  • Un broker est un serveur kafka.
  • Un cluster kafka regroupe l’ensemble des composants kafka : les brokers et zookeeper.
  • Un topic est une catégorie de messages.
  • Un producer est un système publiant des données sous forme de messages dans un topic Kafka.
  • Un consumer est un système qui va lire les données dans un topic Kafka.

2) Le fonctionnement du coeur de Kafka « en dessous du capot » :

  • Le découpage des topics en partitions pour séquencer les messages au sein d’un même topic.
  • L’utilisation d’un ID séquentiel pour identifier les différents messages dans les partitions.
  • L’utilisation d’un offset, coté consumer, qui référence l’ID du message courant. L’accès aux messages par les consumers exploite donc cet offset et permet de bonnes performances.
  • La possibilité de paralléliser les traitements, chaque partition pouvant être exploitée en même temps par un même broker.
  • L’outil Zookeeper (un autre outil de la fondation Apache), exploité ici pour coordonner les brokers et le partage d’information.

3)  La présentation d’outils supplémentaires autour de kafka, citons par exemple :

  • Kafka Connect : permet une intégration standard de kafka avec d’autres systèmes
  • Kakfa Manager : un interface web pour administrer Kafka.

4) De bonnes pratiques pour utiliser au mieux Kafka :

  • Privilégier l’échange de petits messages
  • L’importance de monitorer Kafka, ainsi que les systèmes producers et consumers pour être en maîtrise de son système
  • Ne pas considérer Kafka comme une « silver bullet », c’est à dire comme la solution que l’on peut déployer absolument partout.

Pour conclure, cette conférence sur Kafka est un bel exemple de la qualité des conférences techniques auxquelles il est possible d’assister au BlendWebMix. C’est d’une part l’occasion d’y découvrir de nouveaux concepts, et d’autre part un moyen de bénéficier des explications d’un expert sur un produit qu’on peut être amené à utiliser ultérieurement dans sa vie professionnelle.

Pour aller plus sur Apache Kafta voici un lien très complet sur le sujet.

Arnaud Bringand, Architecte Java à Lyon.

Aucun commentaire pour A la découverte de Kafka au Blend Web Mix 2017