灰度发布实践

最近更新时间: 2024-09-05 15:09: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个部署组

  1. 登录 TSF 控制台

  2. 在左侧导航栏中,单击【应用管理】,进入应用列表页,选择 provider 应用,进入应用详情页。

  3. 单击顶部【程序包管理】,上传 v1 和 v2-beta 的程序包。

  4. 单击顶部【部署组】,在部署组列表页面创建两个部署组:

  • 部署组 provider-group-1,添加1个实例,实例规格为1核1GB。

  • 部署组 provider-group-2,添加1个实例,实例规格为1核1GB。

  1. provider-group-1 部署程序包 v1。

  2. provider-group-2 部署程序包 v2-beta。

二、配置服务路由规则及初始路由权重 90:10

  1. 在左侧导航栏中,单击【服务治理】,进入服务列表页,单击 provider 服务,进入服务详情页。

  2. 单击顶部【服务路由】, 新建路由规则,流量来源为主调服务名等于consumer-demo,流量目的地如下图所示,设置 provider-group-1的权重为90,provider-group-2 的权重为10。

  3. 在服务路由规则列表中,单击生效状态列的图标启动该规则,稍等几分钟,刷新页面观察列表下方流量比例变化情况,如果发现 provider-group-1 和 provider-group-2 的流量比例接近 90:10,说明路由规则生效。

三、修改路由权重为 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,说明路由规则生效。

四、修改路由权重为 10:90

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

五、修改路由权重为 0:100

  1. 修改路由规则,将 provider-group-1 的权重设置为100。

  2. 稍等几分钟,刷新页面观察列表下方流量比例变化情况,如果只有 provider-group-1 有流量,说明路由规则生效。

  3. 此时可以停止部署组 provider-group-2 。

使用说明

在真实使用场景中,有以下几点需要考虑:

  • 评估单个 provider 服务实例可以处理多少请求,并根据流量分配来规划部署组的实例数量。

  • 如果流量比例变化后,可能需要调整部署组的实例数量来满足新的流量比例。

  • 可以通过设置弹性伸缩规则来支持动态调整实例数量。