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 |
| 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 |
-
Code source pour airflow.models.xcom. Consultez la documentation Apache Airflow. 2 août 2021 ↩