Apache Kafka : place au stockage « illimité » dans Confluent Cloud
Confluent a présenté mercredi une nouvelle capacité de rétention de données pour la diffusion en continu des événements Apache Kafka dans sa plateforme Confluent Cloud.
Cette nouvelle fonctionnalité fait partie du projet Metamorphosis de Confluent, présenté le 6 mai. Il inclut une série d'efforts visant à améliorer les opérations d'Apache Kafka. Elle sera disponible pour les utilisateurs de Confluent Cloud sur AWS le mois prochain et sur d’autres cloud l’année prochaine.
Si Kafka permet de gérer le streaming de millions de points de données, il pose généralement un défi de taille. Ces données ne peuvent être stockées que pendant sept jours, selon Confluent, l’éditeur responsable du projet.
Stockage infini (et au delà)
La capacité de rétention infinie de Confluent Cloud doit dorénavant permettre aux utilisateurs de Kafka de stocker facilement autant de données qu'ils le souhaitent.
Cette fonctionnalité peut aider à remédier à certaines lacunes majeures d’Apache Kafka, selon Dave Menninger, SVP et directeur de la recherche chez Ventana Research. Tout d’abord, Dave Menninger note que la montée à l’échelle d’un cluster Kafka nécessite une configuration manuelle importante.
Par ailleurs, les utilisateurs devaient jusqu’alors augmenter les capacités de stockage et de calcul simultanément. La nouvelle version de la plateforme de Confluent doit répondre à ces deux problèmes en permettant aux organisations de dé-corréler la montée à l’échelle des ressources et mieux répondre aux besoins des clients.
« C’est peu probable que les entreprises stockeront indéfiniment des données dans Kafka, mais elles vont certainement augmenter la quantité d’historique qu’elles conservent dans le système de traitement de flux », déclare Dave Menninger. « Avec la rétention infinie, la décision de l’emplacement de stockage et de la quantité de données à stocker sera beaucoup plus dictée par les exigences fonctionnelles que par les limites architecturales telles qu'elles existent aujourd'hui », ajoute-t-il.
L’évolutivité de Kafka en question
Auparavant, les utilisateurs de Kafka pouvaient stocker des données pendant de longues périodes, mais cela nécessitait souvent plusieurs étapes, notamment de concevoir un adaptateur pour les données en direct et le stockage à long terme, selon Dan Rosanova, chef de produit chez Confluent Cloud.
Prenons un cas d'usage spécifique : l'entrainement de modèles algorithmiques qui peuvent être utilisés pour la détection de fraudes. Auparavant, les utilisateurs de ce type d'application devaient traiter des données de flux d'événements en temps réel et également entraîner le modèle sur des jeux de données historiques.
« Le fait de devoir écrire un connecteur pour accéder aux données historiques a été un point de friction pour un certain nombre de clients, car ils veulent simplement pointer leur modèle vers n'importe quel point de l'historique des données et le rejouer à partir de là », déclare Dan Rosanova.
Les utilisateurs peuvent éventuellement stocker eux-mêmes les données du flux d'événements Kafka en utilisant un lac de données. Cependant, les données n'ont pas nécessairement besoin d'être stockées dans un schéma structuré à l'intérieur d'un lac de données, selon Dan Rosanova. « Il existe des outils qui peuvent créer une structure dans un lac de données [type Delta Lake NDLR], mais ce processus a tendance à nécessiter des étapes supplémentaires », remarque-t-il.
Avec l'approche Confluent infinite, les données du flux d'événements Kafka sont stockées et conservées dans leur séquence temporelle d'origine, ce qui permet, en principe, aux utilisateurs de simplement rejouer et d'accéder aux données quand ils en ont besoin dans le même format que celui dans lequel elles ont été créées.
La base de données de flux d'événements ksqlDB de Confluent est un élément clé pour permettre l'analyse des données par-dessus Confluent Infinite. Pour rappel, l'éditeur a lancé en préversion ksqlDB en novembre 2019 et l'a intégrée au service Confluent Cloud le 6 avril.
Dan Rosanova explique que ksqlDB peut permettre de créer des requêtes interactives sur une vue matérialisée des données, qui est un instantané d'un data set. « Avec la combinaison de la rétention infinie de données et de ksqlDB, la visualisation d'un ensemble de données peut remonter aussi loin que l'utilisateur le souhaite », promet-il.
Apache Kafka 2.6 arrive
La prochaine étape importante d'Apache Kafka, c'est la disponibilité prochaine de la version 2.6 qui est actuellement en cours de développement par la communauté open source.
« Plusieurs innovations aideront à améliorer encore l'extensibilité d'Apache Kafka », assure Tim Berglund, représentant en chef des développeurs chez Confluent. Parmi ces dernières figurent des fonctionnalités qui rendront plus pratiques les changements de configuration dynamiques, ainsi que la possibilité d'observer plus facilement le comportement d'un cluster.
« Apache Kafka 2.6 nous porte vers la conception d'une plateforme véritablement cloud native », vante Tom Berglund. « Apache Kafka est hébergée dans le cloud depuis ses débuts, mais les KIPs [Kafka Improvement Proposals] associés à l'observabilité, la configuration et l'extensibilité horizontale sont tous des marqueurs d'un système à l'aise dans le cloud ».