Jump to section

Pourquoi exécuter Apache Kafka sur Kubernetes ?

Copier l'URL

Si vous déployez Apache Kafka sur une plateforme d'orchestration de conteneurs telle que Kubernetes, vous pouvez automatiser, mettre à l'échelle et déployer des applications orientées événements partout. En résumé, Kubernetes renforce la flexibilité inhérente aux applications conçues sur Apache Kafka.

Les services informatiques des entreprises sont de plus en plus nombreux à adopter les microservices et le développement d'applications cloud-native, ce qui donne naissance à des systèmes distribués alimentés par des applications orientées événements. Au sein de cet environnement de développement dynamique, de nombreux leaders du numérique utilisent Apache Kafka en association avec Kubernetes.

Apache Kafka permet aux utilisateurs de visualiser et d'analyser leurs activités en temps réel ainsi que de s'adapter rapidement à l'évolution constante des marchés. Il s'agit d'une excellente solution pour établir et maintenir la connectivité en temps réel avec les parties prenantes dans l'entreprise ainsi que les clients, fournisseurs et partenaires externes.

Kafka Streams est une fonctionnalité incluse dans Apache Kafka qui peut être intégrée à n'importe quelle application et qui permet un traitement simple et efficace des flux d'événements Kafka. C'est grâce à ce traitement et à cette analyse de quantités colossales de données, à la volée, en continu et simultanément, qu'Apache Kafka se démarque des autres solutions de messagerie. Apache Kafka permet aux utilisateurs de centraliser, transformer, enrichir et organiser des événements pour les analyser en ligne et en temps réel, sans devoir attendre le traitement des Big Data. Il s'agit donc d'une plateforme essentielle pour les applications qui nécessitent de traiter instantanément les données diffusées en temps réel.

Apache Kafka offre une base idéale pour le développement d'applications cloud-native. Les applications cloud-native sont orientées événements et Apache Kafka constitue le meilleur pilier pour la gestion des événements. La plateforme inclut des fonctionnalités stratégiques axées sur les événements telles que la diffusion distribuée, le traitement en temps réel et une haute évolutivité.

Apache Kafka prend également en charge l'architecture serverless, elle aussi orientée événements, qui est l'étape suivante après l'environnement cloud-native. Les développeurs peuvent exécuter Apache Kafka sur Kubernetes pour proposer des notifications serverless évolutives, des communications interprocessus et une visibilité des fonctions serverless.

Essayez Red Hat OpenShift Streams for Apache Kafka

La plateforme Apache Kafka est souvent déployée sur le système de gestion des conteneurs Kubernetes, utilisé pour automatiser le déploiement, la mise à l'échelle et l'exploitation des conteneurs sur les clusters d'hôtes. L'exécution d'Apache Kafka sur Kubernetes va de pair avec le développement cloud-native, qui constitue la nouvelle génération du développement d'applications. Les applications cloud-native sont des services distribués, indépendants et faiblement couplés qui offrent une haute évolutivité via le cloud. De même, les applications orientées événements basées sur Kafka sont faiblement couplées et conçues pour pouvoir être mises à l'échelle dans un environnement de cloud hybride distribué.

Pour les équipes d'exploitation, le principal avantage d'exécuter Apache Kafka sur Kubernetes réside dans l'abstraction de l'infrastructure : elle peut être configurée une fois et s'exécuter n'importe où. Aujourd'hui, les équipes d'exploitation gèrent généralement plusieurs ensembles de ressources dans le cloud et sur site. Grâce à Kubernetes, elles sont en mesure de les traiter comme des pools de ressources de calcul, auxquels elles peuvent allouer leurs ressources logicielles, notamment Apache Kafka. De plus, cette couche Kubernetes offre un environnement unique pour gérer toutes leurs instances Apache Kafka.

L'évolutivité de Kubernetes est le prolongement logique d'Apache Kafka. Avec Kubernetes, les applications peuvent faire évoluer les ressources de manière horizontale et verticale grâce à une simple commande ou les mettre à l'échelle automatiquement selon leur utilisation pour économiser les ressources de calcul, de réseau et de stockage. Enfin, Kubernetes offre à la plateforme Apache Kafka la portabilité nécessaire pour couvrir les environnements sur site ainsi que les clouds publics, privés et hybrides, et utiliser plusieurs systèmes d'exploitation.

