写点什么

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:4513793

评论

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

使用Golang上传文件到MinIO对象存储(一)

liuzhen007

8月日更

你的孩子爱读书吗

箭上有毒

8月日更

Django QuerySet 就学那么一点点,一点点就够了

梦想橡皮擦

8月日更

【设计模式】迭代器模式

Andy阿辉

C# 后端 设计模式 8月日更

低耦合、高内聚?

escray

学习 极客时间 如何落地业务建模 8月日更

终于有人把操作系统、网络系统、线程进程、IO模型全部总结出来了

Java~~~

Java 架构 面试 TCP 网络

【前端 · 面试 】JavaScript 之你不一定会的基础题(二)

编程三昧

JavaScript 面试 大前端 事件 8月日更

面向用户的产品进度汇报会

boshi

项目管理 客户

在线IP地址查询工具

入门小站

工具

Java 项目还需要 joda 吗

HoneyMoose

oeasy教您玩转vim - 16 - # 行内贴靠

o

Web框架Gin | Gin 路由

xcbeyond

Go 语言 路由 gin 8月日更

360搜索宣布下线“明星人气排行榜”:饭圈文化不是洪水猛兽

石头IT视角

SQL的执行计划-->explain

卢卡多多

sql 8月日更

聊聊Java数据类型的那些事

Bob

Java 后端 8月日更

与外部系统的读写交互(八)

Databri_AI

flink kafka Cassandra

Java实现基于朴素贝叶斯的情感词分析

码农参上

Java 贝叶斯公式 文本情感分析 8月日更

摸鱼小技巧之IDEA调试篇一

4ye

Java debug 后端 IDEA 8月日更

B 端产品经理如何快速成长?

蒋川

数据产品经理 b端产品经理

架构实战营毕业总结

Vic

架构实战营

腾讯三面落马+拒网易、CVTE后,字节四面成功拿下offer

编程菌

Java 编程 程序员 面试 计算机

ReentrantLock 中的 4 个坑!

王磊

Java 并发 lock 8月日更

网络攻防学习笔记 Day104

穿过生命散发芬芳

态势感知 网络攻防 8月日更

Linux之telnet命令

入门小站

Linux

「让我们一起Golang」怎样出让协程资源和设置可用CPU核心数

Regan Yue

高并发 协程 Go 语言 8月日更

手撸二叉树之二叉树的中序遍历

HelloWorld杰少

数据结构与算法 8月日更

架构实战营毕设

Vic

架构实战营

在科技圈流行的冥想,为什么没有全民推广?

脑极体

飞书 + Lua 实现企业级组织架构登录认证

K8sCat

lua openresty 网关 飞书 组织架构

ISO-8601 如何解读

HoneyMoose

【Flutter 专题】67 图解基本约束 Box (二)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

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