灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。
CSE支持两种灰度发布策略:
· 按照流量百分比的引流
可以设定引流规则,设置不同占比的流量到特定的服务版本。
· 按照特定请求特征进行的引流
根据请求头的特征设置引流规则,符合某些规则的流量进入特定的服务版本。
以上策略可保证服务的平滑演进。
在CSE中创建灰度发布的前提条件:
以weathermap服务为例,必须先部署应用开发环境,具体可参考之前的帖子:
https://blog.csdn.net/looook/article/details/80182327
https://blog.csdn.net/looook/article/details/80182371
操作步骤
1.进入前台查看“微服务管理 > 服务目录”页面,单击weather服务进入服务详情界面。
在天气预报这个demo中,weather服务的0.0.1版本不包含紫外线预报,0.0.2版本包含紫外线预报。
2.选择“灰度发布”,单击“添加发布规则 ”。
3.在弹框中进行以下操作。
a.“发布规则”选择“自定义”。
b.“规则名称”填写“test”。
c.“版本”选择0.0.2,不选择0.0.1。
d.“参数名”设置为“city”,“规则”设置为“=chengdu”。
说明:
city为fusionweather中定义的请求参数。
e.单击“确定”保存更改。
搜索shenzhen天气:
搜索chengdu天气:
因为现在设置的灰度发布规则为:成都的天气预报请求都下发给weather服务的0.0.2版本。0.0.1版本没有做紫外线功能,0.0.2版本有做紫外线功能,所以当收到city名为chengdu请求时,界面展示紫外线。