Cette page a été traduite par l'API Cloud Translation.
Switch to English

Architecture des environnements Cloud Composer

Lorsque vous créez un environnement, Cloud Composer répartit les ressources de celui-ci entre un projet locataire géré par Google et un projet client.

Configurations des environnements

Les environnements Cloud Composer peuvent être créés dans trois configurations : l'adresse IP publique, l'adresse IP privée et l'adresse IP privée avec partage restreint de domaine. Chaque configuration modifie légèrement l'architecture des ressources de projet.

Adresse IP publique

Dans une configuration par adresse IP publique, les ressources de l'environnement sont réparties entre les projets client et locataire. Le projet locataire héberge une instance Cloud SQL pour exécuter la base de données Airflow, et une VM d'environnement flexible Google App Engine pour exécuter le serveur Web Airflow.

Le serveur Web, les nœuds de calcul et le programmeur Airflow se connectent à la base de données Airflow à l'aide de processus de proxy Cloud SQL, comme illustré dans la figure ci-dessous :

Ressources de l'environnement Cloud Composer d'adresse IP publique dans le projet locataire et le projet client (cliquez pour agrandir)
Architecture d'adresse IP publique Cloud Composer (cliquez pour agrandir)

Adresse IP privée

Dans une configuration par adresse IP privée, les ressources Cloud Composer sont réparties entre les projets client et locataire. Le projet locataire héberge une instance Cloud SQL pour exécuter la base de données Airflow, et une VM d'environnement flexible Google App Engine pour exécuter le serveur Web Airflow et les processus de proxy Cloud SQL.

Le programmeur et les nœuds de calcul Airflow se connectent aux processus de proxy Cloud SQL qui s'exécutent dans le projet locataire à l'aide d'un processus HAProxy exécuté dans le cluster GKE. Le processus HAProxy équilibre la charge du trafic vers l'instance Cloud SQL entre deux instances de proxy Cloud SQL s'exécutant dans le projet locataire, comme illustré dans la figure ci-dessous :

Ressources de l'environnement Cloud Composer d'adresse IP privée dans le projet locataire et le projet client (cliquez pour agrandir)
Architecture d'adresse IP privée Cloud Composer (cliquez pour agrandir)

Adresse IP privée avec partage restreint de domaine

Si la règle d'administration de partage restreint de domaine est activée, Cloud Composer crée un bucket supplémentaire dans le projet locataire auquel le serveur Web peut accéder directement. Un processus supplémentaire s'exécute également sur le cluster GKE de Cloud Composer, afin de synchroniser les données du bucket Cloud Storage situé dans le projet client avec celles du bucket Cloud Storage situé dans le projet locataire.

Ressources de l'environnement Cloud Composer d'adresse IP privée avec partage restreint de domaine dans le projet locataire et le projet client (cliquez pour agrandir)
Architecture d'adresse IP privée avec partage restreint de domaine Cloud Composer (cliquez pour agrandir)

Ressources du projet locataire

Pour un contrôle de l'accès à 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.

Informations de configuration Airflow

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.

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 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.

Remarques importantes

  • 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.
  • 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 le Persistent Disk utilisé par la file d'attente Redis exécutée sur le cluster GKE. Afin d'éviter que des frais ne soient facturés sur votre compte Google Cloud, exportez et supprimez vos données, si nécessaire.