Découvrez Apache Kafka, la technologie de streaming open source à l'origine de certaines des expériences utilisateur en temps réel et événementielles les plus populaires sur le Web, notamment AirBnB, Netflix et Pinterest.
Apache Kafka (Kafka) est une plateforme open source de streaming distribué qui permet (entre autres) de développer des applications en temps réel, orientées événements. Alors, qu'est-ce que cela signifie ?
Aujourd'hui, des milliards de sources de données génèrent en permanence des flux d'enregistrements de données, y compris des flux d'événements. Un événement est un enregistrement numérique d'une action qui s'est produite et du moment où elle s'est produite. En général, un événement est une action qui entraîne une autre action dans le cadre d'un processus. Un client qui passe une commande, qui choisit un siège sur un vol ou qui soumet un formulaire d'inscription sont tous des exemples d'événements. Un événement ne doit pas nécessairement impliquer une personne : par exemple, l'indication par un thermostat connecté de la température à un moment donné est également un événement.
Ces flux offrent des possibilités pour les applications qui réagissent aux données ou aux événements en temps réel. Une plateforme de streaming permet aux développeurs de créer des applications qui consomment et traitent ces flux en continu à des vitesses extrêmement élevées, avec un haut niveau de fidélité et de précision basé sur l'ordre correct de leur apparition.
LinkedIn a développé Kafka en 2011 en tant que courtier de messages à haut débit pour son propre usage, puis a ouvert et donné Kafka à l'Apache Software Foundation (llien externe ibm.com). Aujourd'hui, Kafka est devenu la plateforme de streaming la plus utilisée, capable d'ingérer et de traiter des milliers de milliards d'enregistrements par jour sans aucun retard de performance perceptible lorsque les volumes augmentent. Des entreprises du classement Fortune 500 telles que Target, Microsoft, AirBnB et Netflix s'appuient sur Kafka pour offrir à leurs clients des expériences en temps réel basées sur les données.
La vidéo suivante fournit des informations supplémentaires sur Kafka (9:10) :
Kafka dispose de trois fonctionnalités principales
Les développeurs peuvent utiliser ces fonctionnalités Kafka via quatre API :
Kafka est une plateforme distribuée : elle fonctionne comme une grappe à tolérance aux pannes et hautement disponible qui peut couvrir plusieurs serveurs, voire plusieurs centres de données. Les rubriques Kafka sont partitionnées et répliquées de telle sorte qu'elles peuvent être mises à l'échelle pour servir des volumes élevés de consommateurs simultanés sans affecter les performances. Par conséquent, selon Apache.org, « Kafka fonctionnera de la même manière, que vous disposiez de 50 Ko ou de 50 To de stockage de persistance sur le serveur ».
Kafka est principalement utilisé pour créer deux types d'application :
RabbitMQ est un courtier en messages open source très utilisé, un type de logiciel intermédiaire qui permet aux applications, aux systèmes et aux services de communiquer entre eux en traduisant les protocoles de messagerie entre eux.
Comme Kafka a commencé comme une sorte de courtier de messages (et peut, en théorie, toujours être utilisé comme tel) et parce que RabbitMQ prend en charge un modèle de messagerie de type publication/abonnement (entre autres), Kafka et RabbitMQ sont souvent comparés comme des alternatives. Mais les comparaisons ne sont pas vraiment pratiques, et elles se perdent généralement dans des détails techniques qui n'ont rien à voir avec le choix entre les deux. Par exemple, les rubriques Kafka peuvent avoir plusieurs abonnés, alors que chaque message RabbitMQ ne peut en avoir qu'un seul, ou encore, les rubriques Kafka sont durables, alors que les messages RabbitMQ sont supprimés une fois consommés.
Ce qu'il faut retenir :
Kafka est fréquemment utilisé avec plusieurs autres technologies Apache dans le cadre d'une solution plus large de traitement des flux, d'architecture événementielle ou d'analytique Big Data.
Apache Spark est un moteur d'analyse pour le traitement de données à grande échelle. Vous pouvez utiliser Spark pour effectuer des analyses sur les flux fournis par Apache Kafka et pour produire des applications de traitement des flux en temps réel, comme l'analyse des flux de clics mentionnée précédemment.
Apache NiFi est un système de gestion des flux de données doté d'une interface graphique de type Glisser-déposer. Comme NiFi peut fonctionner comme un producteur Kafka et un consommateur Kafka, c'est un outil idéal pour gérer les défis de flux de données que Kafka ne peut pas traiter.
Apache Flink est un moteur permettant d'effectuer des calculs sur des flux d'événements à grande échelle, à une vitesse élevée et avec un faible temps d'attente. Flink peut ingérer des flux en tant que consommateur Kafka, effectuer des opérations basées sur ces flux en temps réel, et publier les résultats dans Kafka ou dans une autre application.
Apache Hadoop est un framework logiciel distribué qui vous permet de stocker des quantités massives de données dans une grappe d'ordinateurs pour les utiliser dans l'analytique Big Data, l'apprentissage automatique, l'exploration de données et d'autres applications orientées des données qui traitent des données structurées et non structurées. Kafka est généralement utilisé pour créer un pipeline de données en temps réel vers une grappe Hadoop.
Kafka continuera à faire partie de la modernisation des applications, car la demande d'amélioration de l'expérience client et la multiplication des applications ont un impact sur les opérations métier et informatiques. Lorsqu'il s'agit de répondre à cette demande, l'évolution vers une automatisation plus large est également utile. L'idéal serait de commencer par de petits projets dont le succès est mesurable, que vous pouvez ensuite mettre à l'échelle et optimiser pour d'autres processus et dans d'autres parties de votre organisation.
En travaillant avec IBM, vous avez accès à des fonctionnalités d'automatisation optimisées par l'IA, y compris des flux de travail préconfigurés, pour accélérer l'innovation en rendant chaque processus plus intelligent.
Pour aller plus loin :
Démarrez dès aujourd'hui avec un compte IBM Cloud.
Créez, modernisez et gérez avec confiance les applications de façon sécurisée dans tous les clouds
De vos flux de travaux métier jusqu'à vos opérations informatiques, nous avons la solution qu'il vous faut avec l'automatisation basée sur l'IA.
Connectez les applications, les services et les données avec IBM Cloud Pak for Integration, la plateforme d'intégration la plus complète du marché.