原文:Netflix Conductor : A microservices orchestrator
作者:Viren Baraiya, Vikram Singh 翻译:Daisy 责编:仲培艺
Conductor是Netflix开源的一款微服务编排引擎,托管在GitHub上,使用Apache License 2.0许可。
Conductor是受到Netflix需要运行全球流媒体业务流程的启发,而构建的基于云的微服务编排引擎。
下面是一些流程案例:
- 用来提取内容的Studio合作伙伴集成;
- 基于IMF的内容提取;
- 在Netflix中设置新标题流程;
- 内容提取、编码和部署到CDN。
通常,其中的部分流程会专门使用pub/sub组合直接REST调用,并使用一个数据库来管理状态编排。但随着微服务数量和流程复杂性的增加,如果没有中央协调器,那么获得这些分布式工作流的难度就会加大。
为什么不使用对等编排?
Pub/sub模型适用于一些简单的流程,对等编排很难进行扩展,并且很快就发现了很多问题:
- 流程流被嵌套在多个应用代码内;
- 通常,围绕输入/输出、SLAs等方面存在的紧耦合和假设,导致很难适应不断变化的需求;
- 几乎没有办法系统地回答:“进程完成情况”。
Netflix将Conductor构建为一个编排引擎,可以满足以下需求,在应用中消除样板需求,并提供一个反应流:
- 使用JSON DSL描述的工作流蓝图;
- 跟踪和管理工作流;
- 可以暂停、恢复和重新启动任务;
- 可视化的用户流程界面;
- 可根据需要,同步处理所有执行任务;
- 处理工作流能够扩展到百万级别;
- 可抽离客户端的排队服务;
- 支持HTT