Modifier

Traitement de flux de données avec des moteurs de données open source complètement managés

Hubs d'événements Azure
Azure Kubernetes Service (AKS)
Azure Cosmos DB
Azure Database pour PostgreSQL
Cache Azure pour Redis

Cet article présente un exemple de solution de streaming qui utilise des services de données Azure entièrement managés.

Architecture

Diagramme de l’architecture montrant comment les données de diffusion en continu transitent par un système constitué de composants Kafka, Kubernetes, Cassandra, PostgreSQL et Redis.

Téléchargez un fichier Visio de cette architecture.

Workflow

  1. La fonctionnalité Event Hubs pour Apache Kafka diffuse les événements de producteurs Kafka.

  2. Apache Spark consomme les événements. AKS fournit un environnement managé pour les tâches Apache Spark.

  3. Une application utilisant Azure Cosmos DB for Apache Cassandra écrit des événements dans Cassandra. Cette base de données sert de plateforme de stockage pour les événements. AKS héberge les microservices qui écrivent dans Cassandra.

  4. La fonctionnalité de flux de modification d’Azure Cosmos DB traite les événements en temps réel.

  5. Les applications planifiées exécutent un traitement par lot sur les événements stockés dans Cassandra.

  6. Les magasins de données de référence enrichissent les informations sur les événements. Les applications orientées lot écrivent les informations enrichies sur les événements enrichis dans PostgreSQL. Les magasins de données de référence classiques sont les suivants :

  7. Une application orientée lot traite les données Cassandra. Cette application stocke les données traitées dans Azure Database pour PostgreSQL. Ce magasin de données relationnelles fournit des données à des applications en aval qui requièrent des informations enrichies.

  8. Les outils et applications de rapport analysent les données de la base de données PostgreSQL. Par exemple, Power BI se connecte à la base de données à l’aide du connecteur Azure Database pour PostgreSQL. Ce service de rapport affiche ensuite des éléments visuels enrichis des données.

  9. Azure Cache pour Redis fournit un cache en mémoire. Dans cette solution, le cache contient des données sur les événements critiques. Une application stocke des données dans le cache et les en extrait.

  10. Les sites web et d’autres applications utilisent les données en cache pour améliorer les temps de réponse. Parfois, des données ne sont pas disponibles dans le cache. Dans ce cas, ces applications utilisent le modèle cache-aside ou une stratégie similaire pour récupérer des données de Cassandra dans Azure Cosmos DB.

Composants

  • Azure Event Hubs est une plateforme de diffusion en continu complètement managée, capable de traiter des millions d’événements par seconde. Le service Event Hubs fournit un point de terminaison pour Apache Kafka, une plateforme de traitement de flux open source largement utilisée. Lorsque les organisations utilisent la fonctionnalité de point de terminaison, elles n’ont pas besoin de créer et gérer des clusters Kafka pour le traitement de flux. Au lieu de cela, elles peuvent bénéficier de l’implémentation Kafka complètement managée d’Event Hubs.

  • Azure Cosmos DB est une base de données NoSQL relationnelle complètement managée qui offre une réplication multimaître. Azure Cosmos DB prend en charge les API open source pour un grand nombre de bases de données, langages et plateformes. Voici quelques exemples :

    Azure Cosmos DB for Apache Cassandra vous permet d’accéder aux données Azure Cosmos DB à l’aide d’outils, de langages et de pilotes Apache Cassandra. Apache Cassandra est une base de données NoSQL open source qui convient parfaitement pour les charges de travail conséquentes nécessitant un grand nombre d’écritures.

  • AKS est un service Kubernetes hautement disponible, sécurisé et complètement managé. Kubernetes est une plateforme open source extensible en rapide évolution destinée à la gestion des charges de travail conteneurisées. AKS héberge des moteurs de traitement du Big Data open source, tels qu’Apache Spark. AKS vous permet d’exécuter des tâches de traitement de flux à grande échelle dans un environnement managé.

  • Azure Database pour PostgreSQL est un service de base de données relationnelle complètement managé. Il offre une haute disponibilité, une mise à l’échelle élastique, une mise à jour corrective et d’autres fonctionnalités de gestion pour PostgreSQL. PostgreSQL est un système de gestion de base de données relationnelle open source largement adopté.

  • Azure Cache pour Redis fournit un magasin de données en mémoire basé sur le logiciel Redis. Redis est un magasin de données en mémoire open source. Les magasins de session, les caches de contenu et d’autres composants de stockage utilisent Redis pour améliorer les performances et la scalabilité. Azure Cache pour Redis fournit des fonctionnalités Redis open source en tant qu’offre complètement managée.

