Intégration

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, stocker, traiter et souscrire à des flux d'enregistrement en temps réel. Elle est conçue pour gérer des flux de données provenant de plusieurs sources et les fournir à plusieurs utilisateurs. En bref, elle ne se contente pas de déplacer un volume colossal de données d'un point A à un point B : elle peut le faire depuis n'importe quels points vers n'importe quels autres points, selon vos besoins et même simultanément.

La plateforme Apache Kafka est une alternative au système de messagerie d'entreprise classique. Initialement développée par LinkedIn comme système interne pour la gestion de ses 1 400 milliards de messages quotidiens, c'est aujourd'hui une solution Open Source de diffusion de données en continu capable de répondre aux divers besoins des entreprises.


Intégration asynchrone avec Apache Kafka

Les microservices ont révolutionné le domaine du développement. Ils augmentent l'agilité des développeurs en réduisant les dépendances, notamment aux couches de base de données partagée. Toutefois, les applications distribuées créées par vos développeurs doivent être intégrées pour partager leurs données. L'une des options d'intégration les plus courantes, connue sous le nom de méthode synchrone, exploite les API pour partager des données entre plusieurs utilisateurs.

Il existe une autre option d'intégration, la méthode asynchrone, qui implique la réplication des données dans un magasin intermédiaire. C'est dans ce type d'intégration qu'Apache Kafka intervient. La plateforme diffuse les données d'autres équipes de développement pour alimenter le magasin intermédiaire et ainsi permettre le partage des données entre plusieurs équipes et leurs applications.

Les équipes chargées des microservices n'ont pas les mêmes exigences d'intégration que les équipes de développement traditionnel en cascade. Elles nécessitent trois fonctionnalités essentielles :

  1. Intégrations distribuées : des intégrations légères et basées sur des modèles, qui peuvent être déployées en continu et selon les besoins, qui ne sont pas limitées par les déploiements de type ESB centralisé.
  2. API : des services basés sur des API pour la création d'un écosystème de partenaires, de clients et de développeurs qui permet une utilisation fiable et rentable des services.
  3. Conteneurs : une plateforme pour le développement, la gestion et la mise à l'échelle d'applications connectées et natives pour le cloud. Les conteneurs permettent de développer des artefacts « lean » qui peuvent être déployés individuellement dans le cadre de processus DevOps et mis en cluster pour assurer une haute disponibilité.

Qualifiée d'« intégration agile » par Red Hat, cette approche inclut les intégrations dans les processus de développement des applications, offrant ainsi plus d'agilité et des solutions qui s'adaptent plus facilement. L'intégration agile permet notamment d'utiliser librement la méthode synchrone ou asynchrone, selon les besoins spécifiques de l'application. Apache Kafka est la solution idéale si vous optez pour l'intégration asynchrone orientée événements en complément de l'intégration synchrone et des API, et pour une meilleure prise en charge des microservices et de l'intégration agile. Elle peut jouer un rôle important dans votre initiative visant à rationaliser les processus de développement, stimuler l'innovation, gagner du temps et accélérer la mise sur le marché de vos nouveaux services, fonctions et applications.


Cas d'utilisation d'Apache Kafka

La solution Apache Kafka est intégrée à la fois aux pipelines de diffusion de données en continu qui partagent les données entre les systèmes et les applications, et aux systèmes et applications qui consomment ces données. Apache Kafka prend en charge différents cas d'utilisation pour lesquels le débit élevé et l'évolutivité sont essentiels. Cette plateforme permet également de réduire la latence à quelques millisecondes en limitant l'utilisation d'intégrations point à point pour le partage de données dans certaines applications. Les utilisateurs peuvent donc accéder aux données plus rapidement, ce qui est primordial lorsque les données doivent être disponibles en temps réel, par exemple pour l'exploitation informatique et le commerce en ligne.

