
How's the weather?
Il y a quelques mois, nous avons lancé au sein de Sofico notre réunion hebdomadaire entre collègues baptisée « Sofico - How is the weather ».
Chaque mois, nous donnons la parole à l’un de nos collègues concernant une application ou un outil que Sofico utilise tous les jours. Ce mois-ci, Petar Pilipovic (Lead Developer) et Wim Van Den Eynde (Technical Consultant) nous parlent d’Apache Kafka.
Il nous fallait une solution rapide – presque sans aucune latence –, capable de traiter de gros volumes de données et facile à faire monter en échelle. Nous avons trouvé cette solution avec Apache Kafka.
Apache Kafka est une plateforme de streaming distribuée. Cette plateforme offre trois possibilités essentielles :
Elle vous permet de publier et de vous abonner à des flux d’enregistrements. En ce sens, elle est similaire à une queue de messages ou un système de messagerie d’entreprise.
Elle vous permet de stocker des flux d’enregistrements d’une manière qui tolère les erreurs.
Elle vous permet de traiter des flux d’enregistrements au moment où ils se présentent.
Kafka est un projet open source développé par LinkedIn et qui fait partie de l’Apache Software Foundation depuis 2012. L’un des créateurs de Kafka, Jay Kreps, a décidé d’appeler ce logiciel du nom de l’écrivain Franz Kafka parce qu’il s’agit d’un « système optimisé pour l’écriture ».
« Tout a commencé il y a quelques années, avec les nouvelles exigences de recevoir des analyse et des rapports presque en temps réel. Avec la configuration et l’architecture que nous avions à l’époque, le respect de ces exigences risquait d’avoir un impact sur la performance de notre système central. Nous avons donc cherché une solution. »
« Il nous fallait une solution rapide – presque sans aucune latence –, capable de traiter de gros volumes de données et facile à faire monter en échelle. Nous avons trouvé cette solution avec Apache Kafka. »
Strimzi fournit des images de conteneurs et des opérateurs pour faire tourner Kafka sur Kubernetes
« Nous utilisons Kafka comme plateforme de streaming. Nous diffusons des données en streaming depuis notre système Miles Core vers notre plateforme Miles Microservice. Les données de Miles Core sont diffusées vers les topics, où elles seront consommées. Elles sont ensuite transformées en un modèle de domaine canonique et publiées sur les topics de domaine.»
Nous déployons Kafka dans le cadre de notre plateforme Miles Microservice sur Kubernetes. Nous utilisons Strimzi pour faire tourner des clusters Kafka sur Kubernetes dans différentes configurations de déploiement.
« Une configuration Kafka typique contient de multiples brokers et instances de Zookeeper qui jouent un rôle de découverte de services. Zookeeper disparaîtra de la configuration Kafka à l’avenir, mais les versions actuelles en ont encore besoin. »
« Nous déployons Kafka dans le cadre de notre plateforme Miles Microservice sur Kubernetes. Nous utilisons Strimzi pour faire tourner des clusters Kafka sur Kubernetes dans différentes configurations de déploiement. »
« Strimzi fournit des images de conteneurs et des opérateurs pour faire tourner Kafka sur Kubernetes. Les opérateurs simplifient le processus de déploiement et d’exécution des clusters et composants Kafka. Ils nous permettent aussi de configurer l’accès à Kafka, de le mettre à niveau et de gérer les brokers, par exemple la création et la gestion de topics et d’utilisateurs.»
« Kafka est hautement configurable. On peut le configurer de manière à augmenter le débit de données ou de manière à assurer une meilleure cohérence des données. Nous configurons Kafka pour un haut débit de données quand nous voulons diffuser des données moins importantes (qui seront regroupées à la sortie) mais que nous en avons besoin en temps réel. »
« Nous configurons Kafka en vue d’une cohérence élevée des données lorsque nous voulons diffuser des données très importantes (par exemple des transactions clients) sans perdre aucune donnée. »
---
Image : Franz Kafka
« Oui, il existe de nombreuses autres alternatives comme IBM MQ ou Rabbit MQ à l’heure actuelle, mais étant donné que Kafka est capable de gérer de grandes quantités de données de manière performante, et qu’il offre d’autres possibilités qui nous intéressent, nous avons décidé d’utiliser Apache Kafka. »
« Nous utilisons les logiciels ou les cadres qui répondent le mieux à nos besoins et nous procurent un avantage pour nos projets. Au final, c’est ce qui compte le plus pour nos clients. »
Tags
Il y a quelques mois, nous avons lancé au sein de Sofico notre réunion hebdomadaire entre collègues baptisée « Sofico - How is the weather ».
Après avoir travaillé 21 ans chez BMW Financial Services, Bert Vanden Bergh a décidé que l’heure était venue de relever un nouveau défi. « J’ai dû sortir...
Après avoir travaillé pour une société japonaise typique pendant une décennie, faire mon entrée dans une entreprise comme Sofico a pour moi été une bouffée...
Le trentième anniversaire de Sofico en 2018 était l’occasion idéale de clarifier une fois encore les valeurs fondamentales et la vision de Sofico. C’est...