【原创】Spring-Cloud快速入门(三)灰度/AB测试--转载请注明出处

注:相关代码可以查看以下git项目:

框架包:https://gitee.com/zhouzhongzhi/framework-base.git

一、灰度发布介绍

1.什么是灰度测试?

灰度测试,又名AB测试,就是指在同一环境下,根据某种特殊的规则,来实现不同的用户访问到不同的内容的效果。一般可以用于在正式发布前,进行小范围线上测试,或者用于在测试环境中,根据规则来实现一套环境中,可以跑多个版本,却不互相影响的目的。

2.灰度发布的优势

测试有区别于普通的预演环境测试,预演环境可能具有较大的数据量,较好的服务器,但是,预演服务器的环境终究与线上服务器是不完全相同的,例如,线上可能有千万级别的真实数据,但是预演环境可能只有百万级别的脚本写入的虚拟数据。可能线上的服务器有100台,但是预演环境只有10台。而使用灰度发布则是使用线上的服务器进行处理,进行数据库操作时,使用的也是线上数据库,因此可以进行最明确的了解新版本在线上的情况。

除此以外,灰度发布,还可以让正式上线的流程做到完全无感知,平时在服务进行发布时,会因为注册中心的缓存,导致无法及时下线服务,因此还会有请求访问已经停止的服务中,而灰度发布,则可以避免这种情况,可以先将要停止的服务的访问屏蔽,然后再进行服务停止。

二、灰度流程详解

在进行灰度服务选择时,灰度的服务基本规则逻辑是在每个调用方进行处理的,但是具体选择服务所需要的规则的配置数据,则是由前端、配置文件、灰度服务器所连接的数据库,三个地方获取到的。在获取到这些灰度服务的配置,再根据内置的服务规则逻辑来对获取到的注册中心中的服务进行筛选,这样就可以做到灰度测试的效果。

下方的图即为我之前工作的公司中,在前端进行灰度配置的页面:

在这个页面中,可以通过开发1,开发2,client等,来配置不同的请求头信息,通过不同的请求头,就可以在一套服务中,同时对多个版本进行部署测试。当然,这个只是前端配置请求头的效果,在实际引用中,甚至还可以通过后端数据库配置特殊用户信息的方式,来实现灰度的目的。

三、使用SpringCloud进行灰度发布代码开发

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章