DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Uncategorized»Apache Kafka n’est PAS un véritable streaming de données en temps réel !
    Uncategorized

    Apache Kafka n’est PAS un véritable streaming de données en temps réel !

    mars 17, 2023
    Apache Kafka n'est PAS un véritable streaming de données en temps réel !
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    Les données en temps réel battent les données lentes. C’est aussi simple que ça ! Mais qu’est-ce que le temps réel ? Le terme doit toujours être défini lors de la discussion d’un cas d’utilisation. Apache Kafka est la norme de facto pour le streaming de données en temps réel. Kafka est assez bon pour presque tous les scénarios en temps réel. Mais un logiciel propriétaire dédié est requis pour les cas d’utilisation de niche. Kafka n’est PAS le bon choix si vous avez besoin d’une latence de l’ordre de la microseconde ! Cet article explore l’architecture du NASDAQ qui combine le trading boursier critique avec des analyses de streaming à faible latence.

    Kafka en temps réel ?

    Qu’est-ce que le streaming de données en temps réel ?

    Apache Kafka est la norme de facto pour le streaming de données. Cependant, chaque entreprise a une compréhension différente des données en temps réel. Et Kafka ne peut pas résoudre tous les problèmes en temps réel.

    Le temps réel dur est un réseau déterministe avec zéro pic et zéro latence, ce qui est une exigence pour les systèmes embarqués utilisant des langages de programmation comme C, C++ ou Rust pour implémenter des logiciels critiques pour la sécurité comme les systèmes de contrôle de vol ou les robots collaboratifs (cobots). Apache Kafka n’est pas la bonne technologie pour les exigences de latence critiques pour la sécurité.

    Le temps réel souple est le traitement de données dans un réseau non déterministe avec des pics de latence potentiels. Les données sont traitées en temps quasi réel. Cela peut être des microsecondes, des millisecondes, des secondes ou plus lentement.

    Catégories en temps réel pour le streaming de données avec Apache Kafka

    Je vois généralement trois types de cas d’utilisation en temps réel. Mais même ici, Apache Kafka ne rentre pas dans chaque catégorie :

    1. Temps réel critique: Ensemble limité de cas d’utilisation nécessitant un traitement des données en quelques microsecondes.
      • Cas d’utilisation célèbre:
        • Marchés commerciaux des services financiers. Ce n’est PAS Kafka.
    2. Temps réel à faible latence: Un traitement rapide des données est nécessaire en dizaines ou centaines de millisecondes pour permettre des cas d’utilisation spécifiques.
      • Exemples:
        • Analyse des capteurs dans la fabrication, corrélation de données de bout en bout dans le covoiturage entre les applications mobiles et les backends, et détection des fraudes dans les paiements instantanés. C’est Kafka.
    3. Quasi temps réel: Le traitement rapide des données améliore le processus métier mais n’est pas obligatoire.
      • Par exemple:
        • L’ingestion de données (flux ETL) dans un entrepôt de données est meilleure en quelques secondes qu’un processus par lots qui s’exécute toutes les nuits. C’est Kafka.

    Note: cet article se concentre sur Apache Kafka car il s’agit de la norme de facto pour le streaming de données. Cependant, il en va de même pour de nombreuses technologies complémentaires ou concurrentes, comme Spark Streaming, Apache Flink, Apache Pulsar ou Redpanda.

    Prenons un exemple concret de l’industrie des services financiers.

    Flux du marché NASDAQ vs données en temps réel

    Ruchir Vani, directeur de l’ingénierie logicielle au Nasdaq, a présenté lors du sommet « Current 2022—the Next Generation of Kafka Summit » à Austin, Texas : Improving the Reliability of Market Data Subscription Feeds.

    Le Nasdaq Stock Market (National Association of Securities Dealers Automated Quotations Stock Market) est une bourse américaine basée à New York. Elle est classée deuxième sur la liste des bourses par la capitalisation boursière des actions échangées, derrière la Bourse de New York. La plateforme d’échange appartient à Nasdaq, Inc. Alors que la plupart des gens ne connaissent que la bourse, ce n’est que la pointe de l’iceberg.

    Échange Nasdaq/Technologie

    Source: Nasdaq, Inc.

    Nasdaq Cloud Data Service optimisé par Apache Kafka

    Le Nasdaq Cloud Data Service a démocratisé l’accès aux données financières pour les entreprises, les chercheurs et les enseignants. Ces consommateurs en aval ont des exigences et des SLA différents.

    Le moteur central de traitement des flux de données du marché nécessite une latence inférieure à 15 microsecondes. Ce n’est PAS Kafka mais un logiciel propriétaire dédié (coûteux). Les consommateurs doivent être colocalisés et utiliser des applications optimisées pour exploiter les données à cette vitesse.

    Vitesse

    Source: Nasdaq, Inc.

    NASDAQ, Inc. voulait conquérir plus de parts de marché en fournissant des services supplémentaires en plus de l’alimentation critique du marché. Ils ont construit un service appelé Nasdaq Data Link Streaming. Kafka alimente ceci :

    Diffusion de liaison de données

    Source: Nasdaq, Inc.

    L’architecture suivante montre la combinaison. Les charges de travail critiques en temps réel s’exécutent dans les centres de données du Nasdaq. Les flux de données sont répliqués sur le cloud public pour un traitement et une analyse ultérieurs. Les commerçants du marché doivent colocaliser avec le moteur en temps réel critique. D’autres abonnés internes et externes (comme les consommateurs de recherche et d’éducation) consomment depuis le cloud avec une faible latence, en temps quasi réel ou même par lots à partir du magasin de données historiques :

    Architecture

    Source: Nasdaq, Inc.

    Le temps réel est une technologie propriétaire (coûteuse) et rarement nécessaire

    Les données en temps réel battent les données lentes. Apache Kafka et des technologies similaires, comme Apache Flink, Spark Streaming, Apache Pulsar, Redpanda, Amazon Kinesis, Google Pub Sub, RabbitMQ, etc., permettent une messagerie en temps réel à faible latence ou le streaming de données.

    Apache Kafka est devenu la norme de facto pour le streaming de données car Kafka est assez bon pour presque tous les cas d’utilisation. La plupart des cas d’utilisation ne se soucient même pas de savoir si le traitement de bout en bout prend 10 ms, 100 ms ou 500 ms (car les applications en aval ne sont de toute façon pas conçues pour cette vitesse). Les scénarios de niche nécessitent une technologie dédiée. Kafka n’est PAS le bon choix si vous avez besoin d’une latence de l’ordre de la microseconde ! L’exemple du NASDAQ a montré à quel point la technologie propriétaire critique et le streaming de données à faible latence fonctionnent très bien ensemble.

    Si vous souhaitez voir plus de cas d’utilisation, lisez mon article sur le streaming de données à faible latence avec Apache Kafka et l’infrastructure 5G native du cloud.

    De quel type de temps réel avez-vous besoin dans vos projets ? Quand avez-vous besoin d’un temps réel critique ? Si vous avez « juste » besoin d’une faible latence, pour quel cas d’utilisation Kafka n’est-il pas assez bon ?

    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.