Autres solutions

Vous pouvez remplacer les produits et services compatibles open source de cette solution par d’autres. Pour plus d’informations sur les services open source disponibles dans Azure, consultez Open source sur Azure.

Détails du scénario

Cette solution de streaming est constituée de services de données Azure complètement managés qui exécutent des moteurs open source :

  • Azure Event Hubs offre une implémentation Kafka pour l’ingestion du flux.
  • Azure Cosmos DB prend en charge le stockage des événements dans Cassandra.
  • Azure Kubernetes Service (AKS) héberge les microservices Kubernetes pour le traitement du flux.
  • Azure Database pour PostgreSQL gère le stockage des données relationnelles dans PostgreSQL.
  • Azure Cache pour Redis gère les magasins de données en mémoire de Redis.

Les technologies open source offrent de nombreux avantages. Par exemple, les organisations peuvent utiliser des technologies open source pour ce qui suit :

  • Migrer des charges de travail existantes.
  • Profiter de la vaste communauté open source.
  • Limiter le verrouillage du fournisseur.

En rendant les technologies open source accessibles, les outils et services Azure aident les organisations à tirer parti de ces avantages, ainsi qu’à développer les solutions de leur choix.

Cette solution utilise des services PaaS (platform-as-a-service) complètement managés. Par conséquent, Microsoft gère les mises à jour correctives, la maintenance du contrat de niveau de service (SLA) et d’autres tâches de gestion. L’intégration native à l’infrastructure de sécurité Azure constitue un autre avantage.

Cas d’usage potentiels

Cette solution s’applique à différents scénarios :

  • Utilisation de services PaaS Azure pour créer des solutions de diffusion en continu modernes qui utilisent des technologies open source.
  • Migration de solutions de traitement de flux open source vers Azure.

Considérations

Ces considérations implémentent les piliers d’Azure Well-Architected Framework qui est un ensemble de principes directeurs qui permettent d’améliorer la qualité d’une charge de travail. Pour plus d’informations, consultez Microsoft Azure Well-Architected Framework.

Concevez et implémentez chaque service en gardant les meilleures pratiques à l’esprit. Pour obtenir des instructions sur chaque service, consultez le site de documentation Microsoft. Passez également en revue les informations des sections suivantes :

Performances

  • Implémentez un regroupement de connexions pour Azure Database pour PostgreSQL. Vous pouvez utiliser une bibliothèque de regroupement de connexions dans l’application. Vous pouvez également utiliser une fonction de regroupement de connexions telle que PgBouncer ou pgpool. L’établissement d’une connexion avec PostgreSQL est une opération coûteuse. Un regroupement de connexions vous permet d’éviter de dégrader les performances de l’application. PgBouncer est intégré dans Azure Database pour PostgreSQL - Serveur flexible.

  • Configurez Azure Cosmos DB for Apache Cassandra pour optimiser les performances en utilisant une stratégie de partitionnement appropriée. Décidez si vous voulez utiliser une clé primaire à champ unique, une clé primaire composée ou une clé de partition composite lors du partitionnement de tables.

Extensibilité

  • Prenez en compte vos exigences en matière de streaming lors du choix d’un niveau Event hubs :

    • Pour les exigences de débit de milieu de gamme inférieures à 120 Mbits/s, envisagez le niveau Premium. Ce niveau adapte l’échelle de manière élastique en réponse aux exigences de diffusion en continu.
    • Pour les charges de travail de diffusion en continu haut de gamme avec une entrée de gigaoctets de données, envisagez le niveau dédié. Ce niveau est une offre à locataire unique avec une capacité garantie. Vous pouvez mettre à l’échelle des clusters dédiés.
  • Considérez le débit approvisionné en mode de mise à l’échelle automatique pour Azure Cosmos DB si vos charges de travail sont imprévisibles et pointues. Vous pouvez configurer Azure Cosmos DB pour utiliser un débit approvisionné manuellement ou un débit approvisionné en mode de mise à l’échelle automatique. Avec la mise à l’échelle automatique, Azure met automatiquement et instantanément à l’échelle les unités de requête par seconde en fonction de votre utilisation.

