2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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

评论

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

Play with Go

Rayjun

教程 Go 语言

第十一周总结

还有人搞不懂数据仓库与数据库的区别?

大数据技术指南

数据仓库 4月日更

因为这几个TypeScript代码的坏习惯,同事被罚了500块

华为云开发者联盟

typescript 运算符 代码 null strict

MySQL 索引概要

大海

MySQL 索引

LitmusChaos: K8s上的混沌工程框架

混沌工程实践

k8s 混沌工程 litmuschaos 实践框架 故障实验库

Go Functions

escray

学习 极客时间 Go 语言 4月日更

边缘计算是流行词还是风口?开发者怎样选开源项目?

华为云开发者联盟

开源 开发者 5G 边缘计算 EdgeGallery 社区

external-provisioner源码分析(2)-main方法与Leader选举分析

良凯尔

Kubernetes 源码分析 Ceph CSI

kubernetes ceph-csi分析-目录导航

良凯尔

Kubernetes 源码分析 Ceph CSI Kubernetes Plugin

技术实践丨列存表并发更新时的锁等待问题原理

华为云开发者联盟

事务 update 元组 列存表

架构实战营 模块二作业

fazinter

架构实战营

2021互联网大厂高频面试专题500道:并发编程/Spring/MyBatis(附答案解析)

比伯

Java 编程 架构 程序人生 计算机

模块二作业

求索

架构实战营

python 函数详解

若尘

函数编程 函数

安卓内存监控悬浮窗,2021Android面试心得,全套教学资料

欢喜学安卓

android 程序员 面试 移动开发

数据脱敏:数仓安全隐私保护见真招儿

华为云开发者联盟

数据仓库 加密 隐私保护 GaussDB(DWS) 数据脱敏

基于crudapi增删改查接口后端Java SDK二次开发之环境搭建(一)

crudapi

Java API sdk crud crudapi

MySQL存储过程的异常处理

Sakura

4月日更

阿里P8重磅总结:看完别说不会了哦,SpringBoot「完结篇」

比伯

Java 编程 程序人生 计算机 架构】

external-provisioner源码分析(3)-组件启动参数分析

良凯尔

Kubernetes 源码分析 Ceph CSI

这才是大数据的正确打开方式

华为云开发者联盟

大数据 数据仓库 云原生 数据治理 灾备

第 0 期架构训练营模块 2 作业

架构实战营

安卓rxjava合并多个请求,我的阿里手淘面试经历分享,面试必会

欢喜学安卓

android 程序员 面试 移动开发

external-provisioner源码分析(1)-主体处理逻辑分析

良凯尔

Kubernetes 源码分析 Ceph CSI

Spring Bean创建过程的Hook

邱学喆

BeanPostProcessor @Autowired注入原理 @Resource注入原理 @Value注入原理

架构师实战营 模块二作业(微信朋友圈高性能复杂度架构分析)

代廉洁

架构实战营

Golang Map 和字符串

escray

学习 极客时间 Go 语言 4月日更

架構實戰營 - 模塊 2 作業

Frank Yang

架构实战营

架构实战营模块二作业

日照时间长

架构实战营

k8s通过ceph-csi接入存储的概要分析

良凯尔

Kubernetes 源码分析 Ceph CSI

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