En los años recientes hemos visto el surgimiento de herramientas de manejo de flujos de trabajo genéricas y específicas de dominio. Entre los factores que han impulsado este crecimiento tenemos el incremento en el uso de pipelines de procesamiento de datos y la automatización del proceso de desarrollo del modelo de machine learning (ML). Airflow es una de las herramientas tempranas de código abierto de orquestación de tareas que popularizaron la definición de grafos acíclicos dirigidos (DAGs) como código, una mejora con respecto a una configuración de pipeline XML/YAML. Aunque Airflow permanece como una de las herramientas de orquestación más ampliamente utilizadas, les alentamos a evaluar otras herramientas basadas en su situación específica. Por ejemplo, podrían escoger Prefect, que soporta tareas dinámicas de procesamiento de datos como preocupación de primera clase con funciones Python genericas como tareas; o Argo si prefieres una integración estrecha con Lubernetes; o Kubeflow; o MLflow para flujos de trabajo específicos de ML. Dado el surgimiento de nuevas herramientas, combinado con algunas de las carencias de Airflow (como la falta de soporte nativo para flujos dinámicos y su enfoque centralizado para calendarizar pipelines) no recomendamos Airflow como la herramienta de orquestación por defecto. Creemos que con el incremento en el uso de streaming en analytics y pipelines de datos, asi como el manejo de datos a través de un decentralized data mesh, se reduce la necesidad de herramientas de orquestación para definir y manejar complejos pipelines de procesamiento de datos.
Airflow sigue siendo nuestra herramienta de código abierto favorita y más utilizada para la gestión de flujos de trabajo para pipelines de procesamiento de datos como grafos acíclicos dirigidos (DAGs). Esta es un área en crecimiento con herramientas de código abierto como Luigi, Argo y herramientas más específicas como Azure Data Factory o AWS Data Pipeline. Sin embargo, Airflow se diferencia porque su definición programática de flujos de trabajo se realiza en archivos de configuración con poco código, provee soporte para pruebas automatizadas, es de código abierto, es multiplataforma, ofrece muchas posibilidades de integración con el ecosistema de datos y tiene soporte de una gran comunidad. No obstante, en arquitecturas de datos descentralizadas, como la malla de datos, esta herramienta se puede usar como un orquestador centralizado de flujos de trabajo.
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.