Vivre une relation de long terme avec Kafka, sans craindre la rupture
Kafka est un incontournable dès qu'il s'agit de diffuser des informations au sein des applications distribuées. Je présente ici son histoire ma vision d'architecte conseil, en replaçant Kafka dans le contexte de l'industrie.
< Les 3 avantages d'une architecture orientée événements pour une plateforme IT
Kafka est un incontournable des architectures modernes, dès qu'il s'agit de diffuser des informations au sein des applications distribuées. Cependant nos spécialistes ont parfois du mal à proposer d'adopter cette solution, ou à mettre en mouvements les chantiers qui permettraient d'en exploiter la pleine puissance. Je présente ici ma vision de ce sujet, en replaçant Kafka dans le contexte de l'industrie.
Apache Kafka est un système de traitement de flux de données distribué, initialement développé par LinkedIn, et publié sous licence open source en 2011. Le projet a rapidement gagné en popularité et a été adopté par un grand nombre d'entreprises, notamment pour ses capacités de traitement en temps réel et de scalabilité. En 2014, trois des co-fondateurs d'Apache Kafka ont quitté LinkedIn pour créer Confluent, une entreprise spécialisée dans les solutions de traitement de flux de données en temps réel basées sur Apache Kafka, dont l'objectif était de fournir une plateforme plus complète et plus facile à utiliser pour les entreprises.
Confluent a donc repris et amélioré le code source d'Apache Kafka pour créer sa propre distribution, qui inclut de nombreuses fonctionnalités supplémentaires, telles que :
- Kafka Streams : une API Java pour la création d'applications de traitement de flux de données en temps réel, directement sur la plateforme Kafka.
- KSQL : un langage de requête SQL pour le traitement de flux de données en temps réel, permettant aux utilisateurs de traiter et d'analyser des données en temps réel sans écrire de code.
- Confluent Schema Registry : un service pour la gestion des schémas de données dans un environnement Kafka, permettant de valider, stocker et évoluer les schémas de manière centralisée.
- Confluent Control Center : un tableau de bord pour la supervision des clusters Kafka.
La distribution de Confluent a donc évolué considérablement par rapport à la version originale d'Apache Kafka, offrant des fonctionnalités supplémentaires pour faciliter la mise en place de solutions de traitement de flux de données en temps réel. Cependant, on note que Confluent continue de maintenir une forte compatibilité avec la distribution Apache Kafka, et que les deux versions peuvent être utilisées de manière interchangeable. Confluent contribue également de manière significative au développement continu du projet Apache Kafka, en proposant des améliorations et des corrections de bugs à la communauté open source.
With great power comes great responsibility
Comme Kubernetes, mais dans un tout autre registre, Kafka est généralement appréhendé par les DSI comme un outil complexe à administrer, en particulier pour les utilisateurs qui n'ont pas une expertise technique approfondie dans la gestion de systèmes distribués. Or le degré de complexité et de technicité associé à Apache Kafka dépend en grande partie de la configuration et de l'utilisation spécifiques de chaque cas d'utilisation. Nous observons à cet égard deux tendances courantes chez nos interlocuteurs : la première consiste à repousser son adoption, et la seconde à internaliser les compétences, plutôt que de risquer d'en perdre la maîtrise en faisant appel à des intervenants externes.
De nombreuses entreprises et organisations ont toutefois réussi à déployer et à gérer avec succès des clusters Kafka à grande échelle, en utilisant une combinaison de bonnes pratiques, d'outils de gestion dédiés et d'une expertise technique solide. Des outils tels que Confluent Control Center, ainsi que les services gérés proposés par des fournisseurs cloud tels qu'Amazon Web Services et Google Cloud Platform, peuvent également contribuer à simplifier l'administration de Kafka pour les utilisateurs qui ne disposent pas d'une expertise technique approfondie. Ces approches n'ont rien d'innocent, j'imagine ; étant donné que Kafka n'est qu'une alternative parmi d'autres solutions orientées message ou événement, y compris des offres de services génériques intégrées aux plateformes cloud. Ces portages doivent inciter les utilisateurs on premises à sauter le pas vers un PaaS, pour ensuite les guider financièrement vers une approche plus générique, moins onéreuse.
Une fois que vous aurez validé votre besoin d'adoption ou de migration avec les conseils de WEnvision, les experts de SFEIR – partenaire officiel Confluent Service et Trainer – vous aideront à mettre en place et exploiter une plateforme événementielle avec Kafka, tandis que ses formateurs certifiés pourront accompagner votre montée en compétence.