灰度发布听起来很稳,实际经常变成「切了 10%,没人报错,那就全量吧」。

没人报错不等于没问题。可能只是那 10% 里没有新疆用户。

怎么切才有意义

按地区切:先切一个省,观察,再扩。这样出问题时影响面可控。

按运营商切:新版本对某家运营商的线路兼容性差,这种问题只有分组才看得出来。

按用户比例切最省事,但最难定位问题——出问题时你不知道是哪个地区、哪条线路。

每一批测什么

固定同一批节点,新旧版本各测一次。

看三个数:平均 TTFB、状态码分布、最慢节点的耗时。

TTFB 涨了 20% 以上,先别放量。状态码里出现 5xx,立刻回滚。最慢节点明显变差,说明新版本在弱网下有问题。

一个关键点:缓存

新版本第一次上线,缓存是冷的。TTFB 会天然比老版本高。

这时候对比要看第二遍、第三遍的数据,别拿冷缓存的结果下结论。

别只看平均值

平均值掩盖长尾。新版本可能 95% 的请求更快,5% 的请求慢十倍,平均下来还是「变快了」。

看 90 分位和最慢节点,才能发现这种问题。

回滚也要测

decision 回滚之后,确认流量真的回到旧版本,而不是一半新一半旧。

用测速看响应特征(比如某个 header、某个版本号),比看部署平台的状态更直接。

落地

每一批发布后自动跑一次 网站测速,把结果贴进发布记录。放量决策有数据支撑,复盘也有依据。