Architecture : traitement d'événements complexes

Cette page décrit une architecture pour le traitement d'événements complexes sur Google Cloud.

Vous pouvez utiliser Google Cloud pour créer l'infrastructure élastique et évolutive nécessaire pour importer de grandes quantités de données, traiter des événements et exécuter des règles d'entreprise. Toute architecture de traitement d'événements complexes doit permettre d'importer des données à partir de plusieurs sources hétérogènes, d'appliquer des règles d'entreprise complexes et de générer des actions sortantes.

Ce type de système et ses différents composants sont représentés dans l'architecture illustrée ci-dessous :

Architecture pour système de traitement d'événements complexes

Présentation de l'architecture

Cette section fournit des détails sur l'architecture présentée dans le diagramme. L'architecture est compatible avec les entrées en streaming qui peuvent gérer un flux de données en streaming, et avec les entrées par lots qui traitent les données sous forme de fragments de taille significative.

Entrée en streaming

Dans les situations nécessitant une action immédiate basée sur des événements en temps réel générés par un utilisateur ou une machine, vous pouvez utiliser une architecture de diffusion en streaming pour gérer et traiter des événements complexes.

Applications

Les événements générés par les utilisateurs proviennent souvent d'interactions au sein d'applications hébergées sur site ou dans le cloud et peuvent prendre la forme de flux de clics ou d'actions utilisateur telles que l'ajout d'éléments à un panier d'achat, une liste d'idées cadeau, ou des transactions financières. Les événements générés automatiquement peuvent prendre la forme de périphériques mobiles ou autres qui signalent la présence, des diagnostics ou des types de données similaires. Il existe différentes plates-formes pour l'hébergement d'applications sur Google Cloud :

  • App Engine est un service Platform as a Service (PaaS) qui permet de déployer des applications directement dans un environnement d'autoscaling géré.
  • Google Kubernetes Engine fournit un contrôle plus détaillé pour les applications basées sur des conteneurs, vous permettant d'orchestrer et de déployer facilement des conteneurs au sein d'un cluster.
  • Compute Engine fournit des machines virtuelles hautes performances pour une flexibilité maximale.

Transport

Que les applications soient hébergées sur site ou sur Google Cloud, les événements qu'elles génèrent doivent transiter par une couche de messagerie hautement disponible et faiblement couplée. Pub/Sub, un service de transport de messages durable dans le monde entier, est compatible avec la connectivité native à d'autres services Google Cloud, ce qui en fait le lien entre les applications et le traitement en aval.

Entrée par lots

Dans les scénarios avec de grandes quantités de données historiques stockées dans des bases de données sur site ou dans le cloud, vous pouvez utiliser une approche de traitement par lots pour importer et traiter des événements complexes.

Sources de données

Les sources de données contenant des événements à traiter peuvent être situées sur site ou sur Google Cloud. Pour les sources de données sur site, vous pouvez exporter les données et les copier dans Cloud Storage pour le traitement en aval. Vous pouvez accéder directement aux données stockées dans des bases de données hébergées dans le cloud à l'aide d'outils de traitement en aval. Vous pouvez utiliser différentes plates-formes pour stocker des données d'événement non traitées dans Google Cloud :

  • Cloud Storage fournit un stockage d'objets pour les fichiers plats ou les données non structurées.
  • Cloud SQL stocke des données relationnelles.
  • Datastore est une base de données NoSQL compatible avec les schémas dynamiques et l'indexation complète des données.

Traitement et stockage

Traitement des données

Au fur et à mesure que les données d'événements sont transférées à partir d'applications via Pub/Sub ou qu'elles sont chargées dans d'autres sources de données du cloud, telles que Cloud Storage, Cloud SQL ou Datastore, vous devrez peut-être transformer, enrichir, agréger ou appliquer des calculs génériques à toutes les données. Dataflow est conçu pour effectuer ces tâches sur des données en continu ou en mode batch, à l'aide d'un modèle de programmation simple basé sur un pipeline. Dataflow exécute ces pipelines sur un service géré qui évolue de façon élastique, le cas échéant. Dans les charges de travail de traitement d'événements complexes, vous pouvez utiliser Dataflow pour normaliser les données de plusieurs sources hétérogènes et les formater en une seule représentation cohérente.

Stockage d'événement

Dans cette architecture, Dataflow traite les données d'événement et les normalise en une seule représentation cohérente et temporelle, puis les stocke dans Cloud Bigtable, un service de base de données NoSQL entièrement géré. Bigtable fournit un accès aux données cohérent, à faible temps de latence et à haut débit, utile pour les traitements en aval et les charges de travail analytiques. Consultez la page Conception de schémas Bigtable pour les données de séries temporelles pour plus d'informations sur le stockage de données de séries temporelles dans Bigtable.

Exécution de règles

Les règles qui doivent être exécutées pour tous les événements entrants sont au cœur des systèmes de traitement d'événements complexes. Les moteurs de règles peuvent être des langages spécifiques à un domaine simples ou personnalisés, ou des systèmes de gestion de règles d'entreprise complexes. Quelle que soit la complexité du moteur de règles, il peut être déployé de manière distribuée à l'aide de Dataflow ou de Dataproc, un service géré permettant d'exécuter des clusters Hadoop ou Spark. En utilisant l'un ou l'autre de ces systèmes, vous pouvez exécuter des règles complexes sur un grand nombre d'événements de séries temporelles, puis utiliser les résultats de ces évaluations de règles pour mener des actions sortantes.

Actions sortantes

Une fois que les événements entrants ont été traités par le mécanisme d'exécution des règles, les résultats peuvent être convertis en une série d'actions sortantes. Ces actions peuvent inclure des notifications push pour les appareils mobiles, des notifications pour d'autres applications ou l'envoi d'e-mails aux utilisateurs. Pour exécuter ces actions, vous pouvez envoyer des messages via Pub/Sub aux applications hébergées sur site ou sur Google Cloud, qu'elles soient exécutées sur App Engine, GKE ou Compute Engine.

Analyse

Vous pouvez stocker les résultats de l'exécution des règles sur les événements entrants dans BigQuery afin d'effectuer une exploration et une analyse à des fins de veille stratégique ou de création de rapports. BigQuery est un entrepôt de données géré, à l'échelle du pétaoctet, que vous pouvez utiliser pour exécuter des requêtes de type SQL et qui permet la connexion à des outils d'analyse en aval supplémentaires. Pour une analyse axée sur la science des données, Datalab offre des capacités d'exploration de données puissantes basées sur les blocs-notes Jupyter. Pour les cas d'utilisation de création de rapports ou de tableaux de bord, Google Data Studio est compatible avec la création de rapports personnalisables et partageables, étayés par les fonctionnalités de requête et de stockage de BigQuery.

Étapes suivantes

  • Explorez des architectures de référence, des schémas, des tutoriels et des bonnes pratiques concernant Google Cloud. Consultez notre Centre d'architecture cloud.