Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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).
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
Azure Kubernetes Service