更新时间:2024-12-16 GMT+08:00

灰度发布

weather-beta是weather的新版本,提供了紫外线查询功能。升级weather-beta,需要先将少部分请求引流到新版本做功能验证,功能验证正常的情况下,再下线老版本。在升级过程中,需要保证客户的请求不能出现中断,在部署新版本的过程中不给新版本导流,在下线老版本前已经将老版本的流量全部切走。

ServiceStage提供了灰度发布功能,可以达到上述目的。

本章节演示通过使用ServiceStage的灰度发布功能部署weather服务的新版本weather-beta。

  1. 登录ServiceStage控制台。
  2. 单击“应用管理”
  3. 单击应用名称(例如:weathermap),进入“应用概览”页。
  4. “组件列表”,单击weather组件名称,进入组件概览页。
  5. 在页面右上角,单击“升级”
  6. 选择“灰度发布”,单击“下一步”
  7. 根据部署天气预报微服务时的组件部署方式,设置灰度版本配置信息。

    • 源码部署方式,参考下表设置必填参数,其余参数保持默认。

      参数

      说明

      编译命令

      选择“使用默认命令或脚本”

      Dockerfile地址

      输入:

      ./weather-beta/

      组件版本

      单击“自动生成”,默认以您单击“自动生成”时的时间来生成版本号。格式为yyyy.mmdd.hhmms,s取时间戳中秒数的个位值。例如:时间戳为2022.0803.104321,则版本号为2022.0803.10431。

    • 软件包部署方式,参考下表设置必填参数,其余参数保持默认。

      参数

      说明

      上传方式

      1. 鼠标移动到weather-1.0.0.jar软件包名称上。
      2. 单击
      3. 选择下载并上传天气预报组件软件包时已上传的weather-beta-2.0.0.jar软件包。

      组件版本

      单击“自动生成”,默认以您单击“自动生成”时的时间来生成版本号。格式为yyyy.mmdd.hhmms,s取时间戳中秒数的个位值。例如:时间戳为2022.0803.104321,则版本号为2022.0803.10431。

  8. 参考下表设置组件灰度策略配置信息,其余参数保持默认。

    参数

    说明

    部署架构

    1. 单击“选择”
    2. 选择“类型二:注册到微服务中心(微服务B实现灰度)”
    3. 单击“确定”

    灰度策略

    选择“基于流量比例”

    选择流量比例

    • 灰度流量比例:设置为50%,即引入到新版本的流量比例为50%。
    • 当前流量比例:自动调整为50%,即引入到当前版本的流量比例为50%。

    灰度实例新增模式

    选择“金丝雀(先增后减)”

    首批灰度实例数量

    设置为1。

    剩余实例部署批次

    设置为1。

    图1 设置组件灰度策略配置信息

  9. 单击“升级”

    等待组件状态由“升级/回滚中”转换为“灰度发布中”,表示已成功完成组件灰度发布。

    灰度发布成功后,会给weather微服务接入的ServiceComb引擎下发“servicecomb.routeRule.weather”配置项。

    您可以在微服务引擎 > 配置管理下查看到该配置项。

  10. 确认灰度版本工作正常。

    访问应用,多次刷新天气预报页面,可以看到界面会根据灰度策略,周期性的显示当前版本界面和灰度版本界面。

    图2 当前版本界面(无紫外线数据)

    图3 灰度版本界面(有紫外线数据)