maestro

Netflix 出品,大规模工作流编排,搞定复杂数据管道

Maestro 是 Netflix 开源的工作流编排器,用于管理和调度数据管道及机器学习工作流。它解决了大规模工作流编排中常见的依赖复杂、资源利用率低、运维困难等问题。核心能力包括:支持定义复杂的工作流 DAG,自动处理任务依赖和重试;提供灵活的调度策略,支持基于时间和事件的触发;具备高可用架构,能处理大规模任务并发;集成资源管理和监控,帮助团队高效运维。Maestro 旨在替代 Airflow 等传统工具,提供更优的性能和扩展性,尤其适合云原生环境下的数据工程和 ML 流水线场景。

开源 free 基础设施
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 3843
维护状态 活跃
是否开源
定价模式 free

项目数据

分类基础设施
开发团队Netflix
所属国家
定价模式free
价格说明开源项目,基于Apache-2.0许可证,可自由使用和部署,无收费版本。
访问状态
是否开源
开源协议Apache-2.0
主要语言Java
技术栈/模型agentic-workflow,analytics,automation,batch-processing,dag,data-engineering,data-ops,data-orchestrator,data-pipelines,data-science,elt,etl,java,machine-learning,mlops,orchestration,scheduler,workflow,workflow-engine,workflow-orchestration
GitHub 星标★ 3843
30天Star增速
HF 下载量
上线时间2024-04-17 00:00:00
最近更新2026-09-22 00:00:00
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数1

使用教程

难度:进阶 约 20 分钟 部署方式:本地安装 8 步

环境要求

  • JDK 环境(仓库自带 Gradle Wrapper,用 ./gradlew 执行)
  • 本地运行 AWS 模块或 extensions 时需安装 Docker 与 Docker Compose
  • 使用 Kubernetes 支持时需本机 kubectl 可用且已配置 kubeconfig
  • 可选:Python 环境,用于安装 maestro-sdk

安装与启动步骤

  1. 1获取项目源码

    克隆 Netflix/maestro 仓库并进入项目根目录,后续所有 gradlew 命令都要在此目录执行。

    git clone https://github.com/Netflix/maestro.git
    cd maestro
  2. 2本地启动 maestro

    在项目根目录用 Gradle Wrapper 启动服务,默认监听 8080 端口;首次运行会下载依赖,耗时较长。

    ./gradlew bootRun
  3. 3触发示例工作流

    服务起来后用 curl 调用 API 手动启动内置示例 DAG,请求头 user 标识操作者。

    curl --header "user: tester" -X POST 'http://127.0.0.1:8080/api/v3/workflows/sample-dag-test-1/versions/latest/actions/start' -H "Content-Type: application/json" -d '{"initiator": {"type": "manual"}}'
  4. 4启动 AWS 本地依赖

    使用仓库自带 compose 文件拉起 AWS 相关依赖(extensions 场景下为 LocalStack,提供本地 SQS/SNS)。

    docker compose -f maestro-aws/docker-compose.yml up
  5. 5以 aws profile 启动

    加上 spring.profiles.active=aws 参数重新启动服务,使其连接上一步拉起的 AWS 组件。

    ./gradlew bootRun --args='--spring.profiles.active=aws'
  6. 6启动 extensions 服务

    先拉起 LocalStack,再分别启动 maestro-server(8080)与 maestro-extensions(8081,消费 SQS 事件做 foreach 扁平化)。

    docker compose -f maestro-aws/docker-compose.yml up -d
    ./gradlew :maestro-server:bootRun --args='--spring.profiles.active=aws'
    ./gradlew :maestro-extensions:bootRun
  7. 7Kubernetes 支持

    先确保 kubectl 可用,再启动服务,并上传 sample-kubernetes-wf.json 工作流定义后手动启动它。

    ./gradlew bootRun
    curl --header "user: tester" -X POST 'http://127.0.0.1:8080/api/v3/workflows' -H "Content-Type: application/json" -d @maestro-server/src/test/resources/samples/sample-kubernetes-wf.json
    curl --header "user: tester" -X POST 'http://127.0.0.1:8080/api/v3/workflows/sample-kubernetes-wf/versions/latest/actions/start' -H "Content-Type: application/json" -d '{"initiator": {"type": "manual"}}'
  8. 8安装 Python SDK

    如需在 Python 中调用 Maestro,可单独安装官方 SDK 包 maestro-sdk。

    pip install maestro-sdk

