这个问题,笔者推荐发布编排,笔者所在的企业已经实现,流程图如下。
举个例子,有abcdef六个系统,a发完才能发bc,bc发完才能发d,d发完以后ef可以并行发布,有两种方式可以。
第一种,自动控制,适用于无人值守,填写发布计划的时候,对每个发布的系统进行逻辑校验,相关依赖的系统进行状态校验,如果校验通过,触发执行步骤。
第二种,人为控制,适用于通用的发布活动,每次发布之前去人为校验发布过程,如果校验通过,触发执行步骤。
无论自动控制还是人为控制,都要具备异常状态的处理,比如跳过,终止,回滚,如果问题不影响,依赖不太重要,可以跳过,如果问题影响较大,但是有时间进行代码修改,可以终止,等待条件具备后继续发布,如果问题很大,必须对已发布的系统进行批量回滚。