spring cloud 灰色发布
1.灰度发布的定义
灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B 上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。
2.为什么要做灰色发布以及好处
这样做,一是为了用户体验,先让小部分人体验后得到反馈才渐渐去大范围影响;
二是技术上降低风险,在放出小范围后去发现问题解决问题;
再有就是降低讽刺压力,全量上线一款新功能很容易造成访问量突然增大,服务器压力过大的风险。
3.实现思路
3.1.springCloud灰度方案说明
本博客是在Spring cloud架构体系中基于eureka、ribbon实现灰度发布。具体原理如下:
我们知道,在eureka中注册各个服务后,如果一个服务有多个实例,那么默认会走ribbon的软负载均衡来进行分发请求。
我们要完成灰度发布,要做的就是修改ribbon的负载策略(rule),通过一些特定的标识,譬如我们可以选择head