Architecture des environnements

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Cette page décrit l'architecture des environnements Cloud Composer.

Configurations d'architecture des environnements

Les environnements Cloud Composer 1 peuvent avoir les configurations d'architecture suivantes :

Projets clients et locataires

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

  • Le projet client est un projet Google Cloud dans lequel vous créez vos environnements. Vous pouvez créer plusieurs environnements dans un même projet client.

Un projet locataire est un projet locataire géré par Google. Le projet locataire fournit un contrôle des accès unifié et une couche supplémentaire la sécurité des données dans votre environnement. Chaque instance Cloud Composer dispose de son propre projet locataire.

Composants d'environnement

Un environnement Cloud Composer est constitué de composants d'environnement.

Un composant d'environnement est un élément d'une infrastructure Airflow gérée qui s'exécute sur Google Cloud dans votre environnement. Les composants d'environnement s'exécutent dans le projet locataire ou dans le projet client de votre environnement.

Cluster de l'environnement

Le cluster de l'environnement est un mode standard. de VPC natif ou Cluster Google Kubernetes Engine basé sur le routage de votre environnement:

Par défaut, Cloud Composer active les mises à niveau automatiques des nœuds et la réparation automatique des nœuds afin de protéger le cluster de votre environnement contre les failles de sécurité. Ces opérations se produisent pendant les intervalles de maintenance que vous spécifiez pour votre environnement.

Bucket de l'environnement

Le bucket de l'environnement est un bucket Cloud Storage qui stocke les DAG, les plug-ins, les dépendances de données et les journaux Airflow. Le bucket de l'environnement se trouve dans le projet client.

Lorsque vous importez vos fichiers DAG dans le dossier /dags de votre bucket d'un environnement, Cloud Composer synchronise les DAG avec les composants Airflow de votre environnement.

Serveur Web Airflow

Le serveur Web Airflow exécute l'interface utilisateur Airflow de votre environnement.

Dans Cloud Composer 1, le serveur Web Airflow s'exécute dans le projet locataire de votre environnement.

Le serveur Web Airflow est intégré à Identity-Aware Proxy. Cloud Composer masque l'intégration IAP détails et fournit un accès au serveur Web en fonction de l'identité des utilisateurs et des liaisons de stratégie IAM définies pour les utilisateurs.

Dans Cloud Composer 1, le serveur Web Airflow s'exécute sur un autre compte de service que les nœuds de calcul et les programmeurs Airflow. Le compte de service du serveur Web est généré automatiquement lors de la création de l'environnement et est dérivé du domaine du serveur Web. Par exemple, si le domaine est example.appspot.com, le compte de service est example@appspot.gserviceaccount.com.

Base de données Airflow

La base de données Airflow est une instance Cloud SQL qui s'exécute dans le projet locataire de votre environnement. Elle héberge la base de données de métadonnées Airflow.

Pour protéger les informations sensibles de connexion et de workflows, Cloud Composer n'autorise l'accès à la base de données qu'au compte de service de votre environnement.

Autres composants de flux d'air

Voici d'autres composants Airflow qui s'exécutent dans votre environnement :

  • Les programmeurs Airflow analysent les fichiers de définition des DAG et planifient les exécutions de DAG en fonction de l'intervalle de planification, et met les tâches en file d'attente pour exécution Nœuds de calcul Airflow. Dans Cloud Composer 1 Les processeurs DAG Airflow s'exécutent dans les composants du programmeur.

  • Les nœuds de calcul Airflow exécutent des tâches planifiées par Airflow. les planificateurs.

Architecture d'environnement IP public

Ressources de l'environnement IP public Cloud Composer dans le projet locataire et le projet client
Figure 1. Architecture d'environnement IP public (cliquez pour agrandir)

Une architecture d'environnement IP public pour Cloud Composer 1 présente les caractéristiques suivantes :

  • Le projet locataire héberge une instance Cloud SQL, un espace de stockage Cloud SQL et une instance de l'environnement flexible App Engine qui exécute le serveur Web Airflow.
  • Le projet client héberge tous les autres composants de l'environnement.
  • Les programmeurs et les nœuds de calcul Airflow du projet client communiquent avec la base de données Airflow via une instance de proxy Cloud SQL située dans le projet client.
  • Le serveur Web Airflow du projet locataire communique avec le serveur Airflow base de données via une instance de proxy Cloud SQL située du projet locataire.

Architecture d'un environnement IP privé

Ressources de l'environnement IP privé Cloud Composer dans le projet locataire et le projet client
Figure 2. Architecture d'environnement IP public (cliquez pour agrandir)

Dans l'architecture d'un environnement IP privé:

  • Le projet locataire héberge une instance Cloud SQL, Un espace de stockage Cloud SQL et deux instances App Engine qui exécutent le serveur Web Airflow.
  • Le projet client héberge tous les autres composants de l'environnement.
  • Les programmeurs et les nœuds de calcul Airflow se connectent à la base de données Airflow via le processus HAProxy dans le cluster de l'environnement.
  • Le processus HAProxy équilibre la charge du trafic vers l'instance Cloud SQL entre deux instances de proxy Cloud SQL situées dans le projet locataire. Les environnements IP privés utilisent deux instances de proxy Cloud SQL, car le projet client n'accède pas directement à la base de données en raison des limites du réseau. Deux instances sont nécessaires pour vous assurer que les composants de votre environnement ont accès à la base de données à tout moment.

Adresse IP privée avec DRS

Adresse IP privée avec les ressources de l'environnement Cloud Composer DRS dans le projet locataire et le projet client (cliquez pour agrandir)
Figure 3. Architecture d'environnement IP public (cliquez pour agrandir)

Si la règle d'administration de partage restreint de domaine (DRS) est activée dans votre projet, Cloud Composer utilise l'adresse IP privée à l'architecture de l'environnement DRS.

Dans l'architecture d'adresse IP privée avec environnement DRS:

  • Le projet locataire héberge une instance Cloud SQL, un espace de stockage Cloud SQL et deux instances App Engine qui exécutent le serveur Web Airflow.

  • Le projet locataire héberge un bucket d'environnement supplémentaire. Le serveur Web Airflow accède directement à ce bucket.

  • Le projet client héberge tous les autres composants de l'environnement.

  • Le projet client héberge le processus de synchronisation des buckets dans le cluster de l'environnement. Ce processus synchronise deux buckets d'environnement.

  • Les programmeurs et les nœuds de calcul Airflow se connectent à la base de données Airflow via le processus HAProxy dans le cluster de l'environnement.

  • Le processus HAProxy équilibre la charge du trafic vers l'instance Cloud SQL entre deux instances de proxy Cloud SQL situées dans le projet locataire. Les environnements IP privés utilisent deux instances de proxy Cloud SQL, car le projet client n'accède pas directement à la base de données en raison des limites du réseau. Deux instances sont nécessaires pour vous assurer que les composants de votre environnement ont accès à la base de données à tout moment.

Intégration à Cloud Logging et Cloud Monitoring

Cloud Composer s'intègre à Cloud Logging et à Cloud Monitoring de votre projet Google Cloud afin de centraliser l'affichage des journaux Airflow et DAG.

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

En raison de la nature par flux de Cloud Logging, vous pouvez afficher immédiatement les journaux émis par les composants Airflow au lieu d'attendre que les journaux Airflow apparaissent dans le bucket Cloud Storage de votre environnement.

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.

Étape suivante