Arquitetura de ambiente

Airflow gerenciado (Geração 3) | Airflow gerenciado (Geração 2) | Airflow gerenciado (Geração 1 legada)

Esta página descreve a arquitetura dos ambientes do Airflow gerenciado.

Configurações de arquitetura de ambiente

Os ambientes do Airflow gerenciado (Geração 3) têm uma única configuração que não depende do tipo de rede:

Projetos de clientes e locatários

Quando você cria um ambiente, o Airflow gerenciado distribui os recursos desse ambiente entre um locatário e um projeto do cliente:

  • Projeto do cliente é um Google Cloud projeto em que você cria seus ambientes. É possível criar mais de um ambiente em um único projeto do cliente.

  • _Projeto do locatário_ é um projeto de locatário gerenciado pelo Google e pertence à organização Google.com. O projeto de locatário oferece controle de acesso unificado e uma camada adicional de segurança de dados para seu ambiente. Cada ambiente do Airflow gerenciado tem o próprio projeto do locatário.

Componentes do ambiente

Um ambiente do Airflow gerenciado consiste em componentes do ambiente.

Um componente de ambiente é um elemento de uma infraestrutura gerenciada do Airflow executado no Google Cloud Google Cloud, como parte do seu ambiente. Os componentes do ambiente são executados no locatário ou no projeto do cliente do ambiente.

Bucket do ambiente

Bucket do ambiente é um bucket do Cloud Storage que armazena DAGs, plug-ins, dependências de dados e registros do Airflow. O bucket do ambiente está localizado no projeto do cliente.

Quando você faz upload dos arquivos do DAG para a pasta /dags no bucket do seu ambiente, o Airflow gerenciado sincroniza os DAGs com os componentes do Airflow do ambiente.

Servidor da Web do Airflow

O servidor da Web do Airflow executa a interface do Airflow do seu ambiente.

O Airflow gerenciado fornece acesso à interface com base nas identidades do usuário e nas vinculações de política do IAM definidas para os usuários.

Banco de dados do Airflow

O banco de dados do Airflow é uma instância do Cloud SQL executada no projeto de locatário do seu ambiente. Ele hospeda o banco de dados de metadados do Airflow.

Para proteger informações confidenciais de conexão e fluxo de trabalho, o Airflow gerenciado permite acesso ao banco de dados apenas para a conta de serviço do seu ambiente.

Outros componentes do Airflow

Outros componentes do Airflow que são executados no seu ambiente são:

  • Os programadores do Airflow analisam arquivos de definição DAG, programam execuções de DAG com base no intervalo de programação e colocam em fila as tarefas a serem executadas pelos workers do Airflow.

  • Os acionadores do Airflow monitoram de forma assíncrona todas as tarefas adiadas no seu ambiente. Se você definir o número de acionadores no ambiente acima de zero, poderá usar operadores adiáveis nos seus DAGs.

  • Os processadores de DAG do Airflow processam arquivos DAG e os transformam em objetos DAG. No Airflow gerenciado (Geração 3), os processadores de DAG são executados como componentes de ambiente separados.

  • Os workers do Airflow executam tarefas programadas pelos programadores do Airflow. Os números mínimo e máximo de workers no ambiente mudam dinamicamente dependendo do número de tarefas na fila.

Arquitetura do ambiente do Airflow gerenciado (Geração 3)

Recursos do ambiente do Airflow gerenciado (geração 3) no projeto de locatário e de cliente
Figura 1. Arquitetura do ambiente do Airflow gerenciado (Geração 3) (clique para ampliar)

Em ambientes do Airflow gerenciado (Geração 3):

  • O projeto de locatário hospeda uma instância do Cloud SQL com o banco de dados do Airflow.
  • Todos os recursos do Airflow são executados no projeto de locatário.
  • O projeto do cliente hospeda o bucket do ambiente.
  • Um anexo de rede VPC personalizada no projeto do cliente pode ser usado para anexar o ambiente a uma rede VPC personalizada. Você pode usar um anexo atual ou o Airflow gerenciado pode criá-lo automaticamente sob demanda. Também é possível desanexar um ambiente de uma rede VPC.
  • Google Cloud O console, o Monitoring e o Logging no projeto do cliente oferecem maneiras de gerenciar o ambiente, os DAGs e as execuções de DAG, além de acessar as métricas e os registros do ambiente. Você também pode usar a interface do Airflow, a Google Cloud CLI, a API Composer e o Terraform para as mesmas finalidades.

Em ambientes do Airflow gerenciado (Geração 3) altamente resilientes:

  • A instância do Cloud SQL do seu ambiente está configurada para alta disponibilidade (é uma instância regional). Em uma instância regional, a configuração é composta por uma instância principal e uma instância de espera.

  • O ambiente executa os seguintes componentes do Airflow em zonas separadas:

    • Dois programadores do Airflow
    • Dois servidores da Web
    • Pelo menos dois processadores de DAG (até 10 no total)
    • Se os acionadores forem usados, pelo menos dois acionadores (até 10 no total)

    • O número mínimo de workers é definido como dois, e o cluster do ambiente distribui instâncias de worker entre as zonas. Em caso de interrupção zonal, as instâncias de worker afetadas são reagendadas em uma zona diferente.

Integração com o Cloud Logging e o Cloud Monitoring

O Airflow gerenciado é integrado ao Cloud Logging e ao Cloud Monitoring do seu Google Cloud projeto, para que você tenha um local central para visualizar os registros do Airflow e do DAG.

O Cloud Monitoring coleta e ingere métricas, eventos e metadados do Airflow gerenciado para gerar insights por meio de painéis e gráficos.

Devido à natureza de streaming do Cloud Logging, é possível visualizar os registros emitidos pelos componentes do Airflow imediatamente em vez de esperar que os registros do Airflow apareçam no bucket do Cloud Storage do ambiente.

Para limitar o número de registros no seu Google Cloud projeto, você pode interromper a ingestão de todos os registros. Não desative o Logging.

A seguir