Il est difficile d'exécuter Apache Kafka manuellement, car cela implique un travail de configuration gigantesque, et ce pour de nombreux composants. Il en va de même pour l'exécution d'Apache Kafka sur un système bare metal (voire des machines virtuelles). Le déploiement, la surveillance, la mise à jour et la restauration des nœuds s'avèrent extrêmement complexes.

C'est là que le projet Open Source Strimzi entre en scène. Strimzi utilise des opérateurs pour déployer la configuration Apache Kafka de manière fluide et transparente. Les opérateurs constituent une installation de pointe pour le déploiement et la gestion des applications sur Kubernetes. Ils offrent un développement flexible grâce à leur approche d'abstraction de l'infrastructure, ce qui permet aux développeurs de déployer les applications avec un minimum d'informations. Ces derniers n'ont pas besoin de connaître les caractéristiques techniques de l'infrastructure, comme le nombre de machines ou le type de matériel, car les opérateurs approvisionnent l'infrastructure et gèrent toutes les informations de manière automatique.

Strimzi présente les avantages de l'approche IaC (Infrastructure-as-Code) : les développeurs peuvent rédiger un manuel d'instructions sous la forme d'un code pour définir l'infrastructure, afin que Strimzi s'y conforme. Strimzi peut également simplifier le déploiement d'Apache Kafka en mode haute disponibilité, une opération difficile en temps normal.

Autre avantage non négligeable de Strimzi : ses opérateurs prennent en charge de nombreux problèmes de sécurité pour Apache Kafka. Enfin, Strimzi protège Apache Kafka sur Kubernetes de façon automatique grâce au chiffrement et à l'authentification unique (SSO), ce qui évite aux développeurs de mettre en œuvre des fonctions de sécurité de base.

Red Hat AMQ Streams est une solution de distribution d'entreprise Apache Kafka et Strimzi proposée par Red Hat et incluse dans l'offre Red Hat Integration. Elle permet avant tout d'exécuter Apache Kafka sur Kubernetes ou Red Hat OpenShift, la distribution Red Hat de Kubernetes.

Sur OpenShift, Red Hat AMQ Streams offre des architectures orientées événements adaptées aux entreprises qui prennent en charge des flux distribués de données ainsi que des applications de traitement des flux basées sur des microservices. La solution AMQ Streams est spécialement conçue pour les scénarios de haute évolutivité et de débit élevé, car le partitionnement d'Apache Kafka permet de répondre aux exigences d'évolutivité.

Keep reading

Article

L'intégration, qu'est-ce que c'est ?

Vous souhaitez savoir en quoi consiste l'intégration ? Découvrez ce que c'est, comment l'adopter et pourquoi elle est plus efficace avec des solutions Open Source.

Article

Apache Kafka, qu'est-ce que c'est ?

Apache Kafka est une plateforme distribuée de diffusion de données en continu, capable de publier des flux d'enregistrement en temps réel, de les stocker, de les traiter et d'y souscrire.

Article

Une API, qu'est-ce que c'est ?

Une API, ou interface de programmation d'application, est un ensemble de définitions et de protocoles qui facilite la création et l'intégration de logiciels d'applications.

En savoir plus sur l'intégration

Produits

Ensemble complet de technologies d'intégration et de messagerie.

Un ensemble de produits, d'outils et de composants qui facilitent le développement et la maintenance des applications cloud-native.

Un ensemble de produits pour automatiser les décisions et processus métiers de manière intelligente. Comprend Red Hat Decision Manager, Red Hat Process Automation Manager et Red Hat Runtimes.

Services gérés et hébergés de plateforme, d'applications et de données qui rationalisent l'expérience dans le cloud hybride, réduisant ainsi les coûts d'exploitation et la complexité liés à la distribution des applications cloud-native.

Ressources

Livre numérique

Créer une infrastructure agile et renforcer la capacité d'adaptation de l'entreprise

Formations

Cours gratuit

L'intégration agile avec Red Hat : présentation technique