Présentation de Cloud Composer

Cette page présente un environnement Cloud Composer et les produits Google Cloud utilisés pour un déploiement Apache Airflow.

Cloud Composer est un service d'orchestration de workflows géré, conçu à partir d'Airflow. De la même manière que pour un déploiement sur site, Cloud Composer déploie plusieurs composants pour exécuter Airflow. Cette page décrit les composants Google Cloud et leurs fonctions, ainsi que la manière dont vous exécutez vos workflows.

Également à l'image de la méthode sur site, Cloud Composer s'appuie sur certaines configurations pour exécuter vos workflows avec succès. La modification des configurations sur lesquelles Cloud Composer s'appuie pour les connexions ou les communications peut entraîner des conséquences inattendues ou perturber le déploiement d'Airflow. Cette page présente les configurations d'environnement importantes.

Environnements

Airflow est un framework structuré de type microservice. Pour déployer Airflow dans une configuration distribuée, Cloud Composer fournit plusieurs composants Google Cloud, désignés collectivement sous l'appellation environnement Cloud Composer.

Les environnements constituent un concept fondamental de Cloud Composer. Vous pouvez créer un ou plusieurs environnements Cloud Composer dans un projet. Les environnements sont des déploiements Airflow autonomes basés sur Google Kubernetes Engine. Ces environnements s'utilisent avec les services Google Cloud via des connecteurs intégrés à Airflow.

Vous créez des environnements Cloud Composer dans des régions disponibles et ceux-ci s'exécutent dans une zone Compute Engine. Pour des cas d'utilisation simples, vous pouvez créer un environnement dans une région. Pour les cas d'utilisation complexes, vous pouvez créer plusieurs environnements dans une même région ou dans plusieurs régions. Airflow communique avec d'autres produits Google Cloud via les API publiques des produits.

Architecture

Lorsque vous créez un environnement, Cloud Composer répartit les ressources de celui-ci sur un projet locataire géré par Google et sur un projet client, comme illustré dans le schéma suivant :

Ressources de l'environnement Cloud Composer dans le projet locataire et le projet client (cliquez pour agrandir)
Ressources de l'environnement Cloud Composer (cliquez pour agrandir)

Ressources du projet locataire

Pour un contrôle de l'accès à Cloud Identity and Access Management unifié et une sécurité des données renforcée, Cloud Composer déploie Cloud SQL et App Engine dans le projet locataire.

Cloud SQL

Cloud SQL stocke les métadonnées d'Airflow. Pour protéger les informations sensibles relatives à la connexion et aux workflows, Cloud Composer restreint l'accès à la base de données aux paramètres par défaut ou au compte de service personnalisé spécifié lors de la création de l'environnement. Cloud Composer sauvegarde les métadonnées d'Airflow de manière quotidienne afin de minimiser les risques de perte de données.

Le compte de service utilisé lors de la création de l'environnement Cloud Composer est le seul compte autorisé à accéder à vos données depuis la base de données Cloud SQL. Pour autoriser à distance l'accès à votre base de données Cloud SQL depuis une application, un client ou un autre service Google Cloud, Cloud Composer met à disposition le proxy Cloud SQL dans le cluster GKE.

App Engine

L'environnement flexible App Engine héberge le serveur Web Airflow. Par défaut, le serveur Web Airflow est intégré à Identity-Aware Proxy. Cloud Composer masque les détails de l'intégration IAP et vous permet d'utiliser la stratégie IAM Cloud Composer pour gérer l'accès au serveur Web. Pour n'autoriser l'accès qu'au serveur Web Airflow, vous pouvez attribuer le rôle composer.user ou attribuer différents rôles Cloud Composer donnant accès à d'autres ressources de votre environnement. Pour les organisations qui présentent des exigences supplémentaires concernant le contrôle des accès, Cloud Composer accepte également le déploiement d'un serveur Web Airflow autogéré dans le projet client.

Ressources du projet client

Cloud Composer déploie Cloud Storage, Google Kubernetes Engine, Cloud Logging et Cloud Monitoring dans votre projet client.

Cloud Storage

Cloud Storage fournit le bucket de stockage nécessaire à la préproduction des DAG, des plug-ins, des dépendances de données et des journaux. Pour déployer des workflows (DAG), copiez les fichiers dans le bucket de votre environnement. Cloud Composer se charge de synchroniser les DAG entre les serveurs, les programmeurs et le serveur Web. Avec Cloud Storage, vous pouvez stocker vos artefacts de workflow dans les dossiers data/ et logs/ sans vous soucier des limites de taille. Vous conservez également un contrôle total des accès à vos données.

Google Kubernetes Engine

Par défaut, Cloud Composer déploie les composants principaux, tels que le programmeur Airflow, les nœuds de calcul et CeleryExecutor, dans un cluster GKE. Pour plus de sécurité et d'évolutivité, Cloud Composer accepte également les clusters de VPC natif utilisant des adresses IP d'alias.

Redis, l'agent de messagerie de CeleryExecutor, s'exécute en tant qu'application StatefulSet afin que les messages persistent après le redémarrage du conteneur.

L'exécution du planificateur et des nœuds de calcul sur GKE vous permet d'utiliser KubernetesPodOperator pour l'exécution de n'importe quelle charge de travail de conteneur. Par défaut, Cloud Composer active la mise à niveau automatique et la réparation automatique afin de protéger les clusters GKE des failles de sécurité.

Notez que les nœuds de calcul et de planificateur Airflow s'exécutent sur un compte de service différent de celui du serveur Web Airflow.

  • Nœuds de calcul et planificateur : si vous ne spécifiez pas de compte de service lors de la création de l'environnement, celui-ci s'exécute sous le compte de service Compute Engine par défaut.
  • Serveur Web : le compte de service est généré automatiquement lors de la création de l'environnement. Il est dérivé du domaine du serveur Web. Par exemple, si le domaine est foo-tp.appspot.com, le compte de service est foo-tp@appspot.gserviceaccount.com.

