Arquitectura del entorno

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

En esta página se describe la arquitectura de los entornos de Cloud Composer.

Configuraciones de la arquitectura del entorno

Los entornos de Cloud Composer 1 pueden tener las siguientes configuraciones de arquitectura:

Proyectos de clientes y de clientes

Cuando creas un entorno, Cloud Composer distribuye los recursos del entorno entre un proyecto de cliente y un proyecto de propietario:

  • Proyecto de cliente es un Google Cloud proyecto en el que creas tus entornos. Puedes crear más de un entorno en un mismo proyecto de cliente.

  • Un proyecto de cliente es un proyecto de cliente gestionado por Google y pertenece a la organización Google.com. El proyecto de inquilino proporciona un control de acceso unificado y una capa adicional de seguridad de los datos a tu entorno. Cada entorno de Cloud Composer tiene su propio proyecto de arrendatario.

Componentes del entorno

Un entorno de Cloud Composer consta de componentes de entorno.

Un componente de entorno es un elemento de una infraestructura de Airflow gestionada que se ejecuta en Google Cloudcomo parte de tu entorno. Los componentes del entorno se ejecutan en el cliente o en el proyecto del cliente de tu entorno.

Clúster del entorno

El clúster del entorno es un clúster de Google Kubernetes Engine en modo Estándar nativo de VPC o basado en rutas de tu entorno:

De forma predeterminada, Cloud Composer habilita las actualizaciones automáticas de nodos y la reparación automática de nodos para proteger el clúster de tu entorno frente a vulnerabilidades de seguridad. Estas operaciones se realizan durante las ventanas de mantenimiento que especifiques para tu entorno.

Segmento del entorno

El segmento del entorno es un segmento de Cloud Storage que almacena DAGs, complementos, dependencias de datos y registros de Airflow. El cubo del entorno se encuentra en el proyecto del cliente.

Cuando subes tus archivos DAG a la carpeta /dags del bucket de tu entorno, Cloud Composer sincroniza los DAGs con los componentes de Airflow de tu entorno.

Servidor web de Airflow

El servidor web de Airflow ejecuta la interfaz de usuario de Airflow de tu entorno.

En Cloud Composer 1, el servidor web de Airflow se ejecuta en el proyecto de cliente de tu entorno.

El servidor web de Airflow está integrado con Identity-Aware Proxy. Cloud Composer oculta los detalles de la integración de IAP y proporciona acceso al servidor web en función de las identidades de los usuarios y los enlaces de políticas de IAM definidos para los usuarios.

En Cloud Composer 1, el servidor web de Airflow se ejecuta en una cuenta de servicio diferente a la de los trabajadores y los programadores de Airflow. La cuenta de servicio del servidor web se genera automáticamente durante la creación del entorno y se deriva del dominio del servidor web. Por ejemplo, si el dominio es example.appspot.com, la cuenta de servicio es example@appspot.gserviceaccount.com.

Base de datos de Airflow

La base de datos de Airflow es una instancia de Cloud SQL que se ejecuta en el proyecto de inquilino de tu entorno. Aloja la base de datos de metadatos de Airflow.

Para proteger la información sensible de las conexiones y los flujos de trabajo, Cloud Composer solo permite el acceso a la base de datos a la cuenta de servicio de tu entorno.

Otros componentes de flujo de aire

Otros componentes de Airflow que se ejecutan en tu entorno:

  • Los programadores de Airflow analizan los archivos de definición de DAG, programan las ejecuciones de DAG en función del intervalo de programación y ponen en cola las tareas para que las ejecuten los trabajadores de Airflow. En Cloud Composer 1, los procesadores de DAG de Airflow se ejecutan como parte de los componentes del programador.

  • Los trabajadores de Airflow ejecutan las tareas programadas por los programadores de Airflow.

Arquitectura del entorno de IP pública

Recursos del entorno de IP pública de Cloud Composer en el proyecto de inquilino y en el proyecto del cliente
Figura 1. Arquitectura del entorno de IP pública (haga clic para ampliar)

