Présentation de Managed Airflow

Managed Airflow (3e génération) | Managed Airflow (2e génération) | Managed Airflow (1re génération, version héritée)

Cette page présente brièvement Airflow et les DAG, et décrit les fonctionnalités et les capacités de Managed Airflow.

Pour en savoir plus sur les nouvelles fonctionnalités des versions de Managed Airflow, consultez les notes de version.

À propos de Managed Airflow

Managed Airflow est un service d'orchestration de workflows entièrement géré qui vous permet de créer, planifier, surveiller et gérer des pipelines de workflows couvrant des clouds et des centres de données sur site.

Managed Airflow est basé sur le projet Open Source populaire Apache Airflow et fonctionne avec le langage de programmation Python.

En utilisant Managed Airflow au lieu d'une instance locale d'Apache Airflow, vous pouvez profiter du meilleur d'Airflow sans coûts d'installation ni de gestion. Managed Airflow vous permet de créer rapidement des environnements Airflow gérés et d'utiliser des outils Airflow natifs, tels que l'interface Web Airflow et des outils de ligne de commande. Ainsi, vous pouvez consacrer plus de temps à vos workflows sans vous soucier de votre infrastructure.

Différences entre les versions de Managed Airflow

Pour en savoir plus sur les différences entre les versions majeures de Managed Airflow, consultez la présentation de la gestion des versions de Managed Service pour Apache Airflow.

Airflow et DAG Airflow (workflows)

En analyse de données, un workflow représente une série de tâches pour l'ingestion, la transformation, l'analyse ou l'utilisation de données. Dans Airflow, les workflows sont créés à l'aide de "graphes orientés acycliques" (DAG, Directed Acyclic Graph).

Relation entre les DAG et les tâches
Figure 1. Relation entre les DAG et les tâches

Un DAG est un ensemble de tâches que vous souhaitez programmer et exécuter, organisées de manière à refléter leurs relations et leurs dépendances. Les DAG sont créés dans des fichiers Python, qui définissent leur structure à l'aide de code. L'objectif du DAG est de s'assurer que chaque tâche est exécutée au bon moment et dans le bon ordre.

Chaque tâche d'un DAG peut représenter presque n'importe quoi. Par exemple, une tâche peut effectuer l'une des fonctions suivantes :

  • Préparer des données pour l'ingestion
  • Surveiller une API
  • Envoyer un e-mail
  • Exécuter un pipeline

En plus d'exécuter un DAG selon une planification, vous pouvez le déclencher manuellement ou en réponse à des événements, tels que des modifications apportées à un bucket Cloud Storage. Pour en savoir plus, consultez la section Programmer et déclencher des DAG.

Pour en savoir plus sur les DAG et les tâches, consultez la documentation Apache Airflow.

Environnements Managed Airflow

Les environnements Managed Airflow sont des déploiements Airflow autonomes basés sur Google Kubernetes Engine. Ils fonctionnent avec d'autres Google Cloud services à l'aide de connecteurs intégrés à Airflow. Vous pouvez créer un ou plusieurs environnements dans un même Google Cloud projet, dans n'importe quelle région compatible.

Managed Airflow provisionne Google Cloud des services qui exécutent vos workflows et tous les composants Airflow. Les principaux composants d'un environnement sont les suivants :

  • Cluster GKE : les composants Airflow tels que les programmeurs, les déclencheurs et les nœuds de calcul Airflow s'exécutent en tant que charges de travail GKE dans un seul cluster créé pour votre environnement. Ils sont responsables du traitement et de l'exécution des DAG.

    Le cluster héberge également d'autres composants Managed Airflow tels que l'agent Composer et la surveillance Airflow, qui permettent de gérer l'environnement Managed Airflow , de collecter les journaux à stocker dans Cloud Logging et de collecter les métriques à importer dans Cloud Monitoring.

  • Serveur Web Airflow : le serveur Web exécute l'interface utilisateur Apache Airflow.

  • Base de données Airflow : la base de données contient les métadonnées Apache Airflow.

  • Bucket Cloud Storage : Managed Airflow associe un bucket Cloud Storage à votre environnement. Ce bucket, également appelé bucket de l'environnement, stocke les DAG, les journaux, les plug-ins personnalisés et les données de l'environnement. Pour en savoir plus sur le bucket de l'environnement, consultez la section Données stockées dans Cloud Storage.

Consultez la page Architecture des environnements pour en savoir plus sur les composants d'un environnement.

Interfaces Managed Airflow

Managed Airflow fournit des interfaces pour gérer les environnements, les instances Airflow qui s'exécutent dans les environnements et les DAG individuels.

Par exemple, vous pouvez créer et configurer des environnements Managed Airflow dans la Google Cloud console, Google Cloud CLI, l'API Cloud Composer ou Terraform.

