灰度发布实践
最近更新时间: 2024-10-17 17:10:00
当用户需要上线新的功能时,希望使用灰度发布的手段在小范围内进行新版本发布测试。 TSF 支持通过部署组和服务路由来实现灰度发布。
场景说明
consumer 调用 provider 时,provider 有两个版本 v1 和 v2-beta,其中 v2-beta 是测试版本。consumer 首先将90%的请求分配给 provider v1 版本,剩下的10%分配给 v2-beta 版本。如果发现 v2-beta 版本运行正常,则增加该版本的流量比例。
前提条件
已经下载基于 TSF Spring Cloud SDK 或者 Mesh 编写的代码程序包。
已经创建了集群和命名空间,集群中导入2个云服务器。
已经创建了 consumer 和 provider 应用(虚拟机部署方式),同时已经创建并部署了 consumer 部署组。
操作步骤
一、provider 创建2个部署组
登录 TSF 控制台。
在左侧导航栏中,单击【应用管理】,进入应用列表页,选择 provider 应用,进入应用详情页。
单击顶部【程序包管理】,上传 v1 和 v2-beta 的程序包。
单击顶部【部署组】,在部署组列表页面创建两个部署组:
部署组 provider-group-1,添加1个实例,实例规格为1核1GB。
部署组 provider-group-2,添加1个实例,实例规格为1核1GB。
provider-group-1 部署程序包 v1。
provider-group-2 部署程序包 v2-beta。
二、配置服务路由规则及初始路由权重 90:10
在左侧导航栏中,单击【服务治理】,进入服务列表页,单击 provider 服务,进入服务详情页。
单击顶部【服务路由】, 新建路由规则,流量来源为
主调服务名等于consumer-demo
,流量目的地如下图所示,设置 provider-group-1的权重为90,provider-group-2 的权重为10。在服务路由规则列表中,单击生效状态列的图标启动该规则,稍等几分钟,刷新页面观察列表下方流量比例变化情况,如果发现 provider-group-1 和 provider-group-2 的流量比例接近 90:10,说明路由规则生效。
三、修改路由权重为 50:50
当 v2-beta 版本服务已经正常运行一段时间后,逐步增加 v2-beta 版本的流量比例,并减少 v1 版本的流量比例。
在服务路由规则列表中,单击【编辑】。
修改流量目的地中 provider-group-1 和 provider-group-2 的流量比例分别为50和50。
稍等几分钟,刷新页面观察列表下方流量比例变化情况,如果 provider-group-1 和 provider-group-2 的流量比例接近 50:50,说明路由规则生效。
四、修改路由权重为 10:90
逐步增加 v2-beta 版本的流量比例,并减少 v1 版本的流量比例。操作方法参考 步骤三。
五、修改路由权重为 0:100
修改路由规则,将 provider-group-1 的权重设置为100。
稍等几分钟,刷新页面观察列表下方流量比例变化情况,如果只有 provider-group-1 有流量,说明路由规则生效。
此时可以停止部署组 provider-group-2 。
使用说明
在真实使用场景中,有以下几点需要考虑:
评估单个 provider 服务实例可以处理多少请求,并根据流量分配来规划部署组的实例数量。
如果流量比例变化后,可能需要调整部署组的实例数量来满足新的流量比例。
可以通过设置弹性伸缩规则来支持动态调整实例数量。