灰度发布
云托管服务修改代码并发布新版本时,可以选择自动灰度或手工灰度。灰度发布用于在新版本上线过程中逐步切换流量,降低一次性全量发布带来的风险。
发布模式
云托管支持以下发布模式:
- 自动灰度:适合风险较低、希望发布完成后直接使用最新版本的场景。
- 手工灰度:适合需要逐步验证新版本,或需要面向特定用户、请求规则进行验证的场景。
无论选择哪种模式,灰度流程都只会在新版本成功创建后继续。如果新版本创建失败,系统不会启动灰度流程,线上流量仍然保持在旧版本上。
自动灰度
选择自动灰度后,系统会在新版本发布完成后,自动将服务流量切换到最新版本。
自动灰度适合以下场景:
- 新版本改动较小,已在测试环境完成验证。
- 希望减少人工配置流量的操作成本。
- 发布完成后可以直接让所有线上请求访问最新版本。
自动灰度完成后,旧版本不再承接线上流量。如需回退,请在服务版本管理中重新调整版本或重新发布。
手工灰度
选择手工灰度后,新版本创建成功后不会自动接管全部线上流量。您需要自行配置灰度方案,将部分请求切换到新版本进行验证。
手工灰度支持以下配置方式:
- 按百分比流量灰度:将指定比例的请求随机分配到新版本,例如 先切换 10% 流量,验证稳定后逐步提升到 50%、100%。
- 按特定规则灰度:通过 URL 参数等规则将符合条件的请求路由到新版本,例如仅让测试用户、指定渠道或带有特定参数的请求访问新版本。
具体流量配置方式可参考 流量配置说明。
完成或取消灰度
手工灰度不是一个长期运行状态。完成验证后,需要明确结束本次灰度流程:
- 完成灰度并使用最新版本:当新版本验证通过后,将流量全部切换到最新版本,并结束灰度流程。
- 取消灰度并使用旧版本:当新版本验证不符合预期时,取消本次灰度,继续使用旧版本承接线上流量。
在完成或取消灰度前,建议持续观察新版本的日志、监控指标和业务请求结果,确认服务状态符合预期。
失败保护
如果新版本在创建、构建或启动过程中失败,系统不会进入灰度流程,也不会自动修改当前线上流量配置。旧版本会继续承接线上请求。
此时可以先查看构建日志、服务日志和版本状态,修复问题后重新发布新版本。