记一次阅读灰度发布源码的感想

  最早接触灰度发布是听到公司大佬提到的重大上线必须灰度。当时“灰度”这个专业词语抓住了我的眼球。于是我也开始了对灰度发布的探究。起初的概念只限于部分让部分机器上线最新功能,后面就更深化为用户选取、数据反馈、回滚策略关键的三部。直到昨天无意间看到项目中灰度的部分源码,又瞬间开始深入研究起来。

  灰度要实现的几个关键点有以下几点:1、如何将用户请求导流到灰度环境上。2、如何控制灰度的范围。3、回滚策略是什么。 

  首先如何进行用户导流,网上有说用nginx进行导流,具体我没看到过就不提了。当前我所阅读到源码中是通过一个开关控制所有正式环境下的请求是否应该进入灰度环境。具体技术实现是从注册中心获取开关标识,开启后,则所有请求再进行灰度范围判断。

  灰度的范围判断则是采用redis或其他缓存,存储当前灰度上的用户数量及用户ID。如果超过范围,请求还是在原先的正式环境下进行处理。记一次阅读灰度发布源码的感想_第1张图片

 

   灰度回滚则就直接是git相关的一些应用了,这里就不赘述了。

  具体图片可以参考下图

记一次阅读灰度发布源码的感想_第2张图片

 

你可能感兴趣的:(记一次阅读灰度发布源码的感想)