编排引擎和框架?
我正在寻找一个编排框架/引擎/工具包来替换/升级现有软件,主要是因为可扩展性限制。通过编排,我的意思是通用任务和工作流的异步和分布式执行。
更具体地说,要求几乎是这些:
- 在 Java 中包装和执行通用任务(如果依赖于语言)
- 用于任务和工作流按需触发的 API
- 日程安排也会很好
- 支持分布式架构和可扩展性(主要用于大量小任务)
- 持久性和弹性
- 高级工作流配置功能(执行此操作,然后并行执行这 3 个任务,然后执行此任务,具有优先级、依赖关系...
- 监视和管理 UI(或至少 API)
现有系统是一个老式的整体式服务(在Java中),它具有大部分功能,包括执行逻辑本身,它应该尽可能保持不变。
有没有人遇到过类似的问题?在我看来,这应该很常见,如果我必须完全自己实现它,那会很奇怪。我在这里发现了一些问题(比如这个和这个),讨论了编排和编排系统的理论,但不是实现它的工具的真实例子。另外,我认为我们并不是在谈论微服务 - 任务不是冗长和繁重的,它们只是很多,在后台运行执行许多类型的短作业。我不会为每种工作类型创建服务。
在这一点上,我也不是在寻找云和容器服务 - 据我所知,部署是一个不同的问题。
我得到的最接近的是Netflix Conductor引擎,它通过运行一个编排服务器来满足大多数要求,该服务器管理在servlets(或任何语言的任何Web服务-加号)中实现的任务。然而,它似乎主要是为在工作流中安排繁重的任务而构建的,而不是运行大量的小任务,这让我想知道例如在servlet中调用许多小任务的开销是多少。
有没有人对导体或其他工具有经验或任何意见?甚至是我解决问题的整个方法?
编辑:我意识到这是一种“需要研究建议”,所以让我们简单地把它放在3个问题中:
- 我为上述要求寻找编排解决方案是否正确?
- 有没有人有Netflix指挥的经验?对此有任何反馈吗?
- 它有好的竞争对手吗?