AI 新版本直接全量上线,等于拿全部用户赌一把;完全不发,又永远不知道真实表现。灰度流量是这两者之间的稳妥走法:先让百分之一的用户用上新版本,数据没问题逐步放大,出状况立刻缩回,风险始终被锁在小范围内。
按比例分流的逻辑
原理一句话:入口处按比例把请求分成两路,小部分去新版本,大部分留在旧版本。关键是「按人分流」而非「按次分流」——同一位用户这回走新版下回走旧版,体验不一致,数据也被搅浑。按用户标识做稳定分组,每个人固定走同一路,就像超市新结账通道先只对会员开放,试运行稳了再对所有人开放。
比例是怎么定出来的
常见的节奏是阶梯放大:先百分之一观察半天,没问题到百分之十,再冲百分之五十,最后全量。每一步停多久,看指标恢复正常的速度。比例并非拍脑袋定的——放大前的判断依据是当前小比例下的错误率、延迟和业务数据是否与旧版本持平。如果连百分之一都撑不住,就不用谈下一步了。
阶梯类比失效的地方要说清:放大的不是难度而是风险敞口,比例乘以十,出问题的波及面也乘以十,所以每级放大前都要重新过一遍指标,不能因为上一级平稳就跳级。
在哪一层实现分流
实现位置有几种:网关层按规则转发,适合服务级切换;应用层内置开关,适合功能级试验;客户端分版本下发,适合 App 场景。位置越靠前,覆盖面越大、控制越粗;越靠后,颗粒越细、改动越多。分流比例还要和资源对上——新版本多接一分流量就多占一份算力,资源余量够不够,结合GPU 利用率的读数来判断。
三种实现位置的覆盖范围与改动量,差别集中在这几行。
| 实现位置 | 分流手段 | 覆盖与颗粒 | 适合的场景 |
|---|---|---|---|
| 网关层 | 按规则转发请求 | 最靠前:覆盖面大、控制粗 | 服务级切换 |
| 应用层 | 内置开关 | 居中:比网关细、比客户端粗 | 功能级试验 |
| 客户端 | 分版本下发 | 最靠后:颗粒最细、改动最多 | App 场景 |
分流与回滚是一对搭档:比例缩到零就是回滚,动作和通道完全复用,流程拆解见版本回滚。分流规则涉及谁能进来的判断时,常和网关的访问控制放在一起配置,机制见网关的鉴权;分流策略配置里若带凭证信息,保管方式参考密钥加密存储。腾讯元宝这类多模型产品切换模型版本时,同样走小比例验证的路子;讯飞星火的接口升级公告里,也常建议接入方按此节奏放量。
观察期里看什么
灰度并非挂上就不管,观察期有固定动作:技术指标看错误率、延迟分位数有没有劣化;业务指标看完成率、留存这类长期数字有没有波动;用户体验类反馈单独归档,量大就提前收缩。数据好看也不建议跳级放大,按节奏走完每一级。成本侧的账别忘了:新旧版本单价不同、资源占用不同,放大到一半时把账对一遍,口径怎么定见成本分摊的口径。
灰度比例和 A/B 对比看起来像兄弟,分工却有区别:灰度以控风险为主,比例通常偏向小,新版本占一成以内很常见;A/B 以比效果为主,两组比例尽量对半,让统计有足够的力量。同一个入口机制能同时支撑两件事,但指标和判断标准要分开建,混在一起容易既没控住风险,也没比出结论。
灰度流量速查表
- 一句话原理:小比例先行、阶梯放大、随时缩回
- 分流要点:按用户稳定分组,不按请求随机
- 观察三看:技术指标、业务数据、用户反馈
- 与回滚的关系:比例缩到零即回滚,通道复用
记住这句:灰度买的不是慢,是每一步都踩在数据上,放大才有底气。
关于灰度流量的三个常问问题
- 比例放大的节奏有固定标准吗?:没有统一答案,风险高的变更每级停留更久,常规迭代可以加快,核心是每级都有数据支撑。
- 内部员工先试用算灰度吗?:算一种,但它覆盖不了真实用户的多样性,只能当冒烟测试,不能替代按比例灰度。
- 只有一个实例的小服务能做灰度吗?:能,起一个新实例跑小比例流量即可,规模小不代表流程可以省。


