Descripción general de Cloud Composer

Esta página proporciona una descripción general de un entorno de Cloud Composer y los productos de Google Cloud utilizados para una implementación de Apache Airflow.

Cloud Composer es un servicio de organización de flujo de trabajo administrado que se basa en Airflow. Al igual que en una implementación local, Cloud Composer implementa varios componentes para ejecutar Airflow. En esta página, se describen los componentes de Google Cloud, sus funciones y cómo se ejecutan los flujos de trabajo.

También similar a las instalaciones locales, Cloud Composer se basa en ciertas configuraciones para ejecutar correctamente tus flujos de trabajo. Modificar parámetros de configuración en los que Cloud Composer se basa para las conexiones o las comunicaciones puede tener consecuencias no deseadas o interrumpir la implementación de Airflow. En esta página, se identifican los parámetros de configuración importantes del entorno.

Entornos

Airflow es un marco de trabajo con arquitectura de microservicios. Para implementar Airflow en una configuración distribuida, Cloud Composer aprovisiona varios componentes de Google Cloud, conocidos colectivamente como entorno de Cloud Composer.

Los entornos son un concepto fundamental en Cloud Composer. Puedes crear uno o más entornos de Cloud Composer dentro de un proyecto. Los entornos son implementaciones autónomas de Airflow basadas en Google Kubernetes Engine. Estos entornos funcionan con los servicios de Google Cloud mediante conectores incorporados en Airflow.

Los entornos de Cloud Composer se crean en regiones admitidas y estos se ejecutan dentro de una zona de Compute Engine. Para casos prácticos simples, puedes crear un entorno en una región. En casos prácticos complejos, puedes crear varios entornos dentro de una sola región o en varias regiones. Airflow se comunica con otros productos de Google Cloud a través de las API públicas de los productos.

Arquitectura

Cuando creas un entorno, Cloud Composer distribuye los recursos del entorno entre un proyecto de usuario que administra Google y un proyecto de cliente, como se muestra en el siguiente diagrama:

Recursos del entorno de Cloud Composer en el proyecto de usuario y el proyecto de cliente (haz clic para agrandar)
Recursos del entorno de Cloud Composer (haz clic para ampliar)

Recursos del proyecto de usuario

Para el control de acceso unificado de Identity and Access Management y una capa adicional de seguridad de datos, Cloud Composer implementa Cloud SQL y App Engine en el proyecto de usuario.

Cloud SQL

Cloud SQL almacena los metadatos de Airflow. Para proteger la información sensible del flujo de trabajo y la conexión, Cloud Composer limita el acceso a la base de datos predeterminada o a la cuenta de servicio predeterminada que se usó para crear el entorno. Cloud Composer realiza copias de seguridad de los metadatos de Airflow diariamente para minimizar la posible pérdida de datos.

La cuenta de servicio que se usa para crear el entorno de Cloud Composer es la única cuenta que puede acceder a tus datos en la base de datos de Cloud SQL. Para autorizar de forma remota el acceso a tu base de datos de Cloud SQL desde una aplicación, cliente y otro servicio de Google Cloud, Cloud Composer proporciona el proxy de Cloud SQL en el clúster de GKE.

App Engine

El entorno flexible de App Engine aloja el servidor web de Airflow. De forma predeterminada, el servidor web de Airflow está integrado en Identity-Aware Proxy. Cloud Composer oculta los detalles de integración de IAP y te permite usar la política de IAM de Cloud Composer para administrar el acceso al servidor web. Para otorgar acceso solo al servidor web de Airflow, puedes asignar la función composer.user o asignar diferentes funciones de Cloud Composer que brinden acceso a otros recursos en tu entorno. Para organizaciones con requisitos adicionales de control de acceso, Cloud Composer también admite la implementación de un servidor web de Airflow autoadministrado en el proyecto de cliente.

Recursos del proyecto del cliente

Cloud Composer implementa Cloud Storage, Google Kubernetes Engine, Cloud Logging y Cloud Monitoring en tu proyecto de cliente.

Cloud Storage

Cloud Storage proporciona el depósito de almacenamiento para el staging de los DAG, los complementos, las dependencias de datos y los registros. Para implementar flujos de trabajo (DAG), copia los archivos en el depósito de tu entorno. Cloud Composer se encarga de sincronizar los DAG entre los trabajadores, los programadores y el servidor web. Con Cloud Storage, puedes almacenar tus artefactos de flujo de trabajo en las carpetas data/ y logs/ sin preocuparte por las limitaciones de tamaño y conservar el control total de acceso a tus datos.

Google Kubernetes Engine

De forma predeterminada, Cloud Composer implementa componentes principales, como el programador de Airflow, los nodos trabajadores y CeleryExecutor, en GKE. Para obtener más escalamiento y seguridad, Cloud Composer también admite clústeres nativos de la VPC que usan IP de alias.

Redis, el agente de mensajes de CeleryExecutor, se ejecuta como una aplicación StatefulSet para que los mensajes se mantengan en los reinicios de contenedores.

Ejecutar el programador y los trabajadores en GKE te permite usar KubernetesPodOperator para ejecutar cualquier carga de trabajo de contenedor. De forma predeterminada, Cloud Composer habilita la actualización automática y la reparación automática para proteger los clústeres de GKE de las vulnerabilidades de seguridad.

