Arquitectura del entorno

Airflow administrado (3ª gen.) | Airflow administrado (2ª gen.) | Airflow administrado (1ª gen. heredada)

En esta página, se describe la arquitectura de los entornos de Airflow administrado.

Configuración de la arquitectura del entorno

Los entornos de Airflow administrado (3ª gen.) tienen una sola configuración que no depende del tipo de red:

Proyectos del cliente y el usuario

Cuando creas un entorno, Airflow administrado distribuye los recursos del entorno entre un proyecto del usuario y uno del cliente:

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

  • El proyecto de usuario es un proyecto de usuario administrado por Google y pertenece a la organización Google.com. El proyecto de usuario proporciona un control de acceso unificado y una capa adicional de seguridad de los datos para tu entorno. Cada entorno de Airflow administrado tiene su propio proyecto de usuario.

Componentes del entorno

Un entorno de Airflow administrado consta de componentes de entorno.

Un componente del entorno es un elemento de una infraestructura administrada de Airflow que se ejecuta en Google Cloud Google Cloud, como parte de tu entorno. Los componentes del entorno se ejecutan en el proyecto del usuario o del cliente de tu entorno.

Bucket del entorno

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

Cuando subes tus archivos DAG a la carpeta /dags en el bucket de tu entorno, Airflow administrado sincroniza los DAG con los componentes de Airflow de tu entorno.

Servidor web de Airflow

El servidor web de Airflow ejecuta la IU de Airflow de tu entorno.

Airflow administrado proporciona acceso a la interfaz en función de las identidades de los usuarios y las vinculaciones de políticas de IAM definidas para los usuarios.

Base de datos de Airflow

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

Para proteger la información sensible del flujo de trabajo y la conexión, Airflow administrado permite el acceso a la base de datos solo a la cuenta de servicio de tu entorno.

Otros componentes de Airflow

Otros componentes de Airflow que se ejecutan en tu entorno son los siguientes:

  • Los programadores de Airflow analizan los archivos de definición del DAG, programan las ejecuciones de DAG según el intervalo de programación y ponen en cola las tareas para que los trabajadores de Airflow las ejecuten.

  • Los supervisores asincrónicos de Airflow supervisan todas las tareas diferidas en tu entorno de manera asincrónica. Si estableces la cantidad de supervisores asincrónicos en tu entorno por encima de cero, podrás usar operadores diferibles en tus DAG.

  • Los procesadores de DAG de Airflow procesan los archivos DAG y los convierten en objetos DAG. En Airflow administrado (3ª gen.), los procesadores de DAG se ejecutan como componentes de entorno separados.

  • Los trabajadores de Airflow ejecutan tareas programadas por los programadores de Airflow. La cantidad mínima y máxima de trabajadores en tu entorno cambia de forma dinámica según la cantidad de tareas en la cola.

Arquitectura del entorno de Airflow administrado (3ª gen.)

Recursos del entorno de Airflow administrado (3ª gen.) en el proyecto de usuario y el proyecto de cliente
Figura 1. Arquitectura del entorno de Airflow administrado (3ª gen.) (haz clic para ampliar)

En los entornos de Airflow administrado (3ª gen.):

  • El proyecto de usuario aloja una instancia de Cloud SQL con la base de datos de Airflow.
  • Todos los recursos de Airflow se ejecutan en el proyecto de usuario.
  • El proyecto del cliente aloja el bucket del entorno.
  • Se puede usar una conexión de red de VPC personalizada en el proyecto del cliente para adjuntar el entorno a una red de VPC personalizada. Puedes usar una conexión existente o Airflow administrado puede crearla automáticamente a pedido. También es posible desconectar un entorno de una red de VPC.
  • Google Cloud console, Monitoring y Logging en el proyecto del cliente proporcionan formas de administrar el entorno, los DAG y las ejecuciones de DAG, y de acceder a las métricas y los registros del entorno. También puedes usar la IU de Airflow, Google Cloud CLI, la API de Cloud Composer y Terraform para los mismos fines.

En los entornos de Airflow administrado (3ª gen.) altamente resistentes:

  • La instancia de Cloud SQL de tu entorno está configurada para la alta disponibilidad (es una instancia regional). Dentro de una instancia regional, la configuración se compone de una instancia primaria y una instancia en espera.

  • Tu entorno ejecuta los siguientes componentes de Airflow en zonas separadas:

    • Dos programadores de Airflow
    • Dos servidores web
    • Al menos dos procesadores de DAG (hasta 10 en total)
    • Si se usan supervisores asincrónicos, al menos dos (hasta 10 en total)

    • La cantidad mínima de trabajadores se establece en dos, y el clúster de tu entorno distribuye las instancias de trabajador entre las zonas. En caso de una interrupción zonal, las instancias de trabajador afectadas se reprograman en una zona diferente.

Integración en Cloud Logging y Cloud Monitoring

Airflow administrado se integra en Cloud Logging y Cloud Monitoring de tu Google Cloud proyecto para que tengas un lugar central en el que consultar los registros de Airflow y DAG.

Cloud Monitoring recopila y transfiere métricas, eventos y metadatos de Airflow administrado para generar estadísticas a través de paneles y gráficos.

Debido a la naturaleza de transmisión de Cloud Logging, puedes ver los registros que emiten los componentes de Airflow inmediatamente en lugar de esperar a que los registros de Airflow aparezcan en el bucket de Cloud Storage de tu entorno.

Para limitar la cantidad de registros en tu Google Cloud proyecto, puedes detener la transferencia de todos los registros. No inhabilites Logging.

¿Qué sigue?