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