arthead - stock.adobe.com
Apache Kafka : ZooKeeper fait de la résistance, mais Confluent a un plan
Si la communauté derrière Apache Kafka et Confluent a acté la fin du recours à ZooKeeper depuis deux ans, le protocole de consensus devrait connaître encore quelques années de répit, le temps que les entreprises se fassent à KRaft et qu’elles commencent à déployer ce remplaçant en production.
En amont du Kafka Summit de Londres prévu le 16 et le 17 mai 2023, Confluent a annoncé le 3 mai dernier la disponibilité de Confluent Platform 7.4, sa distribution supportée et self-managed d’Apache Kafka.
Cette version majeure implémente les fonctionnalités en provenance d’Apache Kafka 3.4. En premier lieu, elle permet de prendre en charge le protocole de consensus KRaft en production pour la gestion de la répartition des nouveaux clusters. Cette technologie avait été testée en préversion dans la version 7.0 de Confluent Platform, il y a déjà près de deux ans.
Il s’agissait alors de se conformer à la décision de Confluent et de la communauté de se passer d’Apache ZooKeeper, l’un des changements clés apportés par Apache Kafka 3.0.
Pour rappel, ZooKeeper est un middleware consacré à la gestion de la coordination distribuée. Historiquement, Kafka s’appuie sur ce module servant de gardien du consensus entre les nœuds, de comptable des clusters, de responsable de la configuration des topics, des accès et des quotas de données.
Or ZooKeeper pose des problèmes de latence à moins que les serveurs sous-jacents soient associés à des SSD, de pertes de données au moment d’ajouter des serveurs de quorum, et d’autres aléas qui empêchent la montée en performance du système de messagerie pub/sub.
Surtout, la communauté de Kafka n’avait pas la main sur ZooKeeper, un projet indépendant.
Une étape de plus dans le remplacement de ZooKeeper
« ZooKeeper est historiquement utilisé pour la gestion du quorum et des métadonnées », confirme Alexandre Lamy, directeur régional des ventes chez Confluent (France, Belgique, Luxembourg, Suisse, Maghreb). « Puisque c’est un projet externe, pour les clients, cela veut dire qu’ils doivent gérer ou faire gérer deux technologies distinctes. C’est important que cette dépendance disparaisse ».
KRaft introduit une manière plus consistante de gérer les métadonnées de Kafka en s’appuyant sur une variante orientée événements du protocole Raft. Les contrôleurs du quorum s’appuient sur cette variante pour répliquer les métadonnées à travers les brokers associés à un cluster à l’aide d’un modèle de stockage spécifique. Celui-ci, couplé au protocole de consensus, doit faire en sorte que tous les états soient synchronisés entre les brokers.
Confluent défend le fait que le nouveau mode « améliore la mise à l’échelle du partitionnement et la résilience tout en simplifiant les déploiements de Kafka ». De plus, cela rendrait le failover des contrôleurs « pratiquement instantané ». Selon ses mesures, un système Confluent Platform gérant deux millions de partitions s’arrête en une trentaine de secondes avec KRaft contre plusieurs centaines de secondes avec ZooKeeper, que l’arrêt soit prévu ou non.
Toutefois, ce changement prend du temps. D’ailleurs, il faudra encore quelques années avant que ZooKeeper disparaisse des architectures existantes établies sur Kafka. Les deux technologies vont probablement cohabiter : Kafka 3.4 inclut en accès anticipé la possibilité de migrer des clusters dépendant de ZooKeeper vers ceux couplés à KRaft. Il s’agit pour les équipes les plus expertes de l’utiliser dans des environnements de développement ou de test.
L’implémentation du « nouveau » protocole ne prend pas encore en charge les clusters multirégion, la gestion complète du RBAC ou encore la reconfiguration du quorum. « Le mode combiné, avec lequel un broker est aussi un contrôleur, n’est pas encore prêt pour les charges de travail en production », ajoute la documentation.
Apache Kafka 3.5 devrait faire un pas de plus vers l’adoubement de KRaft comme standard en comblant quelques-uns des manques fonctionnels, mais la touche finale, consistant à proposer un chemin de migration claire de ZooKeeper vers KRaft demeure un projet en cours, « reporté à une version ultérieure », selon la terminologie de la communauté.
Confluent Platform, plus simple à déployer et à automatiser
En attendant, Confluent entend lisser le déploiement de sa plateforme sur Kubernetes. Confluent for Kubernetes (CFK, anciennement Confluent Operator). L’éditeur a développé une CRD adaptée au « provisionnement, à la gestion et à la supervision » du mode KRaft. Les autres ajouts doivent simplifier la gestion des connexions internes et externes entre les composants de la plateforme, mais également dans la gestion de clusters multiregion.
Dans la même veine, cette version 7.4 apporte des ajustements et des ajouts concernant les playbooks Ansible capables d’automatiser les nouveaux déploiements des clusters KRaft.
Plus de sécurité dans Confluent Cloud
Là où Confluent simplifie le déploiement de sa plateforme sur site, il renforce la sécurité de Confluent Cloud. Cela passe par la prise en charge des logs d’audit, une meilleure intégration avec SAML et Oauth, la possibilité pour les clients d’utiliser leurs propres clés de chiffrement sur Azure, AWS et GCP, leurs propres moteurs de résolution DNS sur Azure ou Google Cloud.
La fonctionnalité Cluster Linking, permettant à l’origine de faire communiquer des clusters Kafka dans le cloud et d’autres déployés sur site, est désormais capable de connecter des clusters dédiés de Private Confluent Cloud avec ceux installés sur un cloud public.
Ce ne sont pas à proprement parler des fonctionnalités innovantes. C’est compréhensible. Les clients de l’éditeur – dont les plus importants sont des banques, des services financiers, des spécialistes de l’industrie manufacturière ou de la supply chain – cherchent une solution robuste.
Le 10 mai dernier, l’éditeur a toutefois annoncé la disponibilité générale de Stream Sharing, un système permettant d’ouvrir et de contrôler les accès des données renfermées dans différents topics.
Le véritable changement pour ces grands comptes (au premier trimestre fiscal 2023, Confluent revendique 1 075 clients rapportant plus de 100 000 dollars de revenus récurrents annuels), n’est autre que le passage au cloud.
Même si certaines entreprises ne peuvent pas déployer la plateforme entièrement managée dans le cloud, c’est pourtant là où Confluent observe le rythme d’adoption le plus rapide.
« Au premier trimestre fiscal 2023, nous avons réalisé 74 millions de dollars de revenu grâce à Confluent Cloud, cela représente une croissance de 89 % par rapport à l’an passé », rappelle Richard Timperlake, vice-président senior des ventes en EMEA chez Confluent.