Compartilhar via


Visão geral da implantação do Apache Airflow no AKS (Serviço de Kubernetes do Azure)

Neste guia, você implantará o Apache Airflow no AKS (Serviço de Kubernetes do Azure) usando o Helm. Você aprenderá a configurar um cluster do AKS, instalar o Helm, implantar o Airflow usando o gráfico do Helm e explorar a interface do usuário do Airflow.

Importante

O software de código aberto é mencionado em toda a documentação e amostras do AKS. O software que você implanta está excluído dos contratos de nível de serviço do AKS, garantia limitada e suporte do Azure. Ao usar tecnologia de código aberto junto com o AKS, consulte as opções de suporte disponíveis nas comunidades e mantenedores de projetos respectivos para desenvolver um plano.

Por exemplo, o repositório do Ray GitHub descreve várias plataformas que variam em tempo de resposta, finalidade e nível de suporte.

A Microsoft assume a responsabilidade por criar os pacotes de código aberto que implantamos no AKS. Essa responsabilidade inclui ter propriedade completa do processo de criação, verificação, sinalização, validação e hotfix, junto com o controle sobre os binários em imagens de contêiner. Para obter mais informações, confira Gerenciamento de vulnerabilidades para o AKS e Cobertura de suporte do AKS.

O que é o Apache Airflow?

O Apache Airflow é uma plataforma de código aberto criada para desenvolver, agendar e monitorar fluxos de trabalho orientados em lote. Com sua estrutura flexível do Python, o Airflow permite que você projete fluxos de trabalho que se integram perfeitamente a quase qualquer tecnologia. No Airflow, você precisa definir fluxos de trabalho do Python, representados pelo DAG (grafo direcionado acíclico). Você pode implantar o Airflow em qualquer lugar e, após a implantação, pode acessar a interface do usuário do Airflow e configurar fluxos de trabalho.

Arquitetura do Airflow

Em um alto nível, o Airflow inclui:

  • Um banco de dados de metadados que rastreia o estado de DAGs, instâncias de tarefa, XComs e muito mais.
  • Um servidor Web que fornece a interface do usuário do Airflow para monitoramento e gerenciamento.
  • Um agendador responsável por disparar DAGs e instâncias de tarefa.
  • Executores que lidam com a execução de instâncias de tarefa.
  • Trabalhos que executam as tarefas.
  • Outros componentes, como a CLI (Interface de Linha de Comando).

Captura de tela da arquitetura do Apache Airflow no AKS.

Arquitetura distribuída do Airflow para produção

A arquitetura modular e distribuída do Airflow oferece várias vantagens importantes para cargas de trabalho de produção:

  • Separação de preocupações: cada componente tem uma função distinta, mantendo o sistema simples e fácil de manter. O agendador gerencia DAGs e agendamento de tarefas, enquanto os trabalhos executam tarefas, garantindo que cada parte permaneça focada em sua função específica.
  • Escalabilidade: à medida que as cargas de trabalho crescem, a arquitetura permite um dimensionamento fácil. Você pode executar vários agendadores ou trabalhos simultaneamente e aproveitar um banco de dados hospedado para dimensionamento automático para acomodar o aumento da demanda.
  • Confiabilidade: como os componentes são separados, a falha de apenas um agendador ou trabalho não leva a uma interrupção em todo o sistema. O banco de dados de metadados centralizado garante a consistência e a continuidade em todo o sistema.
  • Extensibilidade: a arquitetura é flexível, permitindo que componentes como o executor ou o serviço de fila sejam trocados e personalizados conforme necessário.

Esse design fornece uma base robusta para dimensionamento, confiabilidade e flexibilidade no gerenciamento de pipelines de dados complexos.

Executores do Airflow

Uma decisão de design muito importante ao preparar a produção do Airflow é escolher o executor correto. Quando uma tarefa está pronta para ser executada, o executor é responsável por gerenciar a execução dele. Os executores interagem com um pool de trabalhos que executam as tarefas. Os executores usados com mais frequência são:

  • LocalExecutor: executa instâncias de tarefa em paralelo no sistema host. Esse executor é ideal para teste, mas oferece escalabilidade limitada para cargas de trabalho maiores.
  • CeleryExecutor: distribui tarefas em vários computadores usando um pool de do Celery, fornecendo escalabilidade horizontal ao executar trabalhos em nós diferentes.
  • KubernetesExecutor: adaptado para implantações do Airflow no Kubernetes, esse executor inicia dinamicamente pods de trabalho dentro do cluster do Kubernetes. Ele oferece excelente escalabilidade e garante um forte isolamento de recursos.

À medida que fazemos a transição do Airflow para a produção, o dimensionamento de trabalhos torna-se essencial, tornando KubernetesExecutor o mais adequado às nossas necessidades. No entanto, para testes locais, o LocalExecutor é a opção mais simples.

Próxima etapa

Colaboradores

A Microsoft atualiza este artigo. Os seguintes colaboradores escreveram originalmente:

  • Don High | Engenheiro de Cliente Principal
  • Satya Chandragiri | Arquiteto Sênior de Soluções de Nuvem Digital
  • Erin Schaffer | Desenvolvedora de Conteúdo 2