灰度发布
weather-beta是weather的新版本,提供了紫外线查询功能。升级weather-beta,需要先将少部分请求引流到新版本做功能验证,功能验证正常的情况下,再下线老版本。在升级过程中,需要保证客户的请求不能出现中断,在部署新版本的过程中不给新版本导流,在下线老版本前已经将老版本的流量全部切走。
ServiceStage提供了灰度发布功能,可以达到上述目的。
本章节演示通过使用ServiceStage的灰度发布功能部署weather服务的新版本weather-beta。
- 登录ServiceStage控制台。
- 单击“应用管理”。
- 单击应用名称(例如:weathermap),进入“应用概览”页。
- 在“组件列表”,单击weather组件名称,进入组件概览页。
- 在页面右上角,单击“升级”。
- 选择“灰度发布”,单击“下一步”。
- 根据部署天气预报微服务时的组件部署方式,设置灰度版本配置信息。
- 源码部署方式,参考下表设置必填参数,其余参数保持默认。
参数
说明
编译命令
选择“使用默认命令或脚本”。
Dockerfile地址
输入:
./weather-beta/
组件版本
单击“自动生成”,默认以您单击“自动生成”时的时间来生成版本号。格式为yyyy.mmdd.hhmms,s取时间戳中秒数的个位值。例如:时间戳为2022.0803.104321,则版本号为2022.0803.10431。
- 软件包部署方式,参考下表设置必填参数,其余参数保持默认。
参数
说明
上传方式
- 鼠标移动到weather-1.0.0.jar软件包名称上。
- 单击。
- 选择下载并上传天气预报组件软件包时已上传的weather-beta-2.0.0.jar软件包。
组件版本
单击“自动生成”,默认以您单击“自动生成”时的时间来生成版本号。格式为yyyy.mmdd.hhmms,s取时间戳中秒数的个位值。例如:时间戳为2022.0803.104321,则版本号为2022.0803.10431。
- 源码部署方式,参考下表设置必填参数,其余参数保持默认。
- 参考下表设置组件灰度策略配置信息,其余参数保持默认。
参数
说明
部署架构
- 单击“选择”。
- 选择“类型二:注册到微服务中心(微服务B实现灰度)”。
- 单击“确定”。
灰度策略
选择“基于流量比例”。
选择流量比例
- 灰度流量比例:设置为50%,即引入到新版本的流量比例为50%。
- 当前流量比例:自动调整为50%,即引入到当前版本的流量比例为50%。
灰度实例新增模式
选择“金丝雀(先增后减)”。
首批灰度实例数量
设置为1。
剩余实例部署批次
设置为1。
图1 设置组件灰度策略配置信息
- 单击“升级”。
等待组件状态由“升级/回滚中”转换为“灰度发布中”,表示已成功完成组件灰度发布。
灰度发布成功后,会给weather微服务接入的ServiceComb引擎下发“servicecomb.routeRule.weather”配置项。
您可以在
下查看到该配置项。 - 确认灰度版本工作正常。
访问应用,多次刷新天气预报页面,可以看到界面会根据灰度策略,周期性的显示当前版本界面和灰度版本界面。
图2 当前版本界面(无紫外线数据)
图3 灰度版本界面(有紫外线数据)