Nos últimos anos, observamos o surgimento de ferramentas de gerenciamento de fluxo de trabalho genéricas e específicas de domínio. Os fatores motivadores por trás desse aumento incluem o aumento do uso de pipelines de processamento de dados e a automação do processo de desenvolvimento de modelo de aprendizado de máquina (ML). Airflow é uma das primeiras ferramentas de orquestração de tarefas de código aberto que popularizou a definição de gráficos acíclicos direcionados (DAGs) como código, uma melhoria em relação a uma configuração de pipeline em XML/YAML. Embora o Airflow continue sendo uma das ferramentas de orquestração mais amplamente adotadas, recomendamos que você avalie outras ferramentas com base em sua situação específica. Por exemplo, você pode escolher Prefect, que oferece suporte a tarefas de processamento de dados dinâmicas como uma preocupação de primeira classe, com funções Python genéricas como tarefas; Argo caso você prefira uma integração estreita com Kubernetes; Kubeflow ou MLflow para fluxos de trabalho específicos de ML. Devido ao surgimento de novas ferramentas, combinadas com algumas das deficiências do Airflow (como a falta de suporte nativo para fluxos de trabalho dinâmicos e sua abordagem centralizada para agendar pipelines), não recomendamos mais o Airflow como ferramenta de orquestração padrão.
Acreditamos que com o aumento do uso de streaming em análises e pipelines de dados, bem como o gerenciamento de dados por meio de uma malha de dados descentralizada, a necessidade de ferramentas de orquestração para definir e gerenciar pipelines de processamento de dados complexos é reduzida.
Airflow continua sendo nossa ferramenta de gerenciamento de fluxo de trabalho de código aberto favorita para pipelines de processamento de dados como gráficos acíclicos direcionados (DAGs). Este é um espaço em crescimento, com ferramentas de código aberto, como Luigi e Argo, e ferramentas específicas de fornecedoras, como Azure Data Factory e AWS Data Pipeline. No entanto, o Airflow se diferencia com sua definição programática de fluxos de trabalho sobre arquivos de configuração de baixo código limitados, suporte para testes automatizados, instalação multiplataforma de código aberto, um conjunto rico de pontos de integração para o ecossistema de dados e grande suporte da comunidade. Em arquiteturas de dados descentralizadas, como malha de dados, no entanto, o Airflow atualmente falha como uma orquestração de fluxo de trabalho centralizado.
Airflow is a tool to programmatically create, schedule and monitor data pipelines. By treating Directed Acyclic Graphs (DAGs) as code, it encourages maintainable, versionable and testable data pipelines. We've leveraged this configuration in our projects to create dynamic pipelines that resulted in lean and explicit data workflows. Airflow makes it easy to define your operators and executors and to extend the library so that it fits the level of abstraction that suits your environment.