如果使用得当,Airflow 可以成为企业级的调度工具。它能够在任何节点上运行任何命令,这非常棒。处理复杂的混合模式任务很容易,并且使用 Celery worker 进行扩展非常强大。开源社区很棒,我们可以帮助诊断和调试我们自己的问题,并将这些问题反馈给社区,造福大众。
问题是什么?
我们必须以多种方式将我们复杂的旗舰应用程序部署到多个节点。这需要任务在 Windows 节点之间进行通信并完美地协调时间。我们不想购买昂贵的企业调度工具,并且需要最大的灵活性。
Apache Airflow 如何帮助解决这个问题?
最终,我们认为灵活、多节点、支持 DAG 的工具是关键,而 Airflow 是少数几个符合要求的工具之一。它基于开源和 Python,这是坚持我们核心原则的重要因素。当时,Airflow 缺少 Windows 钩子和运算符,因此我们向社区贡献了 WinRM 钩子和运算符。鉴于其灵活性,我们还使用 DAG 生成器来驱动我们的 DAG 并降低维护成本。
结果如何?
我们拥有非常灵活的部署框架,使我们能够尽可能地灵活。只要我们正确使用该工具,它的可靠性就是我们可以信赖的。可扩展性还使我们能够减少操作服务器机群所需的时间。