Nous sommes ravis d’annoncer la version bêta publique de Bufstream, un remplacement plug-and-play pour Apache Kafka qui coûte 10 fois moins cher à exploiter et apporte une gouvernance des données basée sur Protobuf à tous.
Nous avons commencé à concevoir Bufstream l’année dernière, lorsque nous avons entendu la même histoire de nombreux de nos clients. Après avoir adopté gRPC et Connect pour le réseau de service à service, nos clients voulaient naturellement continuer à utiliser Protobuf dans leurs pipelines de données en streaming, mais l’écosystème Kafka ne prenait pas en charge leurs charges de travail de manière optimale. Parce que Kafka lui-même ne comprend ni n’inspecte les charges utiles des messages, maintenir des ensembles de données de haute qualité nécessitait que chaque producteur de données active l’application côté client de l’application de schéma et de contrat de données. L’application facultative de la réglementation ne fonctionne rarement à grande échelle, et nos clients trouvaient régulièrement des données erronées polluant les systèmes en aval. Dans un environnement réglementaire de plus en plus complexe, ils avaient également du mal à gouverner l’accès aux données avec les contrôles de niveau de sujet grossiers de Kafka. Et bien sûr, ils ont tous trouvé Kafka extraordinairement coûteux à exploiter. Nous avons construit Bufstream pour relever ces défis de front.
Bufstream considère la qualité des données comme une préoccupation critique - trop importante pour être déléguée à la configuration facultative côté client. Pour les sujets avec des schémas Protobuf, Bufstream peut rejeter les messages qui ne correspondent pas au schéma, signalant immédiatement les erreurs au producteur de données. Bufstream peut également aller plus loin et appliquer toutes les contraintes spécifiées dans le schéma, garantissant que les messages sont sémantiquement valides. Ensemble, ces deux fonctionnalités permettent aux équipes de plateforme de données de garantir que les consommateurs recevront toujours des données valides et de haute qualité.
Bufstream intègre également des contrôles d’accès aux données granulaires : il peut redacter les messages Protobuf à la volée, exposant seulement un sous-ensemble de champs aux consommateurs de données. Aujourd’hui, cette logique est statique : chaque consommateur voit le même sous-ensemble de champs. Dans le cadre de la construction du support pour TLS, SASL et SCRAM, nous prévoyons de faire évoluer ce système statique en un RBAC au niveau des champs à part entière. En utilisant une taxonomie des types de données liés à la confidentialité et des utilisations autorisées, les producteurs pourront annoter les champs sensibles dans leurs schémas Protobuf. Bufstream s’assurera alors que chaque consommateur ne reçoit que les champs auxquels il est autorisé à utiliser.
Pour fournir ces fonctionnalités de qualité et de gouvernance des données tout en maîtrisant les coûts exorbitants de Kafka, nous avons dû le repenser de fond en comble. En écrivant les données directement dans un stockage d’objets compatible avec S3, Bufstream peut se passer de disques coûteux et éliminer presque complètement le réseau inter-zone, réduisant considérablement les coûts.
Dans nos benchmarks, une charge de travail qui coûte 116 460 $ par mois sur Apache Kafka ne coûte que 11 147 $ sur Bufstream. Mettre le stockage d’objets directement sur le chemin d’écriture augmente la latence de livraison des messages de Bufstream, mais pas autant que vous pourriez le penser : la latence médiane est de 260 ms et la latence p99 est de 500 ms.
Pour les charges de travail analytiques à haut volume qui génèrent des coûts Kafka, nous pensons que ces économies de coûts valent bien un peu de latence supplémentaire. Pour les charges de travail particulièrement sensibles à la latence ou tolérantes à la latence, les opérateurs peuvent ajuster la manière dont Bufstream échange la latence contre le coût.
Dans les mois à venir, nous permettrons également aux opérateurs de Bufstream d’opter pour le stockage de certains sujets sous forme de tables Apache Iceberg. Les consommateurs Kafka pourront toujours lire à partir du sujet, mais les moteurs SQL pourront également interroger directement les données. Cela ne fait pas que éliminer la corvée de gérer un connecteur Kafka vers Iceberg ; cela réduit également les coûts en éliminant une copie redondante des données. Dans notre charge de travail de référence, le partage du stockage avec un lac de données permettrait d’économiser 3 498 $, faisant chuter le coût total à 7 649 $ - 15 fois moins cher qu’Apache Kafka.
Bufstream se déploie dans n’importe quel cluster Kubernetes AWS ou GCP avec un simple graphique Helm, et fonctionne avec n’importe quel magasin d’objets compatible avec S3. Chaque déploiement de Bufstream est entièrement autonome : il ne dépend pas d’un plan de contrôle cloud, n’envoie pas de télémétrie à Buf et n’a pas de dépendance stricte à un SaaS géré par Buf. Pour une utilisation en production, nous facturons des frais basés sur l’utilisation de 0,002 $ par Gio de trafic d’écriture, sans frais supplémentaires par appel, par cœur ou par instance. Pour la charge d’écriture de 1 Gio/s dans notre benchmark, les coûts et sont déjà inclus dans le coût total de 11 147 $.
Nous serions ravis de collaborer avec vous pour réduire les coûts de Kafka, améliorer la qualité des données et renforcer la gouvernance des données. Vous pouvez vous familiariser avec Bufstream avec notre , plonger dans notre ou discuter avec nous dans le . Pour des déploiements en production ou pour planifier une démonstration avec notre équipe, !