外观
一句话答案
灰度发布按用户/流量比例逐步切换新版本,实现方式:网关路由(header/IP)、Istio 权重分流、用户标签。
核心要点
实现方式:
- 网关路由:按 header/cookie/IP 路由到新版本
- 权重分流:Nginx/Istio 按百分比分流
- 用户标签:特定用户群先灰度
K8s 实现: 两个 Deployment + Istio VirtualService 按权重分流
追问与易错
追问方向:
- 灰度出 bug 怎么回滚?
- 全链路灰度怎么做?
- A/B 测试和灰度区别?
易错点:
- ❌ 灰度就是按比例分流——还可以按用户标签
- ❌ 灰度只看错误率——还要看性能和业务指标
💡 记忆锚点
灰度发布像新药临床试验:先给一小批志愿者用(按用户标签/IP/header路由到新版本),观察有没有副作用(监控错误率和性能),没问题再扩大范围(Istio权重从5%逐步调到100%),出问题随时叫停回滚。不是只看错误率,业务指标和性能都要盯。