En una arquitectura de entorno de IP pública de Cloud Composer 1:

  • El proyecto de inquilino aloja una instancia de Cloud SQL, almacenamiento de Cloud SQL y una instancia flexible de App Engine que ejecuta el servidor web de Airflow.
  • El proyecto del cliente aloja el resto de los componentes del entorno.
  • Los programadores y los trabajadores de Airflow del proyecto del cliente se comunican con la base de datos de Airflow a través de instancias de proxy de Cloud SQL ubicadas en el proyecto del cliente.
  • El servidor web de Airflow del proyecto de arrendatario se comunica con la base de datos de Airflow a través de una instancia de proxy de Cloud SQL ubicada en el proyecto de arrendatario.

Arquitectura de los entornos de IP privada

Recursos del entorno de IP privada de Cloud Composer en el proyecto de inquilino y en el proyecto del cliente
Figura 2. Arquitectura del entorno de IP privadas (haga clic para ampliar)

En una arquitectura de entorno de IP privada:

  • El proyecto de inquilino aloja una instancia de Cloud SQL, almacenamiento de Cloud SQL y dos instancias de App Engine que ejecutan el servidor web de Airflow.
  • El proyecto del cliente aloja el resto de los componentes del entorno.
  • Los programadores y los trabajadores de Airflow se conectan a la base de datos de Airflow a través del proceso HAProxy del clúster del entorno.
  • El proceso de HAProxy balancea la carga del tráfico a la instancia de Cloud SQL entre dos instancias del proxy de Cloud SQL que se encuentran en el proyecto de inquilino. Los entornos de IP privada usan dos instancias de Cloud SQL Proxy porque el proyecto del cliente no accede directamente a la base de datos debido a limitaciones de la red. Se necesitan dos instancias para asegurarse de que los componentes de su entorno tengan acceso a la base de datos en todo momento.

IP privada con DRS

IP privada con recursos del entorno de Cloud Composer de DRS en el proyecto de inquilino y en el proyecto del cliente (haz clic para ampliar)
Imagen 3. Arquitectura del entorno de IP privadas (haga clic para ampliar)

Si la política de organización de uso compartido restringido por dominio (DRS) está activada en tu proyecto, Cloud Composer usará la arquitectura de entorno de IP privada con DRS.

En la arquitectura del entorno de IP privada con DRS:

  • El proyecto de inquilino aloja una instancia de Cloud SQL, almacenamiento de Cloud SQL y dos instancias de App Engine que ejecutan el servidor web de Airflow.

  • El proyecto de inquilino aloja un segmento de otro entorno. El servidor web de Airflow accede directamente a este segmento.

  • El proyecto del cliente aloja el resto de los componentes del entorno.

  • El proyecto del cliente aloja el proceso de sincronización de cubos en el clúster del entorno. Este proceso sincroniza dos contenedores de entorno.

  • Los programadores y los trabajadores de Airflow se conectan a la base de datos de Airflow a través del proceso HAProxy en el clúster del entorno.

  • El proceso de HAProxy balancea la carga del tráfico a la instancia de Cloud SQL entre dos instancias del proxy de Cloud SQL que se encuentran en el proyecto de inquilino. Los entornos de IP privada usan dos instancias de Cloud SQL Proxy porque el proyecto del cliente no accede directamente a la base de datos debido a limitaciones de la red. Se necesitan dos instancias para asegurarse de que los componentes de su entorno tengan acceso a la base de datos en todo momento.

Integración con Cloud Logging y Cloud Monitoring

Cloud Composer se integra con Cloud Logging y Cloud Monitoring de tu Google Cloud proyecto para que tengas un lugar centralizado donde ver los registros de Airflow y DAG.

Cloud Monitoring recoge e ingiere métricas, eventos y metadatos de Cloud Composer para generar estadísticas mediante paneles de control y gráficos.

Gracias a la naturaleza de streaming de Cloud Logging, puedes ver los registros emitidos por los componentes de Airflow inmediatamente en lugar de esperar a que aparezcan en el segmento de Cloud Storage de tu entorno.

Para limitar el número de registros de tu Google Cloud proyecto, puedes detener la ingestión de todos los registros. No inhabilites el registro.

Siguientes pasos