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

Luke Bodeen

问题是什么?

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

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

最终,我们认为灵活的、多节点的、支持 DAG 的工具是关键,而 Airflow 是少数符合要求的工具之一。它基于开源和 Python 这一事实是支持我们核心原则的重要因素。当时,Airflow 缺少一个 Windows hook 和 operator,因此我们将 WinRM hook 和 operator 贡献回了社区。鉴于它的灵活性,我们还使用 DAG 生成器来让我们的元数据驱动我们的 DAG,并降低维护成本。

结果如何?

我们有了一个非常灵活的部署框架,这使得我们能够尽可能地灵活。只要我们正确地使用该工具,其可靠性就值得信赖。其可扩展性还使我们能够减少在我们的服务器群上运行操作所需的时间。