关键配置

配置项必填说明示例
spring.profiles.active=aws启用 AWS 模块相关配置,连接 SQS/SNS 等组件aws
user 请求头调用 API 时标识操作用户,README 示例为 testertester
服务端口maestro-server 默认 8080,maestro-extensions 默认 80818080

如何确认成功

服务启动后访问 127.0.0.1:8080 的 API,示例工作流触发成功且无报错即表示运行正常。

常见问题

Q:不用 AWS 组件能直接跑吗?

A:可以。在项目根目录执行 ./gradlew bootRun 即可启动 maestro-server,README 中 AWS 相关步骤仅用于需要 SQS/SNS 的场景。

Q:8080 和 8081 端口分别是什么?

A:maestro-server 监听 8080,承载工作流 API;maestro-extensions 监听 8081,提供 foreach 扁平化视图等扩展 REST API。

Q:为什么需要先启动 LocalStack?

A:maestro-extensions 通过 SQS 订阅 maestro-server 发布的 SNS 事件,本地用 LocalStack 模拟 SQS/SNS,需先拉起才能联通。

Q:maestro-sdk 是服务的一部分吗?

A:不是。pip install maestro-sdk 安装的是 Python 侧 SDK,与服务端运行相互独立,可按需安装。

Q:Kubernetes 场景有什么前置条件?

A:需先配置好 kubernetes configs,保证本机 kubectl 命令可以正常工作,否则相关工作流无法执行。

注意事项

  • 必须在项目根目录执行 ./gradlew 命令,子模块命令要用 :maestro-server、:maestro-extensions 前缀。
  • AWS 场景需同时指定 --spring.profiles.active=aws,否则不会加载对应模块配置。
  • Kubernetes 示例工作流需先 POST 上传定义文件,再调用 actions/start 触发。
  • README 未给出 JDK 版本要求,如构建失败请优先检查本地 Java 环境。

核心亮点

  • 由 Netflix 生产环境验证,具备处理超大规模工作流的能力
  • 支持复杂 DAG 依赖和多种触发策略,灵活性强
  • 提供高可用和资源优化特性,降低运维成本

不足之处

  • 文档相对较少,社区生态仍在建设中
  • 与 Airflow 等成熟工具相比,集成和插件生态有待完善

适用场景

  • 大规模数据管道编排与调度
  • 机器学习训练和推理工作流管理
  • 云原生环境下的任务依赖和重试处理

替代项目

Apache Airflow、Prefect、Dagster

项目介绍

maestro 是自动化工作流领域的开源项目,由 Netflix 开发,2024 年首次发布。

在全站 13,014 个收录项目中,它的 GitHub 星标数(3,843)位列前 30%,在自动化工作流分类中处于中上游。

近 42 天,它的 GitHub 星标从 3,816 增加到 3,843,净增 27。

项目目前处于活跃维护状态,最近一次代码更新于 2026-09-22。基于Apache-2.0许可证,可自由使用和部署,无收费版本。

它主要面向的使用场景是:大规模数据管道编排与调度。同类可对比的替代方案包括 Apache Airflow、Prefect、Dagster。

上一篇:dagster

下一篇:blackdagger

同类项目推荐

n8n 开源

拖拽搭建自动化流程,轻松接入 AI 与 400+ 应用,搞定重复工作。

Fair-code workflow automation platform with native AI capabilities. Combine visual b···

★ 205700 2026-08-10
feishu-docx 开源

让 AI 代理轻松读写飞书文档,双向转换 Markdown

Feishu/Lark Docs、Sheet、Bitable <-> Markdown | AI Agent-friendly knowledge base exp···

★ 261 2026-08-09
robotcode 开源

让 Robot Framework 拥有现代 IDE 体验,调试、补全、运行一气呵成。

Open Source Toolkit for Robot Framework, providing Language Server Protocol support,···

★ 300 2026-08-10
puppeteer 开源

用 JavaScript 轻松操控无头浏览器,搞定自动化测试与网页抓取。

JavaScript API for Chrome and Firefox

★ 95609 2026-08-10