灰度发布

最近更新时间:2022-06-10 11:31:37

我的收藏
当用户需要上线新的功能时,希望使用灰度发布的手段在小范围内进行新版本发布测试。 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 部署组。

操作步骤

步骤1:provider 创建2个部署组

1. 登录 TSF 控制台
2. 在左侧导航栏中,单击 应用管理,进入应用列表页,选择 provider 应用,进入应用详情页。
3. 单击顶部程序包管理,上传 v1 和 v2-beta 的程序包。
4. 单击顶部部署组,在部署组列表页面创建两个部署组:
部署组 provider-group-1,添加1个实例,实例规格为1核1GB。
部署组 provider-group-2,添加1个实例,实例规格为1核1GB。
5. provider-group-1 部署程序包 v1。
6. provider-group-2 部署程序包 v2-beta。

步骤2:配置服务路由规则及初始路由权重 90:10

1. 在左侧导航栏中,单击 **服务治理**,进入服务列表页,单击 provider 服务,进入服务详情页。
2. 单击顶部服务路由, 新建路由规则,流量来源为主调服务名等于consumer-demo,流量目的地如下图所示,设置 provider-group-1的权重为90,provider-group-2 的权重为10。
3. 在服务路由规则列表中,单击生效状态列的图标启动该规则,稍等几分钟,刷新页面观察列表下方流量比例变化情况,如果发现 provider-group-1 和 provider-group-2 的流量比例接近 90:10,说明路由规则生效。



步骤3:修改路由权重为 50:50

当 v2-beta 版本服务已经正常运行一段时间后,逐步增加 v2-beta 版本的流量比例,并减少 v1 版本的流量比例。
1. 在服务路由规则列表中,单击编辑
2. 修改流量目的地中 provider-group-1 和 provider-group-2 的流量比例分别为50和50。
3. 稍等几分钟,刷新页面观察列表下方流量比例变化情况,如果 provider-group-1 和 provider-group-2 的流量比例接近 50:50,说明路由规则生效。

步骤4:修改路由权重为 10:90

逐步增加 v2-beta 版本的流量比例,并减少 v1 版本的流量比例。操作方法参考 步骤:3

步骤5:修改路由权重为 0:100

1. 修改路由规则,将 provider-group-1 的权重设置为100。
2. 稍等几分钟,刷新页面观察列表下方流量比例变化情况,如果只有 provider-group-1 有流量,说明路由规则生效。
3. 此时可以停止部署组 provider-group-2 。



使用说明

在真实使用场景中,有以下几点需要考虑:
评估单个 provider 服务实例可以处理多少请求,并根据流量分配来规划部署组的实例数量。
如果流量比例变化后,可能需要调整部署组的实例数量来满足新的流量比例。
可以通过设置弹性伸缩规则来支持动态调整实例数量。