如果使用得当,Airflow 可以成为一个企业级的调度工具。它能够“在任何节点上运行任何命令”的能力非常惊人。处理复杂的混合模式任务变得容易,而且通过 Celery Worker 进行横向扩展非常强大。开源社区非常棒,我们可以自己诊断和调试问题,并将贡献反馈回社区以造福更多人。

Luke Bodeen

问题是什么?

我们必须以多种方式将我们复杂的旗舰应用程序部署到多个节点上。这要求任务能够在 Windows 节点之间通信并完美地协调时序。我们不想购买昂贵的企业级调度工具,并且需要极致的灵活性。

Apache Airflow 如何帮助解决这个问题?

最终,我们认为灵活、多节点、支持 DAG 的工具至关重要,而 Airflow 是为数不多符合这一要求的工具之一。基于开源和 Python 是我们坚持核心原则的重要因素。当时,Airflow 缺少 Windows 钩子和操作符,因此我们向社区贡献了 WinRM 钩子和操作符。考虑到其灵活性,我们还使用 DAG 生成器来通过元数据驱动我们的 DAG,从而降低维护成本。

结果是什么?

我们拥有一个非常灵活的部署框架,使我们能够尽可能地保持敏捷。只要我们正确使用该工具,其可靠性是我们日益信赖的。可扩展性也使我们能够缩短对服务器集群进行操作所需的时间。