Ten en cuenta que el trabajador de Airflow y los nodos del programador y el servidor web de Airflow se ejecutan en diferentes cuentas de servicio.

  • Programador y trabajadores: si no especificas una cuenta de servicio durante la creación del entorno, el entorno se ejecuta con la cuenta de servicio predeterminada de Compute Engine.
  • Servidor web: la cuenta de servicio se genera automáticamente durante la creación del entorno y se deriva del dominio del servidor web. Por ejemplo, si el dominio es foo-tp.appspot.com, la cuenta de servicio es foo-tp@appspot.gserviceaccount.com.

Puedes ver la información serviceAccount y airflowUri en los detalles del entorno.

Cloud Logging y Cloud Monitoring

Cloud Composer se integra en Cloud Logging y Cloud Monitoring, por lo que tienes un lugar centralizado para ver todos los registros de flujo de trabajo y servicio de Airflow.

Debido a la naturaleza de transmisión de Cloud Logging, puedes ver los registros que el programador y los trabajadores de Airflow emiten inmediatamente en lugar de esperar la sincronización del módulo de registros de Airflow. Debido a que los registros de Cloud Logging para Cloud Composer se basan en google-fluentd, tienes acceso a todos los registros que producen los contenedores del programador y trabajador. Estos registros mejoran considerablemente la depuración y contienen información útil sobre la dependencia de Airflow y el nivel del sistema.

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

Herramientas de redes y seguridad

De forma predeterminada, Cloud Composer implementa un clúster de GKE basado en rutas que usa la red de VPC predeterminada para las comunicaciones de la máquina. Para mayor seguridad y flexibilidad de redes, Cloud Composer también admite las siguientes funciones.

VPC compartida

La VPC compartida permite la administración de recursos compartidos de red desde un proyecto host central para aplicar políticas de red coherentes en todos los proyectos.

Cuando Cloud Composer participa en una VPC compartida, el entorno de Cloud Composer se encuentra en un proyecto de servicio y puede invocar servicios alojados en otros proyectos de Google Cloud. Los recursos dentro de tus proyectos de servicio se comunican de forma segura a través de los límites del proyecto mediante direcciones IP internas. Para conocer los requisitos del proyecto de red y de host, consulta cómo configurar una VPC compartida.

Entorno de Cloud Composer nativo de la VPC

Con la VPC nativa, las direcciones IP de pod y servicio en el clúster de GKE se pueden enrutar de forma nativa dentro de la red de Google Cloud, incluso a través del intercambio de tráfico entre redes de VPC.

En esta configuración, Cloud Composer implementa un clúster de GKE nativos de VPC con alias de direcciones IP en tu entorno. Cuando usas clústeres nativos de la VPC, GKE elige automáticamente un rango secundario. Para requisitos específicos de redes, también puedes configurar los rangos secundarios en tus pods y servicios de GKE durante la configuración del entorno de Cloud Composer.

Entorno de IP privada de Cloud Composer

Con la IP privada, los flujos de trabajo de Cloud Composer están completamente aislados de Internet pública.

En esta configuración, Cloud Composer implementa un clúster de GKE nativo de VPC con alias de direcciones IP en el proyecto de cliente. El clúster de GKE para tu entorno está configurado como un clúster privado y la instancia de Cloud SQL está configurada para una IP privada. Cloud Composer también crea una conexión de intercambio de tráfico entre la red de VPC de tu proyecto de cliente y la red de VPC de tu proyecto de usuario.

Información de configuración importante

  • Algunos parámetros de Airflow están preconfigurados para entornos de Cloud Composer y no puedes cambiarlos. Otros parámetros que configuras cuando creas tu entorno.
  • Las cuotas o los límites que se aplican a los productos independientes de Google Cloud que Cloud Composer utiliza para tu implementación de Airflow también se aplican a tu entorno.
  • Cloud Composer se basa en los siguientes parámetros de configuración para ejecutar flujos de trabajo correctamente:
    • El backend del servicio de Cloud Composer se coordina con el agente de servicio de GKE a través de Pub/Sub mediante suscripciones y depende del comportamiento predeterminado de Pub/Sub para administrar mensajes. No borres los temas .*-composer-.*. Pub/Sub admite un máximo de 10,000 temas por proyecto.
    • El servicio de Cloud Composer coordina el registro con Cloud Logging. Para limitar la cantidad de registros en tu proyecto de Google Cloud, puedes detener la transferencia de todos los registros. No inhabilites Logging.
    • No modifiques la vinculación de la política de administración de identidades y accesos para la cuenta de servicio de Cloud Composer, por ejemplo, service-your-project-number@cloudcomposer-accounts.iam.gserviceaccount.com.
    • No cambies el esquema de la base de datos de Airflow.
  • Una versión de Cloud Composer que ejecute una versión estable de Airflow puede incluir actualizaciones de Airflow que se transfieren desde una versión posterior de Airflow.
  • Los nodos trabajadores y programadores tienen una capacidad diferente y se ejecutan con una cuenta de servicio diferente a la del servidor web de Airflow. Para evitar fallas del DAG en el servidor web de Airflow, no realices procesamientos pesados ni accedas a los recursos de Google Cloud a los que el servidor web no tiene acceso en el momento del análisis.
  • Si borras el entorno, no se borrarán los siguientes datos del proyecto de cliente: el depósito de Cloud Storage para tu entorno, los registros de Logging y los temas de Pub/Sub. Para evitar que se apliquen cargos a tu cuenta de Google Cloud, exporta y borra tus datos, según sea necesario.

Qué sigue