阿里云代理商-阿里云服务器-阿里云数据库-重庆典名科技

微服务灰度发布实战经验及解决方案

发布时间: 2020-10-04 13:48:48文章作者: 网站编辑阅读量: 948
  什么是灰度?微服务灰度发布实战经验及解决方案
  
  灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。
  
  灰度期:灰度发布开始到结束期间的这一段时间,称为灰度期。
  
  它的作用
  
  渐近式地测试和发布新功能,或者验证产品的问题,它可以保证整体系统的稳定,在初始灰度的时候可以发现、调整问题,影响范围可控。
  
  及早获得用户的意见反馈,完善产品功能,提升产品质量 让用户参与产品测试,加强与用户互动 降低产品升级所影响的用户范围。
  

  对于一般的小系统并不需要单独的灰度发布引擎,可以参考A/B测试中做法,在页面JavaScript或服务器端实现分流的规则即可。但对于大型的互联网应用而言,单独的用于管理用户分流的发布引擎就很有必要了。

灰度发布

微服务灰度发布实战经验及解决方案15

灰度核心要素

微服务灰度发布实战经验及解决方案14

  主流发布方案
  
  1、蓝绿发布
  
  存在AB两个集群,先将A集群从负载均衡中摘除,进行新版本的部署。B集群仍然继续提供服务。A集群升级完毕,重新接入负载均衡,再把B集群从负载均衡,再把B集群从负载均衡中摘除,进行新版本的部署,A集群重新提供服务。最后B集群都已经升级完成,并且都对外提供服务。
  
  特点:发布策略简单、回滚速度快、需要两套物理环境,有一定资源成本。
  
  2、滚动发布
  
  滚动发布一般取出一个或多个应用实例停止服务,执行更新,并重新将其投入使用。周而复始,直到集群中所有的实例都更新成新版本。
  
  特点
  
  发布策略复杂、只需一套环境,节约资源、无确定OK的环境,不易回滚。
  
  3、灰度发布
  
  灰度发布是指在黑白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上而来。
  
  特点:切换新旧并存版本之间的理由权重、整体系统的稳定性有保障、问题影响范围可控。

  灰度典型使用场景
  
  通常发布一个新版本可以概括为两种倩况
  
  》 功能性发布,此种发布会直接影响终端用户的操作行为、产品使用体验等
  
  》 非功能性发布,如修复系统 BUG 、提高系统稳定性、提升系统交互速度等

  灰度发布在以上两种倩况下都是非常重要的,对于第一种,如在互联网场景下,产品功能迭代速度快,我们需要及早获得用户的意见反馈,让用户参与产品测试,加强与用户互动,同时降低产品升级所影响的用户范围

微服务灰度发布实战经验及解决方案13

  灰度典型使用场景
  
  当应用上线前,无论进行了多么完善的测试,都无法保证线下测试时发现所有潜在故障。在无法百分百避免版本升级故障的情况下,需要通过一种方式进行可控的版本发布,把故障影响控制在可以接受的范围内,并支持快速回退。

微服务灰度发布实战经验及解决方案12

安全生产(可灰度)

微服务灰度发布实战经验及解决方案11

灰度平台设计实践

微服务灰度发布实战经验及解决方案10

微服务灰度发布实战经验及解决方案9

微服务灰度发布实战经验及解决方案8

  由此可见.实现灰度发布,需要一整套系统和流程的支沛但灰度发布禽要的一些能力是通用的,企业也可以借助其他平台.减少自身的研发运维成本。

微服务灰度发布实战经验及解决方案7

微服务灰度发布实战经验及解决方案6

  灰度策略
  
  EDAS支持两种灰度策略
  
  >按流繼比例灰度
  
  >按清求内容灰度
  
  Spring Cloud :包含Cookie、Header和Param

微服务灰度发布实战经验及解决方案5

微服务灰度发布实战经验及解决方案4

微服务灰度发布实战经验及解决方案3

微服务灰度发布实战经验及解决方案2

微服务灰度发布实战经验及解决方案1

微服务灰度发布实战经验及解决方案


联系客服免费领取更多阿里云产品新购、续费升级折扣,叠加官网活动折上折更优惠