首页 > 图灵资讯 > java面试题>正文
10分钟带你了解灰度发布
2024-03-15 13:22:32
灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。
全量发布
- 回滚周期长
- BUG导致服务集群雪崩
- 服务可用性差,影响用户体验
灰度发布
- 降低发布影响面,提升用户体验
- 可以做到不停机迁移
- 回滚速度快
发布方案对比图
策略 |
零停机 |
生产流量测试 |
针对特定用户 |
机器资源成本 |
回滚时长 |
负面影响 |
实现复杂度 |
全量发布 |
× |
× |
× |
低 |
慢 |
高 |
低 |
蓝绿发布 |
√ |
× |
× |
高(双倍) |
快 |
中 |
中 |
金丝雀发布 |
√ |
√ |
√ |
中(按需) |
快 |
低 |
中 |
全链路灰度 |
√ |
√ |
√ |
中(按需) |
快 |
低 |
高 |
金丝雀发布
据说以前有个典故,矿工开矿前,会先放一只金丝雀下去,看金丝雀是否能活下来,用来探测是否有毒气,金丝雀发布也是由此得名。
灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度,而我们平常所说的金丝雀部署也就是灰度发布的一种方式。
全链路灰度发布
全链路灰度治理策略主要专注于整个调用链,它不关心链路上经过具体哪些微服务,流量控制视角从服务转移至请求链路上,仅需要少量的治理规则即可构建出从网关到整个后端服务的多个流量隔离环境,有效保证了多个亲密关系的服务顺利安全发布以及服务多版本并行开发,进一步促进业务的快速发展。