指挥大师:一个Netflix开源的通用工作流编排器 Maestro
仓库:Netflix/maestro
背景
通用工作流编排器
,是不是感觉每个字都看得懂,就是连起来不知道是个啥😂?别担心,看完这段文字,一定让你轻松搞定。
想象一下,你是一位指挥家,手下有一支庞大的乐队,而通用工作流编排器就是你手中的指挥棒,它能帮你协调各个乐器的演奏,来共同演绎出一首美妙的交响乐。
具体来说,通用工作流编排器的作用如下:
精细化管理:它像一个超级管家,能帮你把各种琐事(任务)安排得井井有条。确保每个环节按时完成,提高效率。 灵活调度:想象一下,你正在玩一款角色扮演游戏,通用工作流编排器就是你的技能栏。面对不同的怪物(任务),你可以随时调整技能顺序(工作流程),轻松应对各种挑战。 自动化执行:它就像一个智能机器人,你只需编排好程序,它就能自动完成一系列的任务。 实时监控:通用工作流编排器还像一名尽职的监考老师,时刻关注着每个学生的动态(工作任务执行情况)。一旦发现有人作弊(任务出错),它就会立即采取措施,确保整个考试(工作流程)的公平性和准确性。 异常处理:生活中总会遇到一些突发状况,通用工作流编排器就像你的贴心小助手,能帮你快速应对。比如,当电饭锅在做饭时突然故障,它会立即启动其它备用方案(开动煤气灶等),保证做饭任务顺利完成。
通用工作流编排器是一个强大的助手,可以帮你轻松应对各种复杂的场景,提高工作效率,让你有更多时间享受生活!类似的开源免费的产品也很多,包括:Apache Airflow、 Quartz、 Celery、 n8n 等等。
简介
Maestro 是 Netflix 开发的一个通用工作流编排器,为数据平台用户提供了一种完全托管的工作流即服务(WAAS)。它服务于成千上万的用户,包括数据科学家、数据工程师、机器学习工程师、软件工程师、内容制作者和商业分析师,满足他们的各种用例需求。
功能特点
高度可扩展:Maestro 设计用于支持现有的和新的用例,具有很高的可扩展性。 用户友好:提供了增强的易用性,使得最终用户能够更便捷地使用。 严格服务级别目标:即使在流量高峰期间,也能维持严格的服务级别目标(SLO)。 日常任务调度:每天调度数十万个工作流和数百万的任务。
官方技术博文:
使用 Netflix Maestro 大规模编排数据/机器学习工作流程
入门指南
前提条件
需要安装 Git Java 21 Gradle Docker
构建项目
运行 ./gradlew build
来构建项目
运行项目
运行 ./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-dag-test-1.json
获取示例工作流定义
使用以下命令获取示例工作流的定义: curl -X GET 'http://127.0.0.1:8080/api/v3/workflows/sample-dag-test-1/versions/latest'
触发运行示例工作流
使用以下命令触发运行示例工作流: 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"}}'
获取示例工作流实例
使用以下命令获取示例工作流实例: curl -X GET 'http://127.0.0.1:8080/api/v3/workflows/sample-dag-test-1/instances/1/runs/1'
删除示例工作流及其数据
使用以下命令删除示例工作流及其数据: curl --header "user: tester" -X DELETE 'http://127.0.0.1:8080/api/v3/workflows/sample-dag-test-1'
许可证
Maestro 是由 Netflix, Inc. 版权所有,根据 Apache 许可证 2.0 版本许可。