跳到主要内容

灰度发布

CloudBase 云函数支持多版本管理功能,通过灰度发布能力可以调整不同版本间的请求流量比例,实现线上业务的平滑过渡、灰度验证和快速回滚,确保业务发布的稳定性和安全性。

核心概念

版本管理

每个云函数可以发布多个版本,版本是函数在特定时刻的完整快照,包含:

  • 函数代码
  • 配置信息(超时时间、环境变量、内存规格等)
  • 运行时环境

LATEST 版本

云函数始终存在一个 LATEST 版本,代表最新版本。当您上传、更新或部署云函数代码时,都是在修改 LATEST 版本。

流量分配

您可以精确控制不同版本云函数的流量比例,CloudBase 会根据设定的比例自动分发请求流量到对应版本。

一致性保证

CloudBase 使用用户的全局唯一标识来保证请求的一致性:

  • 有用户信息的请求:同一用户的所有请求会始终路由到同一个版本,确保用户体验的一致性
  • 无用户信息的请求:采用随机调度策略进行流量分配
示例说明

假设云函数的 LATEST 版本流量占比 10%,版本 1 占比 90%。如果某个用户被分配到版本 1,则该用户对此云函数的所有后续请求都会路由到版本 1,而不是按概率随机分配。

灰度发布流程

推荐流程

  1. 创建稳定版本:从当前 LATEST 版本发布一个新版本(如版本 1)
  2. 切换流量:将 LATEST 版本流量设置为 0%,新版本流量设置为 100%
  3. 更新代码:在 LATEST 版本中部署新功能代码
  4. 灰度验证:逐步调整 LATEST 版本的流量比例进行灰度验证

操作指南

创建版本

  1. 进入 云函数管理页面
  2. 选择需要进行灰度发布的函数
  3. 在「灰度配置」模块中,点击「发布新版本」

  1. 输入版本描述信息,确认发布

⚠️ 注意:版本发布后,该版本的代码和配置将被锁定,无法再次修改。

配置流量比例

在灰度配置页面中,可以实时调整不同版本的流量分配比例:

⚠️ 注意:流量比例调整后会立即生效,请谨慎操作并及时验证效果。

最佳实践

首次灰度发布

对于从未使用过灰度功能的云函数,推荐按以下步骤操作:

  1. 发布基准版本

    当前状态:只有 LATEST 版本(100% 流量)
    操作:发布版本 1,设置版本 1 流量为 100%
  2. 部署新功能

    当前状态:版本 1(100% 流量),LATEST(0% 流量)
    操作:在 LATEST 版本中部署新功能代码
  3. 开始灰度

    设置流量分配:LATEST(10%),版本 1(90%)
    结果:10% 用户体验新功能,90% 用户使用稳定版本

版本回滚与全量发布

快速回滚

当发现新版本存在问题时,可以快速将流量切回稳定版本:

紧急回滚:将稳定版本流量设置为 100%,问题版本流量设置为 0%

全量发布

当新版本验证通过后,可以进行全量发布:

全量发布:将新版本流量设置为 100%,旧版本流量设置为 0%

灰度策略建议

阶段LATEST 流量稳定版本流量说明
初始验证5%95%小范围验证基本功能
扩大验证20%80%验证性能和稳定性
准备全量50%50%大规模验证
全量发布100%0%完成发布
建议
  • 建议在业务低峰期进行灰度发布操作
  • 密切监控新版本的错误率、响应时间等关键指标
  • 准备好快速回滚方案,确保业务稳定性