Vous pouvez consulter les informations sur serviceAccount et airflowUri dans les détails de l'environnement.

Cloud Logging et Cloud Monitoring

Cloud Composer s'intègre à Cloud Logging et à Cloud Monitoring afin de vous offrir une vue centralisée de tous les journaux de service et de workflow Airflow.

Comme Cloud Logging fonctionne en flux continu, vous pouvez afficher immédiatement les journaux émis par le programmeur et les nœuds de calcul Airflow au lieu d'attendre la synchronisation du module de journalisation Airflow. De plus, comme les journaux Cloud Logging pour Cloud Composer sont basés sur google-fluentd, vous avez accès à tous les journaux générés par les conteneurs du programmeur et des nœuds de calcul. Ces journaux améliorent considérablement le processus de débogage et contiennent des informations utiles sur les dépendances au niveau du système et d'Airflow.

Cloud Monitoring collecte et ingère des métriques, des événements et des métadonnées à partir de Cloud Composer pour générer des insights via des tableaux de bord et des graphiques.

Mise en réseau et sécurité

Par défaut, Cloud Composer déploie un cluster GKE basé sur le routage qui utilise le réseau VPC par défaut pour les communications entre les machines. Pour renforcer la sécurité et améliorer la souplesse de la mise en réseau, Cloud Composer est également compatible avec les fonctionnalités suivantes.

VPC partagé

Le VPC partagé permet de gérer les ressources réseau partagées depuis un projet hôte central afin d'appliquer des règles de réseau cohérentes à l'ensemble des projets.

Lorsque Cloud Composer participe à un VPC partagé, l'environnement Cloud Composer se trouve dans un projet de service et peut appeler des services hébergés dans d'autres projets Google Cloud. Les ressources de vos projets de service communiquent de manière sécurisée d'un projet à l'autre en utilisant des adresses IP internes. Pour connaître les exigences concernant le réseau et le projet hôte, consultez la page Configurer un VPC partagé.

Environnement Cloud Composer de VPC natif

Avec un VPC natif, les adresses IP des pods et des services du cluster GKE peuvent être routées en mode natif au sein du réseau Google Cloud, y compris via l'appairage de réseaux VPC.

Dans cette configuration, Cloud Composer déploie un cluster GKE de VPC natif en utilisant des adresses IP d'alias dans votre environnement. Lorsque vous utilisez des clusters de VPC natif, GKE sélectionne automatiquement une plage secondaire. Pour des exigences de mise en réseau spécifiques, vous pouvez également configurer les plages secondaires pour vos pods GKE et services GKE lors de la configuration de l'environnement Cloud Composer.

Environnement Cloud Composer d'adresse IP privée

Avec une adresse IP privée, les workflows Cloud Composer sont totalement isolés de l'Internet public.

Dans cette configuration, Cloud Composer déploie un cluster GKE de VPC natif utilisant des adresses IP d'alias dans le projet client. Le cluster GKE de votre environnement est configuré en tant que cluster privé, et l'instance Cloud SQL est configurée pour l'adresse IP privée. Cloud Composer crée également une connexion d'appairage entre le réseau VPC de votre projet client et celui de votre projet locataire.

Informations importantes concernant la configuration

  • Certains paramètres Airflow sont préconfigurés pour les environnements Cloud Composer. Vous ne pouvez pas les modifier. Les autres paramètres sont à configurer lors de la création de votre environnement.
  • Les quotas ou les limites applicables aux produits Google Cloud autonomes utilisés par Cloud Composer pour le déploiement Airflow s'appliquent également à votre environnement.
  • Cloud Composer s'appuie sur les configurations suivantes pour exécuter les workflows avec succès :
    • Le backend du service Cloud Composer se coordonne avec son agent de service GKE via Cloud Pub/Sub à l'aide d'abonnements et s'appuie sur le comportement par défaut de Cloud Pub/Sub pour la gestion des messages. Ne supprimez pas les sujets .*-composer-.*. Cloud Pub/Sub accepte au maximum 10 000 sujets par projet.
    • Le service Cloud Composer coordonne la journalisation avec Cloud Logging. Pour limiter le nombre de journaux dans votre projet Google Cloud, vous pouvez arrêter l'ingestion de tous les journaux. Ne désactivez pas Logging.
    • Ne modifiez pas la liaison de stratégie Cloud Identity and Access Management pour le compte de service Cloud Composer, par exemple service-your-project-number@cloudcomposer-accounts.iam.gserviceaccount.com.
    • Ne modifiez pas le schéma de la base de données Airflow.
  • Une version de Cloud Composer exécutant une révision stable d'Airflow peut inclure des mises à jour d'Airflow qui sont rétroportées d'une révision ultérieure d'Airflow.
  • Les nœuds de calcul et le programmeur ont une capacité différente et s'exécutent sous un compte de service différent de celui du serveur Web Airflow. Pour éviter les échecs liés au DAG sur le serveur Web Airflow, n'effectuez pas de calcul lourd et n'accédez pas aux ressources Google Cloud auxquelles le serveur Web n'a pas accès au cours de l'analyse du DAG.
  • La suppression de votre environnement ne supprime pas les données suivantes de votre projet client : le bucket Cloud Storage pour votre environnement, les journaux Logging et les sujets Pub/Sub. Afin d'éviter que des frais ne soient facturés sur votre compte Google Cloud, exportez et supprimez vos données, si nécessaire.

Étape suivante