La solution Apache Kafka peut traiter des millions de points de données par seconde. Elle est donc parfaitement adaptée pour relever les défis liés au Big Data. Toutefois, elle peut également être utile aux entreprises qui, à l'heure actuelle, n'ont pas à gérer des volumes colossaux de données. Dans de nombreux cas d'utilisation liés au traitement des données, tels que l'Internet des objets (IdO) et les réseaux sociaux, les données croissent de façon exponentielle et peuvent rapidement surcharger une application que vous concevez sur la base du volume de données dont vous disposez actuellement. Le traitement des données exige donc de prendre en compte l'évolutivité, autrement dit de prévoir la prolifération accrue des données.

Exploitation informatique

Le travail des équipes d'exploitation repose sur les données. Elles doivent donc pouvoir y accéder rapidement. C'est là l'unique moyen d'assurer en continu le bon fonctionnement et les performances des sites Web, applications et systèmes. Apache Kafka convient pour les fonctions d'exploitation qui reposent sur la collecte de données provenant de sources variées, telles que la surveillance, les alertes et la création de rapports, ainsi que la gestion des journaux et le suivi de l'activité sur les sites Web.

Internet des objets

D'après Gartner, l'IdO devrait compter plus de 20 milliards de périphériques d'ici 2020. L'atout premier de l'IdO réside dans les données exploitables générées par cette multitude de capteurs. La plateforme Apache Kafka est conçue comme un système évolutif capable de traiter le volume colossal des données qui seront générées par l'IdO.

Commerce en ligne

Le commerce en ligne est un domaine qui offre de plus en plus de possibilités d'utilisation pour la solution Apache Kafka, car celle-ci permet de traiter les données liées aux clics sur les pages, aux mentions J'aime, aux recherches, aux commandes, aux paniers et aux stocks.


Mise à l'échelle des applications Apache Kafka avec Kubernetes

Kubernetes est la plateforme idéale pour Apache Kafka. Elle répond aux besoins des développeurs qui nécessitent une plateforme évolutive pour héberger les applications Kafka.

À l'instar d'Apache Kafka, Kubernetes augmente l'agilité des processus de développement. Cette technologie, sur laquelle reposent les services cloud de Google, est un système Open Source qui gère les applications conteneurisées et élimine de nombreux processus manuels associés aux conteneurs. Kubernetes rationalise le déploiement, la configuration, la gestion et l'utilisation d'Apache Kafka.

En combinant Kafka et Kubernetes, vous bénéficiez à la fois des avantages de Kafka et des atouts de Kubernetes : évolutivité, haute disponibilité, portabilité et facilité de déploiement.

L'évolutivité de Kubernetes est le prolongement logique de Kafka. Avec Kubernetes, vous pouvez faire évoluer les ressources de manière horizontale et verticale grâce à une commande simple ou les mettre à l'échelle automatiquement selon leur utilisation pour tirer le meilleur parti de vos infrastructures de calcul, de réseau et de stockage. Grâce à cette fonctionnalité, Apache Kafka peut partager un pool limité de ressources avec d'autres applications. Apache Kafka bénéficie également de la portabilité de Kubernetes entre les fournisseurs d'infrastructure et les systèmes d'exploitation. Enfin, Kubernetes permet aux clusters Apache Kafka de couvrir les environnements sur site ainsi que les clouds publics, privés et hybrides, et d'utiliser plusieurs systèmes d'exploitation.

Intégrez vos ressources avec les solutions Red Hat

Nous vous proposons des solutions d'intégration à la fois modulaires, légères et complètes, conçues selon les principes de l'Open Source et des normes ouvertes, disponibles sur site ou dans le cloud.

Système de messagerie

Le composant AMQ Streams de la solution Red Hat® AMQ permet d'intégrer Apache Kafka à Red Hat OpenShift® Container Platform. AMQ Streams est une fonctionnalité de diffusion de données en continu hautes performances, évolutive et distribuée, basée sur le projet Apache Kafka et exécutée sur Kubernetes.

Plateforme de conteneurs

Développez, déployez, gérez et mettez à l'échelle vos applications natives pour le cloud avec des conteneurs via une plateforme de conteneurs. OpenShift peut orchestrer toutes ces applications automatiquement et fonctionner avec des solutions telles que Fuse, AMQ et 3scale API Management pour étendre l'intégration agile au cloud.

Apprenez-en davantage sur l'intégration avec Red Hat