Choisir des workflows ou Cloud Composer pour l'orchestration de services

Workflows et Cloud Composer peuvent tous deux être utilisés pour orchestrer des services afin de combiner des services pour mettre en œuvre des fonctionnalités d'application ou effectuer un traitement de données. Bien que les services soient conceptuellement similaires, chaque service est conçu pour différents ensembles de cas d'utilisation. Cette page vous aide à choisir la meilleure option en fonction de votre cas d'utilisation.

Différences majeures

La principale différence entre Workflows et Cloud Composer réside dans le type d'architecture compatible avec chaque produit.

Workflows orchestre plusieurs services basés sur HTTP dans un workflow durable et avec état. Il offre une faible latence et peut gérer un grand nombre d'exécutions. Cette solution est également sans serveur.

Les workflows sont un excellent moyen d'enchaîner les microservices, d'automatiser des tâches d'infrastructure telles que le démarrage ou l'arrêt d'une VM et d'intégrer des systèmes externes. Les connecteurs de workflows sont également compatibles avec des séquences d'opérations simples dans les services Google Cloud tels que Cloud Storage et BigQuery.

Cloud Composer est conçu pour orchestrer les workflows basés sur les données (en particulier ETL/ELT). Il est basé sur le projet Apache Airflow, mais Cloud Composer est entièrement géré. Cloud Composer accepte vos pipelines où qu'ils se trouvent, y compris sur site ou sur plusieurs plates-formes cloud. Toutes les logiques de Cloud Composer, y compris les tâches et la planification, sont exprimées en Python sous la forme de fichiers de définition du graphe orienté acyclique (DAG).

Cloud Composer est idéal pour les charges de travail par lot pouvant gérer quelques secondes de latence entre les exécutions de tâches. Vous pouvez utiliser Cloud Composer pour orchestrer des services dans vos pipelines de données, par exemple pour déclencher une tâche dans BigQuery ou pour démarrer un pipeline Dataflow. Vous pouvez utiliser des opérateurs préexistants pour communiquer avec divers services. Il existe plus de 150 opérateurs pour Google Cloud seul.

Comparatif détaillé des fonctionnalités

Caractéristique Workflows Cloud Composer
Syntaxe Syntaxe des workflows au format YAML ou JSON Python
Modèle d'état Contrôle de flux impératif Langage déclaratif DAG avec résolution automatique des dépendances
Intégrations Requêtes HTTP et connecteurs Opérateurs et capteurs Airflow
Passage de données entre les étapes 64 Ko pour les variables 48 Ko1 pour XCom
Déclencheurs d'exécution et planification Outil gcloud, Cloud Console, API Workflows, bibliothèques clientes de Workflows, Cloud Scheduler Planifications de type Cron dans le fichier de définition du DAG, capteurs Airflow
Modèles asynchrones
  • Sondage
  • Attente pour des opérations Google Cloud de longue durée
Sondage
Exécution parallèle Disponible via experimental.executions.map Automatique basé sur les dépendances
Latence d'exécution Millisecondes Secondes
Basé sur Open Source Non Oui (Apache Airflow)
Modèle de scaling Sans serveur (scaling à la demande et peut être réduit à zéro) Provisionné
Modèle de facturation Licence basée sur l'utilisation (par étape exécutée) En fonction de la capacité provisionnée
Fonctionnalités de traitement des données Non Remplissages, possibilité de réexécuter des DAG

  1. Code source pour airflow.models.xcom. Consultez la documentation Apache Airflow. 2 août 2021