业务流程管理 - 评估Activiti作为连续集成编排者



我正在DevOps空间工作,目前支持过于复杂的CI系统。目的是测试&对每一个文物和彼此的工件进行测试,对多个Java工件进行认证。我们有多个Jenkins实例和复杂的自定义工作流程,但是它们具有相同的限制:缺乏资源控制。我们最终得到了一堆纯粹的技术詹金斯(Jenkins)工作来应对这些限制,但它们并不完美,初始工作流太肿了。

在这里,我询问您有关Activiti BPM引擎适用于CI流程的专业知识。

我们有以下当前流程的问题:

  • 云节点可以从一个Jenkins的作业交给另一个。如果工作流在中间终止(例如,在新构建的伪像的功能测试失败),那么我们必须释放这些节点。
  • 作业可以自己消耗多个资源 - 数据库,多个节点的环境等。当工作流完成时,必须释放这些资源

理想情况下,我们应该能够在某些DSL中定义工作流程步骤,并将资源绑定到这些步骤。稍后,在工作流执行期间,工作流引擎可以首先确定何时需要资源,并在此步骤之前(根据资源类型)(根据资源类型)从适当的池/提供商那里要求它们。

完成每个步骤后,工作流引擎将在资源上所说的"垃圾收集"。它可以计算(基于提供的DSL)列表,这些步骤仍然可以从当前状态以及符合这些步骤的资源列表中得出。之后,可以构建列表(当前分配的资源减去未来所需的资源)。该列表将用于垃圾收集。

使用这样的"垃圾收集",我试图避免手动资源生命周期控制的过于复杂的逻辑,该逻辑将嵌入工作流定义中并会膨胀。我想拥有清晰且易于理解(易于支持的)工作流程。

您认为可以通过Activiti或任何其他BPM引擎轻松完成它?

andrev,

这可以以有限的努力来实施。我们已经使用开源BPMS Eclipse Stardust http://www.eclipse.org/stardust/

创建了QA环境的类似工作流程。

最好的问候

Rob

最新更新