L'histoire de l'adoption de Kafka chez Cloudflare en tant que message bus inter-services.
Ils l'ont déployé pour optimiser le développement de leur architecture micro-service (découplage) mais aussi:
- réduire les silos de données
- rendre les communications inter-services plus claires
- avoir un format de communication auto-documenté
Pour cela, ils ont notamment développé un client Kafka interne qui abstrait la plupart de la configuration et de la logique compliqué.
Le schéma de communication n'est pas JSON ou Avro (ouf!) mais l'excellent Protobuf qui en plus d'avoir une taille réduite, assure le typage fort de chaque champ afin d'identifier les breakings changes.
Niveau observabilité, le plus important pour eux est le "lag", qui est le temps entre le dernier message produit et le dernier message lu.
Cette seule métrique permet d'identifier de nombreux problèmes:
- le consumer est down
- le consumer n'arrive pas à ingérer tous les messages
- un nombre inhabituel de messages est produit
- le consumer n'acquitte plus les messages
Bref, un super retour d'expérience et pleins de bons conseils pour construire son infrastructure applicative avec Kafka.
Le début de l'article explique très clairement le fonctionnement de Kafka avec une vulgarisation accessible à tous et des schémas.
Le club Med a profité de la crise covid et de la fermeture de ses 60 villages pour construire une stratégie Data flambant neuve !
Les objectifs principaux étaient d'augmenter les ventes (~2-3% estimés) et d'analyser en détails l'impact des budgets publicité et marketing injectés dans le cycle de vente.
Niveua technique, le groupe voulait de l'analyse temps réel donc il a fallut ingérer les données depuis une douzaine de sources (CRM, ERP, site web , appels téléphoniques, etc) dans un datalake.
Concrètement un broker Kafka reçoit les messages qui proviennent majoritairement d'une base de données DB2 et tout est écrit sur un PostgreSQL ou BigQuery (donc tout chez Google Cloud Platform)
Des outils de Business Intelligence comme Qlikview ou Google Analytics permettent ensuite aux différents métiers d'exploiter la donnée.
Ce que je connaissais pas c'est Zeenea, un catalogue de données pour comprendre quels sont les flux, d'où viennent les données, à quelle moment sont-elles disponibles etc.
Au niveau des volumes, ils annoncent quand même 5 millions d'événements par jour !
Une histoire de dette technique sur un fond de migration d'architecture Kafka (😱)
Une remarque intéressante ici est que la dette technique s'est accumulée à cause du manque de mise à jour du cluster Kafka, par l'inaction donc.
Moralité: gardez vos framework et outils à jour
Une bande dessinée qui explique les raisons d'utiliser un message broker comme Kafka et le fonctionnement de ce dernier.
(Merci Gaël pour le partage)
Une UI pour monitorer vos cluster Kafka
Une alternative à Kafka, RabbitMQ et autre système de message queue.
Celui la est très moderne, portée par la Cloud Native Computing Foundation (CNCF), avec de super fonctionnalités supplémentaires:
- rejouer les messages avec le timing originel: parfait pour rejouter les messages de la prod et staging
- acquittement unitaire des messages
- démarrer un consumer à une date précise
Plus d'info 👉 https://docs.nats.io/nats-concepts/jetstream/consumers
Un client Kafka qui est un wrapper complet du client officiel en C++.
Ce client supporte les Kafka Stream contrairement à kafkajs qui fait du polling de messages.
En règle général, node-librdkafka est plus complet et plus manipulable, ce qui en fait un bon candidat si vous avez besoin d'intéragir avec Kafka pour re-exposer une partie des API.