几种灰度发布方案

原文:https://blog.csdn.net/hueason/article/details/81054093

 

一、灰度发布定义

灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B 上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。

二、实现思路方向

1、在代码中做。

一套线上环境,代码中做开关,对于不同的用户走不同的逻辑

2、在接入层做。

多套(隔离的)线上环境,接入层针对不同用户转发到不同的环境中

两种方案的优缺点:

在代码中做
灵活,粒度细;一套代码(环境)运维成本低
灰度逻辑侵入代码
在接入层做
无需(少)侵入代码;风险小
多套线上环境,运维成本高
 

灵活的灰度方案一般需要在接入层实现,具体就是自定义负载均衡策略实现。

下面介绍在接入层使用的方式:

第一是在nginx层实现(使用ngx+lua),第二是在网关层实现(spring-cloud-zuul)。

第三是dubbo的灰度,项目中如果使用dubbo,有可能会需要dubbo服务的灰度实现。

 

负载均衡又可分为服务端负载均衡和客户端负载均衡

服务器端负载均衡:例如Nginx,通过Nginx进行负载均衡,先发送请求,然后通过负载均衡算法,在多个服务器之间选择一个进行访问;即在服务器端再进行负载均衡算法分配。

客户端负载均衡:例如ribbon或者dubbo,客户端会有一个服务器地址列表,在发送请求前通过负载均衡算法选择一个服务器,然后进行访问,这是客户端负载均衡;即在客户端就进行负载均衡算法分配。

 

原文:https://blog.csdn.net/hueason/article/details/81054093

 

 

 

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值