Vous pouvez également gérer les DAG à partir de Google Cloud la console, de l'interface utilisateur Airflow native ou en exécutant des commandes Google Cloud CLI et Airflow CLI.

Fonctionnalités Airflow dans Managed Airflow

Lorsque vous utilisez Managed Airflow, vous pouvez gérer et utiliser des fonctionnalités Airflow telles que :

Contrôle des accès dans Managed Airflow

Vous gérez la sécurité au niveau du Google Cloud projet et pouvez attribuer des rôles IAM qui permettent aux utilisateurs individuels de modifier ou de créer des environnements. Si un utilisateur n'a pas accès à votre projet ou ne dispose pas du rôle IAM Managed Airflow approprié, il ne peut accéder à aucun de vos environnements.

En plus d'IAM, vous pouvez utiliser le contrôle des accès à l'interface utilisateur Airflow, qui est basé sur le modèle de contrôle des accès Apache Airflow.

Pour en savoir plus sur les fonctionnalités de sécurité de Managed Airflow, consultez la présentation de la sécurité de Managed Airflow.

Mise en réseau de l'environnement

Managed Airflow est compatible avec plusieurs configurations de mise en réseau pour les environnements, avec de nombreuses options de configuration. Par exemple, dans un environnement d'adresse IP privée, les DAG et les composants Airflow sont entièrement isolés de l'Internet public.

Pour en savoir plus sur la mise en réseau dans Managed Airflow, consultez les pages de chaque fonctionnalité de mise en réseau :

Questions fréquentes

Quelle version Apache Airflow est utilisée par Managed Airflow ?

Les environnements Managed Airflow sont basés sur des images Managed Airflow. Lorsque vous créez un environnement, vous pouvez sélectionner une image avec une version Airflow spécifique :

  • Managed Airflow (3e génération) est compatible avec Airflow 2.
  • Managed Airflow (2e génération) est compatible avec Airflow 2.
  • Managed Airflow (1re génération, version héritée) est compatible avec Airflow 1 et Airflow 2.

Vous contrôlez la version Apache Airflow de votre environnement. Vous pouvez décider de mettre à niveau votre environnement vers une version ultérieure de l'image Managed Airflow. Chaque version de Managed Airflow est compatible avec plusieurs versions d'Apache Airflow.

Puis-je utiliser l'interface utilisateur et la CLI Airflow natives ?

Vous pouvez accéder à l'interface Web Apache Airflow de votre environnement. Chacun de vos environnements possède sa propre interface Airflow. Pour en savoir plus sur l'accès à l'interface utilisateur d'Airflow, consultez la page Interface Web Airflow.

Pour exécuter les commandes de CLI Airflow dans vos environnements, utilisez les commandes gcloud. Pour en savoir plus sur l'exécution de commandes de CLI Airflow dans les environnements Managed Airflow, consultez la page Interface de ligne de commande Airflow.

Puis-je utiliser ma propre base de données comme base de données Airflow ?

Managed Airflow utilise un service de base de données géré pour la base de données Airflow. Il n'est pas possible d'utiliser une base de données fournie par l'utilisateur comme base de données Airflow.

Puis-je utiliser mon propre cluster comme cluster Managed Airflow ?

Managed Airflow utilise le service Google Kubernetes Engine pour créer, gérer et supprimer les clusters d'environnement dans lesquels les composants Airflow s'exécutent. Ces clusters sont entièrement gérés par Managed Airflow.

Il n'est pas possible de créer un environnement Managed Airflow basé sur un cluster Google Kubernetes Engine autogéré.

Puis-je utiliser mon propre registre de conteneurs ?

Managed Airflow utilise le service Artifact Registry pour gérer les dépôts d'images de conteneurs utilisés par les environnements Managed Airflow. Il n'est pas possible de le remplacer par un registre de conteneurs fourni par l'utilisateur.

Les environnements Managed Airflow sont-ils zonaux ou régionaux ?

Lorsque vous créez un environnement, vous spécifiez une région pour celui-ci :

  • Les environnements Managed Airflow standards disposent d'une base de données Airflow zonale et d'une couche d'exécution Airflow multizonale. La base de données Airflow est située dans l'une des zones de la région spécifiée, et les composants Airflow sont répartis entre plusieurs zones.
  • Hautement résilients (à haute disponibilité) Les environnements Managed Airflow disposent d'une base de données Airflow multizonale et d'une couche d'exécution Airflow multizonale. Un environnement hautement résilient s'exécute sur au moins deux zones de la région sélectionnée. Managed Airflow distribue automatiquement les composants de votre environnement entre les zones. Le composant Cloud SQL qui stocke la base de données Airflow comporte une instance principale et une instance de secours réparties entre les zones de la région sélectionnée.

Les environnements Managed Airflow (1re génération, version héritée) sont zonaux.

Étape suivante