如果管道执行失败,则可以使用回滚将环境恢复到先前稳定的状态。要使用回滚,请计划回滚流并了解如何实施。
回滚流规定了回滚失败部署所需的步骤。该流采用回滚管道的形式,该管道包括一个或多个连续任务,这些任务因执行和失败的部署类型而异。例如,传统应用程序的部署和回滚不同于 容器应用程序的部署和回滚。
要恢复到正常的部署状态,回滚管道通常包括以下任务:
- 清理状态或环境。
- 运行用户指定的脚本以恢复更改。
- 部署以前的部署修订版。
要将回滚添加到现有部署管道,请在运行部署管道之前,将回滚管道连接到部署管道中要回滚的任务或阶段。
如何配置回滚
要在部署中配置回滚,您需要:
- 创建部署管道。
- 确定部署管道中将触发回滚的潜在故障点,以便可以连接回滚管道。例如,可以将回滚管道连接到部署管道中的条件或轮询任务类型,以检查上一任务是否成功完成。有关条件任务的信息,请参见如何在条件任务中使用变量绑定来运行或停止 Code Stream 中的管道。
- 确定将触发回滚管道的故障范围,例如任务或阶段失败。也可以将回滚连接到阶段。
- 确定出现故障时要执行的回滚任务。将创建包含这些任务的回滚管道。
可以手动创建回滚管道,也可以使用 Code Stream 创建。
- 使用空白画布,可以手动创建一个遵循与现有部署管道并行流的回滚管道。然后,将回滚管道连接到部署管道中 出现故障时触发回滚的一个或多个任务。
- 通过智能管道模板,您可以使用回滚操作配置部署管道。然后, Code Stream 会自动创建一个或多个具有预定义任务(用于在失败时回滚部署)的默认回滚管道。
有关如何使用智能管道模板为 CD 管道配置回滚的详细示例,请参见如何在 Code Stream 中回滚部署。
如果我的部署管道有多个任务或阶段具有回滚,会怎样
如果有多个任务和阶段添加了回滚,请注意回滚顺序会有所不同。
如果将回滚添加到... | 回滚执行时间... |
---|---|
并行任务 | 如果其中一个并行任务失败,则所有并行任务完成或失败后回滚该任务。该任务失败后,不立即执行回滚。 |
阶段中的任务和阶段 | 如果任务失败,则运行任务回滚。如果任务属于一组并行任务,则所有并行任务完成或失败后回滚该任务。任务回滚完成或无法完成后,将运行阶段回滚。 |
考虑具有以下阶段或任务的管道:
- 具有回滚的生产阶段。
- 一组并行任务,且每个任务具有自己的回滚。
名为 UPD Deploy US 的任务具有回滚管道 RB_Deploy_US。如果 UPD Deploy US 失败,则回滚将遵循 RB_Deploy_US 管道中定义的流。
如果 UPD Deploy US 失败,则 RB_Deploy_US 管道在 UPD Deploy UK 和 UPD Deploy AU 都完成或失败后运行。UPD Deploy US 失败后,不立即执行回滚。而且,由于生产阶段也具有回滚,因此在 RB_Deploy_US 管道运行后,将运行阶段回滚管道。