Maestro 为 Netflix 的数据科学家与需要大量信息的的业务线经理提供了工作流即服务。
视频和游戏流媒体服务 Netflix 已将自己的工作流编排器开源发布,这家公司的数据科学家和分析师大军每天都会使用它来了解用户行为和其他大规模数据驱动趋势。
这款名为 Maestro 的工作流编排器基于 Apache 2.0 许可证发布。它设计为支持数十万个工作流,并且在 Netflix 已经实现了单日多达 200 万个作业的输出。
Maestro 的工作原理
据 Netflix 工程师介绍,这款编排器具备高度可扩展性和可缩放能力,即使在流量高峰期间也能满足严格的服务级别目标 (SLO)。
Maestro 工作流程图。
它构建于一系列开源技术之上,包括 Git、Java(21)、Gradle 和 Docker。
Maestro 可以从 cURL 命令行调用,提供了创建、运行和删除工作流和相关数据批的能力。工作流以 JSON 定义,用户的业务逻辑可以打包成 Docker 镜像、Jupyter 笔记本、bash 脚本、SQL、Python 和其他格式。
Maestro 在后台管理工作流的整个生命周期,处理重试、排队需求并给计算引擎分配任务。它不仅支持有向无环图(DAG)——2024 年人工智能驱动浪潮中的热门技术——还支持循环工作流和多个可重用模式,包括 for each 循环、子工作流和条件分支。
“它支持众多工作流用例,包括 ETL 管道、ML 工作流、AB 测试管道、在不同存储之间移动数据的管道,”Netflix 的一组工程师在最近宣布发布的博客文章中写道。“Maestro 的水平可缩放性确保它可以管理大量工作流和单个工作流中的大量作业。”
Maestro 的诞生
Netflix 早已入局开源领域,它已经发布了许多内部开发的开源工具。系统压力测试工具 Chaos Monkey 于 2011 年发布,催生了整整一代混沌测试工具。Netflix 剥离的其他开源项目包括路由网关 Zuul 和微服务路由引擎 Conductor,后者现已弃用。
Netflix 于 2022 年在一篇解释其起源的博客文章中首次向全世界介绍了 Maestro。当时他们使用的编排器 Meson 在数千个日常作业的负载下不堪重负,尤其是在高峰使用时间更是如此。
“Meson 基于一个具有高可用性的单一领导者架构。随着使用量的增加,我们不得不垂直扩展系统来满足需求,并且正在接近 AWS 实例类型的限制,”工程师在 2022 年的帖子中写道。
更糟糕的是,那时他们预计负载每年至少增加 100%,工作流的规模也预计会增加。
从一开始,Maestro 就被设计为高度可扩展和可缩放的。它建立在 DAG 架构上,其中每个工作流都由一系列步骤组成。每个步骤都可以有依赖项、触发器和其他条件。每个工作流的业务逻辑都是独立运行的,保证满足 SLO。所有服务都设计为无状态的,因此可以根据需要来缩放。
在 Amazon Web Services 2023 年 Re:Invent 大会上,Netflix 工程团队进一步详细介绍了 Maestro:
原文链接:https://thenewstack.io/netflix-open-sources-maestro-a-next-gen-data-workflow-engine/
评论