Le mois dernier, se tenait à Londres le 2ème Kafka Summit London. Cet événement de deux jours organisé par Confluent (les créateurs de Kafka) dans la capitale Britannique, s’est focalisé sur les architectures de streaming de données et orientées “événements”. Les équipes Devoteam nexDigital, l’expert de l’API Management et des plateformes d’échanges, étaient sur place pour l’un des salons les plus excitant du premier semestre en Europe.
Que peut on en retenir? Voici 5 points essentiels selon les équipes nexDigital by Devoteam:
1. Apache Kafka en tant que service
Le message est passé par Neha Nerkhade (CTO de Confluent) lors de la Keynote d’ouverture ; Confluent offre la possibilité d’installer votre plateforme Kafka sur le cloud. Confluent Cloud inclut Schema Registry, Kafka S3 Sink Connector et KSQL qui sont entièrement supportés.
Un cluster Kafka en 5 secondes : le temps de donner un nom à votre cluster et vous serez en mesure d’utiliser Kafka sur le cloud.
2. Qu’est-ce que Kafka ? Pas un MOM mais une base de données ?
Une des définitions standards de Kafka est : journaux distribués de commits (ie distributed commit logs). Tout le monde essaie de comparer les nouvelles choses à ce qu’il connaît le mieux (cf. Middleware, ESB, Base de données, Système de fichiers).
Une des principales différences avec Message Oriented Middleware est la persistance distribuée des données. Kafka offre des fonctionnalités inédites et intégrées comme la relecture et le découplage des rythmes de consommation de données. Dans la Keynote, Martin Kleppmann pose la question ‘Est-ce Kafka une base de données ?’ Pour répondre à cette question, Martin parcourt les caractéristiques ACID d’une base de données (Atomicity Consistency Isolation and Durability). Comme conclusion, la plateforme Kafka peut respecter les caractéristiques ACID en construisant la bonne architecture avec les bons éléments.
3. Kafka fonctionne vraiment bien en production !
Plusieurs cas d’utilisation ont été présentés et l’on observe une constante lorsque l’on se penche sur les environnements de production. Kafka atteint ses objectifs de haut débit et de scalabilité (certains cas d’utilisations présentaient plusieurs centaines de millions d’événements par seconde). De plus, avec un soin particulier sur la surveillance (monitoring), Kafka aide à réduire les interventions de nuit.
4. Kafka et ESB sont les meilleurs ennemis
Kafka respecte sa promesse d’apporter des fonctionnalités comme la scalabilité, la persistance et la relecture des données qui sont très complexes à adresser avec des logiciels ESB. Dans la plupart du temps, l’utilisation d’un ESB entraînera l’utilisation d’un grand nombre de composants d’une partie tierce et l’architecture finira par devenir extrêmement complexe. Cependant, dans beaucoup d’entreprises les ESB ont déjà été mis en place et continuent à offrir des connecteurs que l’on ne souhaiterait pas ré-implémenter (SOAP, différents MOM, etc). Il serait probablement mieux de voir l’ESB comme étant une application qui peut communiquer avec Kafka. Aussitôt que vous êtes en mesure de stocker des événements au sein de Kafka, les applications pourront bénéficier de ces données sans avoir à prendre en compte les disponibilités de l’équipe ESB. En même temps, l’ESB peut également consommer les données et établir des flux orientés événement en utilisant ses capacités.
5. Faire fonctionner Kafka sur Kubernetes
L’opérateur de Confluent vous permet de piloter Apache Kafka au travers de Kubernetes. Il rend autonome l’approvisionnement et le management de Confluent Kafka. Les fonctionnalités incluent: un déploiement en quelques minutes, la gestions de l’intégralité des composants de la plateforme Confluent et effectuer des changements comme la scalabilité, les mises à jour progressives et l’équilibrage des données (data balancing).
Il est utilisable sur n’importe laquelle des infrastructures Kubernetes et donc déployable sur n’importe quel Cloud.