内容提要
Netflix开源了工作流编排器Maestro,支持数十万个工作流和每天200万个作业。Maestro构建在开源技术上,支持ETL管道、机器学习工作流和AB测试管道。
延伸解读
从Meson到Maestro:架构演进的必要性
Netflix原有的Meson编排器采用单领导者架构,随着每日作业量增长,不得不垂直扩展,并接近AWS实例类型上限。同时,工作负载预计每年至少增长100%,工作流规模也在扩大。Maestro从设计之初就采用DAG架构和无状态服务,支持水平扩展,以应对这种持续增长的压力。
Maestro的扩展性与SLO保障机制
Maestro通过DAG架构将每个工作流分解为一系列步骤,步骤间可设置依赖、触发器和条件。每个工作流的业务逻辑在隔离环境中运行,这有助于满足严格的服务水平目标(SLO)。所有服务设计为无状态,可根据需要横向扩展,从而支撑数十万工作流和单日200万作业的规模。
灵活的工作流定义与调用方式
用户可以通过cURL命令行调用Maestro,以JSON格式定义工作流,并管理关联的数据批次。业务逻辑可以打包成Docker镜像、Jupyter笔记本、bash脚本、SQL、Python等多种格式。Maestro不仅支持有向无环图(DAG),还支持循环工作流以及for each循环、子工作流、条件分支等可重用模式。
覆盖多种数据与机器学习场景
Maestro支持广泛的工作流用例,包括ETL管道、机器学习工作流、AB测试管道以及在不同存储之间移动数据的管道。其水平扩展性确保既能管理大量工作流,也能处理单个工作流内的大量作业。这些能力使其成为Netflix数据科学家和分析师日常理解用户行为等大规模数据驱动趋势的基础工具。
Q&A
Maestro是什么?
Maestro是Netflix开源的工作流编排器,支持数十万个工作流和每天200万个作业。
Maestro的主要技术基础是什么?
Maestro基于Git、Java、Gradle和Docker等多种开源技术构建。
Maestro支持哪些工作流用例?
Maestro支持ETL管道、机器学习工作流和AB测试管道等多种工作流用例。
Maestro如何处理工作流的生命周期?
Maestro管理工作流的整个生命周期,包括重试、排队和任务分配。
Maestro与之前的编排器Meson有什么不同?
Maestro设计为高度可扩展,解决了Meson在高负载下的性能瓶颈问题。
Maestro的扩展性如何?
Maestro具有高度可扩展性,能够满足严格的服务水平目标,即使在流量高峰期也能正常运行。