Sécurité

La sécurité fournit des garanties contre les attaques délibérées, et contre l’utilisation abusive de vos données et systèmes importants. Pour plus d’informations, consultez Vue d’ensemble du pilier Sécurité.

  • Utilisez Azure Private Link pour faire en sorte que les services Azure fassent partie de votre réseau virtuel. Lorsque vous utilisez Private Link, le trafic entre les services et votre réseau circule sur la dorsale Azure sans transiter par l’Internet public. Les services Azure de cette solution prennent en charge Private Link pour les références (SKU) sélectionnées.

  • Vérifiez les stratégies de sécurité de votre organisation. Avec Azure Cosmos DB for Apache Cassandra, des clés donnent accès à des ressources telles que des espaces et tables de clés. L’instance Azure Cosmos DB stocke ces clés. Il se peut que vos stratégies de sécurité exigent que vous propagiez ces clés vers un service de gestion de clés tel Azure Key Vault. Veillez également à opérer une rotation des clés conformément aux stratégies de votre organisation.

Résilience

Envisagez d’utiliser des zones de disponibilité pour protéger des applications vitales pour l’entreprise contre des défaillances du centre de données. Les services de cette solution prennent en charge des zones de disponibilité pour des références (SKU) sélectionnées dans des régions prenant en charge les zones de disponibilité. Pour des informations à jour, consultez la liste des services qui prennent en charge les zones de disponibilité.

Optimisation des coûts

L’optimisation des coûts consiste à examiner les moyens de réduire les dépenses inutiles et d’améliorer l’efficacité opérationnelle. Pour plus d’informations, consultez Vue d’ensemble du pilier d’optimisation des coûts.

Pour estimer le coût de cette solution, utilisez la Calculatrice de prix Azure. Gardez également à l’esprit les points suivants :

  • Event Hubs est disponible dans les niveaux De base, Standard, Premium et Dédié. Les niveaux Premium et Dédié sont idéaux pour les charges de travail de diffusion en continu à grande échelle. Étant donné que vous pouvez mettre à l’échelle le débit, songez à commencer petit, puis à évoluer à mesure que la demande augmente.

  • Azure Cosmos DB offre deux modèles :

    • Un modèle de débit approvisionné idéal pour les charges de travail exigeantes. Ce modèle est disponible dans deux options de gestion de la capacité : standard et mise à l’échelle automatique.
    • Un modèle serverless adapté à l’exécution de petites charges de travail pointues.
  • Un cluster AKS se compose d’un ensemble de nœuds, ou machines virtuelles, qui s’exécutent dans Azure. Les composants de calcul, de stockage et de mise en réseau constituent l’essentiel du coût d’un cluster.

  • Azure Database pour PostgreSQL est disponible dans les niveaux Serveur unique et Serveur flexible. Les différents niveaux répondent à différents scénarios, tels que des charges de travail prévisibles, extensibles et hautes performances. Les coûts dépendent principalement du choix des nœuds de calcul et de la capacité de stockage. Pour les nouvelles charges de travail, choisissez le niveau Serveur flexible, car il a plus de fonctionnalités prises en charge par rapport au niveau Serveur unique. Notez également que Serveur unique est en voie d'obsolescence.

  • Azure Cache pour Redis est disponible en plusieurs niveaux. Ces niveaux prennent en charge des caches allant de 250 Mo à plusieurs To. Outre la taille, d’autres exigences affectent le choix du niveau :

    • Clustering
    • Persistance
    • La géoréplication active

Déployer ce scénario

Lorsque vous déployez cette solution, tenez compte des points suivants :

Contributeurs

Cet article est mis à jour et géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.

Auteur principal :

Étapes suivantes

Pour découvrir les solutions associées, consultez les informations suivantes :