Incremental Rollouts with GitLab CI/CD

Incremental Rollouts with GitLab CI/CD

在对应用程序进行更改时,可以将生产更改仅发布到 Kubernetes 吊舱的一部分,作为降低风险的策略. 通过逐步发布生产更改,可以监视错误率或性能下降,并且如果没有问题,则可以更新所有吊舱.

manbetx 客户端打不开支持使用增量卷展到 Kubernetes 生产系统的手动触发和定时卷展. 使用”手动卷展”时,将手动触发每个吊舱的释放,而在”定时卷展”中,默认的暂停时间为 5 分钟,然后按批次进行释放. 也可以在暂停时间到期之前手动触发定时启动.

手动和定时卷展栏自动包含在由控制的项目中,但也可以通过 GitLab CI / CD 在配置文件中配置.

可以使用” 持续交付”方法来实现手动触发的部署,而定时部署不需要干预,并且可以作为” 策略的一部分. 您还可以通过自动部署应用程序的方式将两者结合在一起,除非最终在必要时进行手动干预.

我们创建了示例应用程序来演示这三个选项,您可以将其用作构建自己的示例:

在 GitLab 10.8 中引入 .

可以将 GitLab 配置为通过手动进行增量部署. 手动配置允许对该功能进行更多控制. 增量部署的步骤取决于为部署定义的 Pod 数量,这些 Pod 是在创建 Kubernetes 集群时配置的.

例如,如果您的应用程序有 10 个容器,并且运行了 10%的部署作业,则该应用程序的新实例将被部署到单个容器中,而其余 9 个将显示前一个实例.

然后,我们 :

When the jobs are built, a play button will appear next to the job’s name. Click the play button to release each stage of pods. You can also rollback by running a lower percentage job. Once 100% is reached, you cannot roll back using this method. It is still possible to roll back by redeploying the old version using the Rollback button on the environment page.

一个可用,演示了手动触发的增量部署.

在 GitLab 11.4 中引入 .

定时部署的行为与手动部署的行为相同,不同之处在于,每个作业在部署前都会延迟几分钟. 单击作业将显示倒计时.

可以将此功能与手动增量部署相结合,以便作业倒计时然后部署.

我们可以使用键定义延迟时间:

然后,我们定义每个步骤的推出量

一个可用, 演示了定时部署的配置 .

有时也称为 A / B 部署或红黑色部署,此技术用于减少部署期间的停机时间和风险. 当与增量推出结合使用时,您可以最大程度地减少导致问题的部署的影响.

使用这种技术,有两种部署方式(”蓝色”和”绿色”,但是可以使用任何命名). 在任何给定时间,这些部署中只有一个处于活动状态,除非在增量部署期间.

例如,您的蓝色部署当前可以在生产中处于活动状态,而绿色部署”处于活动状态”可以进行测试,但不能部署到生产中. 如果发现问题,则可以在不影响生产部署的情况下更新绿色部署(当前为蓝色). 如果测试没有问题,则将生产切换到绿色部署,并且蓝色现在可用于测试下一个版本.

此过程减少了停机时间,因为无需停止生产部署即可切换到其他部署. 两种部署都并行运行,并且可以随时切换到.

提供了一个 ,带有一个 CI / CD 配置文件 ,该演示了蓝绿色的部署.