RES15-04 灰度部署和升级
原地升级和回滚时,升级和回滚过程中业务将会中断,中断时长受限于升级和回滚的时长,对业务影响比较大;而采用灰度部署和升级,可减少升级和回滚过程中的业务中断,提升系统可用性。
- 风险等级
高
- 关键策略
通过金丝雀部署、蓝绿部署等方式实现灰度升级或部署,逐步引入新版本部署范围或切换用户流量,配合自动回退以降低部署差错导致业务中断的风险。
金丝雀部署(灰度发布)是将少量客户引导到新版本的做法,通常在单个服务实例(Canary)上运行;当检查到任何行为更改或错误时,可以将Canary中的流量删除,并将用户发回到以前的版本。如果部署成功,则可以继续以期望的速度进行部署,同时监控更改以便发现错误,直到所有部署完成。
蓝绿部署与金丝雀部署类似,只是会并行部署一整套应用程序,形成两套生产环境:蓝环境和绿环境,蓝色是当前版本并拥有实时流量,绿色是包含更新代码的环境。当应用程序已经准备就绪,用户可以将所有流量都将路由到绿环境中,当出现问题时,可以快速将流量重新路由回蓝环境,进行故障恢复。
- 相关云服务和工具
- 部署 CodeArts Deploy:提供可视化、自动化部署能力,提供丰富的部署步骤,有助于用户制定标准的部署流程,降低部署成本,提升发布效率。
- 微服务引擎 CSE:支持灰度发布。
- 应用服务网格 ASM:支持灰度发布。