三角帆能否防止乱序部署?

时间:2018-09-09 14:27:30

标签: spinnaker

当前

当新的PR合并到master中时,我们使用CI平台来构建,测试和发布新代码。 “发布”步骤非常简单/愚蠢,实际上使用新推送的docker映像的标签运行kubectl patch

问题

两个PR大约同时合并时(例如:A,则B-B包含A的提交,反之则不行) ,可能发生B首先完成其构建/测试,然后首先开始其发布步骤的情况。发生这种情况时,A将释放第二个,即使它具有较旧的代码。结果是进入稳定状态,其中B的部署已有效地回滚了A的代码。

我们希望保持CI / CD尽可能连续,理想情况下不使用

  • 序列化我们的CI管道(这样一次只能运行一个工作流程)
  • 延迟/分批部署

大三角帆是否具有解决此问题的功能或最佳做法?

1 个答案:

答案 0 :(得分:0)

针对您问题的最佳做法在“异步系统的消息排序”中进行了广泛描述。最简单的解决方案是为CI / CD管道实现FIFO原则。 这样可以避免实施CI和CD零件之间的检查。