微服务引擎 CSE-管理微服务:灰度发布

时间:2024-08-15 17:32:06

灰度发布

为保障新特性能平稳上线,可以通过灰度发布功能选择少部分用户试用,待新特性成熟以后,再切换版本让所有用户使用。

  • 基于ServiceComb Java Chassis框架开发的微服务需要在POM中添加依赖darklaunch或handler-router,并且在配置文件中增加servicecomb.router.type=router。
  • 基于Spring Cloud Huawei框架开发的微服务需要在POM中增加依赖spring-cloud-starter-huawei-router。
  1. 登录微服务引擎控制台
  2. 在左侧导航栏选择“ServiceComb引擎专享版”。
  3. 单击待操作的引擎。
  1. 单击“微服务目录”。

    • 未开启安全认证的ServiceComb引擎,请执行6
    • 开启安全认证的ServiceComb引擎,请执行5

  2. 在弹出的“安全认证”对话框输入账号名及其密码,单击“确定”

  3. 在“微服务列表”页签,单击微服务名称,进入详情页面,单击“灰度发布”。
  4. 单击“添加发布规则”,弹出“创建新规则”弹框。

    • 按照权重方式添加灰度规则。
      1. “发布规则”选择“权重”,显示权重规则设置页签。
      2. 对权重规则进行设置,权重规则配置项如下表所示。

        配置项

        说明

        规则名称

        自定义规则名称。

        作用域

        • 选择规则作用的版本。
        • 勾选“是否添加自定义版本”,根据界面提示添加新版本。

        规则配置

        配置所选版本的引流权重,流量会按照配置的百分比分配给所选择的服务版本。

      3. 单击“确定”,完成权重规则配置和灰度发布。
    • 按照自定义方式添加灰度规则。

      只有ServiceComb Java Chassis框架开发的微服务通过依赖darklaunch实现灰度能力和Spring Cloud Huawei框架开发的微服务实现灰度能力,可通过此功能实现下发灰度规则。依赖handler-router下发的灰度规则需要手动在配置中心下发。

      1. “发布规则”选择“自定义”,显示自定义规则设置页签。
      2. 对自定义规则进行设置,自定义规则配置项如下表所示。

        配置项

        说明

        规则名称

        自定义规则名称。

        作用域

        • 选择规则作用的版本。
        • 勾选“是否添加自定义版本”,根据界面提示添加新版本。

        规则配置

        设置匹配规则的参数,使用darklaunch实现灰度能力时,设置的是policyCondition内容,其他设置的是Headers参数。

        Spring Cloud Huawei框架开发的微服务设置的Headers参数请参见设置Header参数

        • 参数名

          根据契约的参数名或Header自定义的key作为参数名设置。

        • 规则
          通过选择匹配符和契约的Key或Header的Key对应的Value确定符合该规则的请求将被分配到微服务版本中。
          说明:
          • 当匹配符选~时,可使用*或者?字符的模糊匹配规则自定义规则值,*表示任意长度字符,?表示一个字符。比如,字段Name的规则值配置为*1000时,表示Name后4位为1000的都能匹配上。
          • 当匹配符没有选~时,*或者?字符只是普通字符,没有模糊匹配的作用。

      3. 单击“确定”,完成自定义规则配置和灰度发布。

下发灰度发布规则样例如下:

  • ServiceComb Java Chassis框架开发的微服务,在ServiceComb引擎页面下发规则是基于darklaunch依赖下发的,通过配置自定义方式添加灰度规则。

    其中,在规则配置中,参数名Key必须是契约里面存在的。有可能服务端接口写的是String paramA,加了注解实际生成的是paramB,所以这里应该是写paramB。

    通过选择匹配符和契约的Key对应的Value确定符合该规则的请求将被分配到微服务版本中。

    成功下发的规则内容如下:配置项为cse.darklaunch.policy.${serviceName}。

  • ServiceComb Java Chassis框架开发的微服务,依赖handler-router下发的灰度规则需要手动在配置中心下发,配置项为:servicecomb.routeRule.${serviceName},内容如下:

  • Spring Cloud Huawei框架开发的微服务,ServiceComb引擎页面下发灰度规则如下:

support.huaweicloud.com/usermanual-cse/cse_usermanual_0019.html