灰度发布
CloudBase 云函数支持多版本管理功能,通过灰度发布能力可以调整不同版本间的请求流量比例,实现线上业务的平滑过渡、灰度验证和快速回滚,确保业务发布的稳定性和安全性。
核心概念
版本管理
每个云函数可以发布多个版本,版本是函数在特定时刻的完整快照,包含:
- 函数代码
- 配置信息(超时时间、环境变量、内存规格等)
- 运行时环境
LATEST 版本
云函数始终存在一个 LATEST
版本,代表最新版本。当您上传、更新或部署云函数代码时,都是在修改 LATEST
版本。
流量分配
您可以精确控制不同版本云函数的流量比例,CloudBase 会根据设定的比例自动分发请求流量到对应版本。
一致性保证
CloudBase 使用用户的全局唯一标识来保证请求的一致性:
- 有用户信息的请求:同一用户的所有请求会始终路由到同一个版本,确保用户体验的一致性
- 无用户信息的请求:采用随机调度策略进行流量分配
示例说明
假设云函数的 LATEST
版本流量占比 10%,版本 1 占比 90%。如果某个用户被分配到版本 1,则该用户对此云函数的所有后续请求都会路由到版本 1,而不是按概率随机分配。
灰度发布流程
推荐流程
- 标准灰度流程
- 实际操作示例
- 创建稳定版本:从当前
LATEST
版本发布一个新版本(如版本 1) - 切换流量:将
LATEST
版本流量设置为 0%,新版本流量设置为 100% - 更新代码:在
LATEST
版本中部署新功能代码 - 灰度验证:逐步调整
LATEST
版本的流量比例进行灰度验证
- 发布版本 1(保存当前稳定代码)
- 设置版本 1 流量为 100%,
LATEST
流量为 0% - 在
LATEST
版本中部署新功能代码 - 设置
LATEST
流量为 10%,版本 1 流量为 90%,开始灰度验证 - 根据验证结果调整流量比例或进行回滚
操作指南
创建版本
- 进入 云函数管理页面
- 选择需要进行灰度发布的函数
- 在「灰度配置」模块中,点击「发布新版本」
- 输入版本描述信息,确认发布
⚠️ 注意:版本发布后,该版本的代码和配置将被锁定,无法再次修改。
配置流量比例
在灰度配置页面中,可以实时调整不同版本的流量分配比例:
⚠️ 注意:流量比例调整后会立即生效,请谨慎操作并及时验证效果。
最佳实践
首次灰度发布
对于从未使用过灰度功能的云函数,推荐按以下步骤操作:
发布基准版本
当前状态:只有 LATEST 版本(100% 流量)
操作:发布版本 1,设置版本 1 流量为 100%部署新功能
当前状态:版本 1(100% 流量),LATEST(0% 流量)
操作:在 LATEST 版本中部署新功能代码开始灰度
设置流量分配:LATEST(10%),版本 1(90%)
结果:10% 用户体验新功能,90% 用户使用稳定版本
版本回滚与全量发布
快速回滚
当发现新版本存在问题时,可以快速将流量切回稳定版本:
紧急回滚:将稳定版本流量设置为 100%,问题版本流量设置为 0%
全量发布
当新版本验证通过后,可以进行全量发布:
全量发布:将新版本流量设置为 100%,旧版本流量设置为 0%
灰度策略建议
阶段 | LATEST 流量 | 稳定版本流量 | 说明 |
---|---|---|---|
初始验证 | 5% | 95% | 小范围验证基本功能 |
扩大验证 | 20% | 80% | 验证性能和稳定性 |
准备全量 | 50% | 50% | 大规模验证 |
全量发布 | 100% | 0% | 完成发布 |
建议
- 建议在业务低峰期进行灰度发布操作
- 密切监控新版本的错误率、响应时间等关键指标
- 准备好快速回滚方案,确保业务稳定性