Netflix 开源下一代数据工作流引擎: Maestro
导读:Maestro 是为 Netflix 的数据科学家和业务线经理提供工作流即服务的产品,近日,它隆重地开源了。
视频和游戏流媒体服务巨头 Netflix 已将工作流编排器作为开源产品发布。
据称,这家公司的数据科学家和分析师大军每天都会使用它来了解用户行为和其他大规模数据驱动的趋势。
Maestro工作流编排器采用Apache 2.0 许可发布,其目标在支持数十万个工作流,并且已经为该媒体公司在一天内完成多达 200 万个作业。
Maestro 的技术原理
据研发工程师介绍,它具有高度的可扩展性和可扩展性,即使在流量高峰期间也能够满足严格的服务水平目标(SLO )。
它建立在一系列开源技术之上,即Git、Java (21)、Gradle和Docker。
Maestro 可以通过cURL 命令行调用,它提供了创建、运行和删除工作流以及相关一批数据的功能。工作流以JSON定义,用户的业务逻辑可以打包成 Docker 镜像、Jupyter notebook、bash 脚本、SQL、Python以及其他格式。
在幕后,Maestro 管理工作流程的整个生命周期,处理重试、排队和任务分配到计算引擎。它不仅支持有向无环图(DAG) — 这是2024 年人工智能驱动世界中的赌注 ,它还支持循环工作流程和多个可重复使用的模式,包括每个循环、子工作流程和条件分支。
“它支持广泛的工作流用例,包括 ETL 管道、ML 工作流、AB 测试管道、在不同存储之间移动数据的管道,”Netflix 的一组工程师在最近的博客文章中写道。“Maestro 的水平可扩展性确保它既可以管理大量工作流,也可以管理单个工作流中的大量作业。”
“大师”的诞生
Netflix 对开源并不陌生,它本身已经发布了许多内部开发的开源工具。
系统压力测试工具Chaos Monkey于 2011 年发布,并启发了整整一代混沌测试工具的诞生。Netflix 剥离的其他开源项目包括路由网关Zuul和微服务路由引擎Conductor,后者现在已经弃用。
Netflix 于 2022 年在一篇解释起源的博客中首次向全世界介绍了 Maestro 。当时使用的编排器名为 Meson,它承受着每天数千个作业的工作负载,尤其是在高峰使用时段。
“Meson 基于具有高可用性的单领导者架构。随着使用量的增加,我们不得不垂直扩展系统以跟上步伐,并且已经接近 AWS 实例类型的限制,”Netflix工程师在 2022 年的帖子中写道。
更糟糕的是,工作量预计每年至少增加 100%,工作流程的规模也预计成倍增加。
因此从一开始,Maestro 就被设计为高度可扩展与可扩展的。
它建立在 DAG 架构上,其中每个工作流都由一系列步骤组成。每个步骤都可以有依赖项、触发器和其他条件。
每个工作流的业务逻辑都是独立运行的,以确保满足 SLO。所有的服务都设计为无状态的,因此可以根据业务需要进行良好之扩展。
作者:洛逸
参考:
https://github.com/Netflix/maestro
相关阅读:
微信扫码关注该文公众号作者