James Thew - Fotolia
À l’avenir, Kafka se passera de ZooKeeper pour gagner en performance
La dernière version du système de messagerie open source Apache Kafka améliore la réplication et la disponibilité afin de fournir des gains de performance significatifs. Cela passe par l'évincement de ZooKeeper.
La version 2.4 d'Apache Kafka est disponible, amenant avec elle son lot d’améliorations pour la plateforme de streaming de données.
La popularité de Kafka a grandi au fur et à mesure que les entreprises l’ont mis au centre de leur infrastructure de traitement d’événements. Les grands comptes comme les PME s’en servent pour gérer leurs flux de messages et de données.
Cette technologie est souvent utilisée pour transférer des informations dans une base de données ou dans un data lake, environnements dans lesquels elles subissent des analyses supplémentaires.
Optimiser les performances de déploiements distribués de Kafka a longtemps été un défi de taille, mais les nouvelles fonctionnalités de la version 2.4 pourraient encore améliorer sa popularité. Les responsables du projet open source promettent des performances supérieures et une meilleure latence.
« Kafka est devenu le système par défaut pour les décisions par sélection de messages », déclare Merv Adrian, analyste chez Gartner. « Les courtiers traditionnels sont présents dans quelques entreprises, mais même là certaines sont en train de migrer vers Kafka ».
La version 2.4 de Kafka améliore la réplication
Merv Adrian ajoute que, au vu de cette popularité, les améliorations apportées à MirrorMaker sont des atouts de taille. MirrorMake sert à répliquer des topics entre clusters, une composante clé pour la performance et la mise à l’échelle d’un système. « Cela a été difficile de gérer la réplication dans des environnements multicluster », assure-t-il. « Et c’est là où l’attrait commercial de Kafka réside ».
Selon Tim Berglund, directeur senior de l’expérience développeur chez Confluent, la fonctionnalité clé de Kafka 2.4 consiste à appeler des données auprès de la réplique la plus proche. Son nom ? Proposition d’amélioration de Kafka (KIP) 392.
« Pour les nombreuses organisations qui distribuent des fonctionnalités d’application à travers leur data centers, des clouds, régions, et zones de disponibilités, le fait de pouvoir appeler les données auprès de la réplique la plus proche améliore les capacités de Kafka dans le cadre de déploiements cloud natifs », affirme Tim Berglund. Confluent est l’un des contributeurs les plus actifs à la plateforme open source. Il propose sa propre distribution de Kafka.
Un autre ajout de la mise à jour 2.4 permet de créer des API administratives afin de réassigner les répliques. « Cela rend les API plus faciles à utiliser au quotidien pour les développeurs », explique Tim Berglund. Celui-ci remplace une API basée sur Apache ZooKeeper qui présenterait quelques limitations et une forme de complexité.
« Elle repose sur de nouvelles méthodes ajoutées à la Class AdminClient, qui est une API populaire déjà utilisée au sein des applications les plus complexes », assure le directeur senior de Confluent. « Auparavant, cela réclamait de s’interfacer directement avec Zookeeper, ce qui oblige de migrer beaucoup d’éléments, un fardeau plus important sur l’équipe en charge des tests unitaires et d’intégration. Cela demandait d’utiliser une API spécialisée qui avait pour seule fonctionnalité de dialoguer avec ZooKeeper ».
ZooKeeper est une API de synchronisation des ressources conçue à l’origine comme un sous-projet d’Hadoop. Jusqu’alors Kafka l’utilisait pour stocker les métadonnées persistantes et cartographier des clusters. Toutefois, l’API est sensible à la latence et demande d’être associée à des SSD et au moins un cœur dédié, selon les recommandations de Confluent. De plus, l’ajout de serveurs ZooKeeper peut causer des pertes de données et la migration de version doit s’opérer manuellement.
La rendre caduc permettait aussi aux équipes de supprimer un composant à installer et à gérer au sein d’architectures généralement complexes.
Les nouveautés de Kafka en 2020
Tim BerglundDirecteur senior expérience développeur, Confluent
Selon le dirigeant, les architectures des applications et les modalités de déploiement ont particulièrement changé depuis la disponibilité de la première version de Kafka, il y a près de dix ans. Ainsi, il s’attend à ce que la plateforme continue à évoluer pour mieux supporter les tendances émergentes telles que l’IoT, le machine learning et le cloud hybride.
« À court terme, attendez-vous à voir des propositions d’amélioration afin d’éliminer le besoin d’utiliser ZooKeeper et d’autres qui rendront Kafka plus à l’aise dans le cloud. En tant que la deuxième fondation Apache Software la plus active, nous bénéficions constamment d'ajustements, grâce aux membres de la communauté », conclut Tim Berglund.