写点什么

Netflix 开源下一代数据工作流引擎 Maestro

  • 2024-08-15
    北京
  • 本文字数:1170 字

    阅读完需:约 4 分钟

大小:547.43K时长:03:06
Netflix 开源下一代数据工作流引擎 Maestro

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://youtu.be/kPYPgR0Gzrs

 

原文链接:https://thenewstack.io/netflix-open-sources-maestro-a-next-gen-data-workflow-engine/

2024-08-15 14:4514067

评论

发布
暂无评论
发现更多内容

栈和队列的实现

lovevivi

c 数据结构 10月月更

1024@程序员:图灵社区福利来了,请本人签收

图灵社区

程序员节

决胜 AI 金融新赛道!Python Quants 创始人分享宝贵 AI 算法交易经验

图灵社区

人工智能

Nginx多方面调优策略

乌龟哥哥

10月月更

极客时间 - 运维进阶训练营 - 第一周作业

dog_brother

Docker 镜像 linux namespace

1:安装、连接以及配置-MySQL

Yeats_Liao

数据库 后端 10月月更

2:数据库的基本操作-MySQL

Yeats_Liao

数据库 后端 10月月更

决胜AI金融新赛道!Python Quants 创始人分享宝贵 AI 算法交易经验

图灵教育

人工智能

使用Java实现BMI指数测试

魏铁锤

10月月更

MySQL 中文分词原理

乌龟哥哥

10月月更

3:表的基本操作-MySQL

Yeats_Liao

数据库 后端 10月月更

【web 开发基础】PHP 快速入门(8)-PHP 运算符之逻辑运算符详解

迷彩

逻辑运算符 10月月更 web开发基础 PHP基础

极客时间运维进阶训练营第一周作业

chenmin

谈谈电商系统中的商品模块设计

乌龟哥哥

10月月更

1024@程序员:图灵社区福利来了,请本人签收

图灵教育

程序员节

举三反一,一通百通的“数学脑”是怎样炼成的?

图灵社区

数学

C4D2023取消永久许可?Maya推出精简版?你不能错过的7个CG软件资讯...

Renderbus瑞云渲染农场

CG Renderbus瑞云渲染 渲染软件更新

阿里也没想到14年后“互联网寒冬”这个词还能火

雨果

二叉树的详细实现(含递归展开图)

lovevivi

c 数据结构 10月月更

分享5个可能用得上的JavaScript 库

devpoint

JavaScript i18n

golang中的nil接收器

六月的

golang nil

举三反一,一通百通的“数学脑”是怎样炼成的?

图灵教育

数学 科普

2022-10-23:给你一个整数数组 nums 。如果 nums 的一个子集中, 所有元素的乘积可以表示为一个或多个 互不相同的质数 的乘积,那么我们称它为 好子集 。 比方说,如果 nums =

福大大架构师每日一题

算法 rust 福大大

Java之面向对象

魏铁锤

10月月更

从事数字化转型的你,搞清楚这些数据类基础理念了吗

雨果

数据中台 数据仓库 数据湖

曾国藩正面与侧面2

dfuru

容器和单机容器编排入门与实战

poseidom

,docker Docker 镜像

“程”风破浪的开发者|Web3用合约让利润分配更公平

石云升

区块链 Web3.0 10月月更 “程”风破浪的开发者

类型转化问题

魏铁锤

10月月更

Go 语言入门很简单:Go 使用 Redis

宇宙之一粟

redis Go 语言 10月月更

Netflix 开源下一代数据工作流引擎 Maestro_实时计算_Joab Jackson_InfoQ精选文章