Choisir des workflows ou Managed Airflow pour l'orchestration de services

Workflows et Managed Service pour Apache Airflow peuvent être utilisés pour l'orchestration de services afin de combiner des services pour implémenter des fonctionnalités d'application ou effectuer un traitement des 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 Managed Airflow réside dans le type d'architecture que chaque produit est conçu pour prendre en charge.

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 Workflows sont également compatibles avec les séquences d'opérations simples dans les services Google Cloud tels que Cloud Storage et BigQuery.

Managed Airflow 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 Managed Airflow est entièrement géré. Managed Airflow prend en charge vos pipelines où qu'ils se trouvent, y compris sur site ou sur plusieurs plates-formes cloud. Toute la logique dans Managed Airflow, y compris les tâches et la planification, est exprimée en Python sous forme de fichiers de définition de graphe orienté acyclique (DAG).

Managed Airflow est idéal pour les charges de travail par lot qui peuvent tolérer quelques secondes de latence entre les exécutions de tâches. Vous pouvez utiliser Managed Airflow pour orchestrer des services dans vos pipelines de données, par exemple en déclenchant un job dans BigQuery ou en démarrant un pipeline Dataflow. Vous pouvez utiliser des opérateurs préexistants pour communiquer avec différents services. Il existe plus de 150 opérateurs pour Google Cloud seul.

Comparatif détaillé des fonctionnalités

Caractéristique Workflows Managed Airflow
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 512 Ko pour les variables 48 Ko1 pour XCom
Déclencheurs d'exécution et planification gcloud CLI, Google Cloud console, API Workflows, bibliothèques clientes Workflows, Cloud Scheduler Planifications de type Cron dans le fichier de définition du DAG, capteurs Airflow
Modèles asynchrones
  • Sondages
  • Rappels
  • En attente d'opérations de longue durée Google Cloud
Sondages
Exécution parallèle Exécutions simultanées du même workflow ou dans un workflow à l'aide d'étapes parallèles 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 ↩