首页/AI/大模型部署与运维速查/灰度发布:按流量比例切分

灰度发布:按流量比例切分

新版本先接一小部分流量:Nginx split_clients 按客户端特征做权重切分,把 10% 流量导向新实例组;指标达标后再逐步放量到全量。

按流量比例切分

新版本先接一小部分流量:网关按客户端特征做权重切分,把一成左右的流量导向新实例组,指标达标之后再逐步放量到全量。灰度期间两组要对照观测,错误率、截断率、延迟分位数与业务抽样质量任何一项不达标,就应该回滚。

基本信息

适用平台自托管推理服务与网关
切分依据按客户端特征做一致性切分
观测指标错误率、截断率、延迟分位、抽样质量
回滚方式把权重调回旧实例组

权重切分(示意)

权重切分(示意)
split_clients "${remote_addr}llm" $llm_pool {
    10%  new_pool;
    *    old_pool;
}

location /v1/ { proxy_pass http://$llm_pool; }

典型使用场景

  • 新版本上线:先接小比例流量验证
  • 逐步放量:从一成提到三成、五成直到全量
  • 量化方案切换:新量化版本先在小流量上验证质量
  • 回滚演练:切换动作要能在分钟级完成
  • 低峰起步:高危变更放在低峰时段开始,给回滚留足时间

观测项与处置

观测项达标标准不达标处置
错误率与旧版本持平或更低立即回滚并保留现场
截断率不高于旧版本检查输出上限与结束原因
延迟分位P95 没有明显恶化先查资源与降频
抽样质量人工抽检无明显退化扩大样本量再判断
灰度期间两组对照观测:错误率、截断率、分位延迟与业务抽样质量,全部达标再放量。
切分要稳定:同一调用方尽量始终落到同一组,避免一个业务在两版本之间来回切换导致体验抖动。
放量节奏写进预案:每档观察多久、看哪些指标、由谁批准,都事先定好。
灰度组的资源要单独留出:新版本接流量时旧版本仍承担大部分请求,容量不能按两组共享来算。
观测窗口要覆盖完整业务周期:只在一个小时里看指标,可能刚好错过每天固定出现的那段高峰。

易错点

  • 灰度不带观测:没有对照数据就无法判断是否该回滚,影响面白白扩大
  • 直接用随机比例分流:同一会话被分到不同版本,输出风格突变会被当成故障
  • 放量节奏临时决定:没有预定的观察窗口,容易在指标还没稳定时就全量
  • 回滚路径没演练:真正要回滚时手忙脚乱,切换耗时远超预期

数据来源与参考

  • Nginx 官方文档:split_clients(nginx.org/en/docs)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