EDAS支持已接入SchedulerX的应用在金丝雀发布时指定任务调度比例规则。规则配置完成后,升级后的任务应用会经过小规模验证,验证通过后再全量升级,保障升级过程平稳无损。本文介绍如何将已接入SchedulerX的EDAS应用在金丝雀发布时配置任务调度比例。

前提条件

  • 金丝雀发布的应用已成功接入SchedulerX。具体操作,请参见EDAS应用接入SchedulerX
  • 已具备金丝雀发布条件:
  • SchedulerX任务的时间类型配置为second_delay时,已参照下方代码完成配置,并在配置完成后,重新打包发布应用。
    • Java应用:
      public void initSchedulerxWorker() throws Exception {
          SchedulerxWorker schedulerxWorker = new SchedulerxWorker();
          ...
          schedulerxWorker.setEnableSecondDelayStandaloneDispatch(true);
          ...
          schedulerxWorker.init();
      }
    • Spring Boot应用:

      application.properties文件中设置如下参数。

      spring.schedulerx2.enableSecondDelayStandaloneDispatch=true

使用限制

目前SchedulerX任务执行模式仅支持单机运行。

ECS应用

操作步骤

  1. 登录EDAS控制台
  2. 在左侧导航栏,单击应用管理 > 应用列表,在顶部菜单栏选择地域,并在页面上方选择微服务空间。
  3. 单击需要金丝雀发布的应用名称,在应用详情页面右上角,单击部署应用
  4. 部署模式选择页面金丝雀发布(灰度)区域右上角,单击开始部署
  5. 全链路流量控制页面,上传新版本应用的部署包,设置发布策略。具体操作,请参见使用控制台金丝雀发布(ECS集群)
  6. 在灰度规则区域,选择按比例灰度页签,设置灰度规则,然后单击确定
    接入SchedulerX的ECS应用支持在线应用任务调度两种比例灰度规则的设置。
    配置项描述
    在线应用可开启或关闭。
    • 开启:配置按比例流量规则生效。
    • 关闭:配置按比例流量规则不生效。
    流量比例流量将按配置的比例被转发至当前的灰度分组中。
    任务调度可开启或关闭。
    • 开启:配置按比例任务调度规则生效。
    • 关闭:配置按比例任务调度规则不生效。
    Schedulerx任务任务调度规则的作用范围。目前仅支持对一个SchedulerX应用分组中所有任务生效,即所有任务都会按照调度比例被调度至灰度分组中。
    调度比例任务将按配置的比例被调度至当前的灰度分组中。
  7. 灰度发布启动后,先在指定的灰度分组中部署新版本应用。基本信息页面将提示应用有变更流程正在执行,处于执行中状态。单击查看详情,进入变更详情页面查看部署进度和状态。

结果验证

灰度分组发布完成后,验证任务调度的比例分配是否符合预期。

  1. 查看灰度分组实例中的业务日志。
    1. 登录EDAS控制台
    2. 在左侧导航栏,单击应用管理 > 应用列表,在应用列表页面,单击目标应用进入基本信息页面。
    3. 在左侧导航栏,单击日志管理 > 日志目录
    4. 日志目录页面,单击展开图标,展开文件夹路径,然后单击日志文件操作列的在线查看
    5. 实时日志页面,查看message,根据调度时间判断灰度规则是否生效。
  2. 查看任务的实际调度情况与执行情况。
    1. 登录EDAS控制台
    2. 在左侧导航栏,单击任务调度 > 执行列表,单击对应任务操作列的详情
    3. 任务实例详情面板,单击历史执行记录页签,可查看任务实例运行结果。
      查看任务调度与执行情况

K8s应用

操作步骤

  1. 登录EDAS控制台
  2. 在左侧导航栏,单击应用管理 > 应用列表,在顶部菜单栏选择地域,并在页面上方选择微服务空间。
  3. 单击需要金丝雀发布的应用名称,在应用详情页面右上角,单击部署 > 部署
  4. 部署模式选择页面金丝雀发布(灰度)区域右上角,单击开始部署
  5. 金丝雀发布(灰度)页面设置新版本应用的部署参数、发布策略和灰度规则。具体操作,请参见使用控制台金丝雀发布应用(K8s)
  6. 在灰度规则区域,选择按比例灰度页签,设置灰度规则,然后单击确定
    接入SchedulerX的K8s应用支持在线应用任务调度两种比例灰度规则的设置。
    配置项描述
    在线应用可开启或关闭。
    • 开启:配置按比例流量规则生效。
    • 关闭:配置按比例流量规则不生效。
    流量比例流量将按配置的比例被转发至当前的灰度分组中。
    任务调度可开启或关闭。
    • 开启:配置按比例任务调度规则生效。
    • 关闭:配置按比例任务调度规则不生效。
    Schedulerx任务任务调度规则的作用范围。目前仅支持对一个SchedulerX应用分组中所有任务生效,即所有任务都会按照调度比例被调度至灰度分组中。
    调度比例任务将按配置的比例被调度至当前的灰度分组中。
  7. 灰度发布启动后,先在指定的灰度分组中部署新版本应用。基本信息页面将提示应用有变更流程正在执行,处于执行中状态。单击查看详情,进入变更记录页面查看部署进度和状态。

结果验证

灰度分组发布完成后,验证任务调度的比例分配是否符合预期。

  1. 查看灰度分组实例中的业务日志。
    1. 登录EDAS控制台
    2. 在左侧导航栏,单击应用管理 > 应用列表,在应用列表页面,单击目标应用进入应用总览页面。
    3. 在左侧导航栏,单击日志中心,然后单击日志目录(在线查看)页签。
    4. 日志目录页签,选择需要查看日志的Pod,然后单击添加在线查看
    5. 添加在线查看对话框中,填写应用日志目录后,单击添加
    6. 实时日志(标准输出)页面,查看实时日志,根据调度时间判断灰度规则是否生效。
  2. 查看任务的实际调度情况与执行情况。
    1. 登录EDAS控制台
    2. 在左侧导航栏,单击任务调度 > 执行列表,单击对应任务操作列的详情
    3. 任务实例详情面板,单击历史执行记录页签,可查看任务实例运行结果。
      查看任务调度与执行情况