灰度发布又名金丝雀发布,在原有部署版本可用的情况下,同时部署新版本应用作为“金丝雀”(金丝雀对瓦斯极敏感,矿井工人携带金丝雀,以便及时应对危险),测试新版本的性能,在保证整体系统稳定的情况下,帮助您尽早发现问题和修复问题。

背景信息

分批发布是按批次进行应用部署,每次仅对应用的一部分实例进行升级。分批发布过程中如果出现故障,则可以及时终止并回退,待问题修复后重新发布。

应用进行分批发布时,应用内的实例数会平均分配到每个批次进行部署。如果无法平均分配,则靠前的批次分配到的实例数少,靠后的批次分配到的实例数多。

应用进行灰度发布时,为了保证应用稳定性,灰度发布的应用实例数不能超过应用实例总数的50%,剩余的应用实例按照指定的批次分批发布。

场景示意

某应用包含10个应用实例,每个应用实例的部署版本为Ver.1版本,现需将每个应用实例升级为Ver.2版本。
  • 灰度发布:假设选择2台应用实例进行灰度发布,剩下8个应用实例分3批进行分批发布,根据分批发布策略,发布流程如下图所示:灰度发布流程
  • 分批发布:假设将所有应用实例分3批进行部署,根据分批发布策略,该发布流程如下图所示:分批发布流程

灰度发布

  1. 登录SAE控制台
  2. 在左侧导航栏中单击应用列表,在应用列表页面中,单击需要进行灰度发布的应用名称。
  3. 在应用详情页右上角单击部署应用
  4. 配置部署参数。
    说明 部署方式由应用首次次部署方式决定,请根据所需的部署方式进行部署参数设置。
    • War部署:重新上传War包或者输入新的部署War包的地址,并完成相关环境和参数设置。应用部署_配置war包
    • Jar包部署:重新上传Jar包或者输入新部署Jar包的地址,并完成相关环境和参数设置。配置jar包
    • 镜像:重新选择镜像。配置镜像
  5. 发布策略设置区域内配置灰度发布策略。
    图 1. 灰度发布策略设置
    灰度发策略
    图 2. 分批发布策略设置
    分批发布策略
    配置 说明
    发布策略 选择灰度发布
    灰度数量 设置需要首先进行灰度发布的应用实例数量。
    灰度后剩余批次 灰度发布后,剩余的应用实例按照设定的批次完成发布。
    批次内部署间隔 每一批内,如果应用实例数大于 1,应用实例间的部署时间间隔。
    最小存活实例数 每次滚动升级最小存活的实例数。
  6. 可选: 高级配置。
  7. 单击确认完成灰度发布设置。

分批发布

分批发布操作流程与灰度发布基本一样,具体操作请参见灰度发布

步骤5中的配置策略分批发布,并依据步骤5中的参数配置表进行设置,配置完成后单击确认进行分批发布。

结果验证

  • 方法一:

    在应用的变更记录页中查看应用变更详情,查看灰度和分批发布的状态,如果所有批次都执行成功,则说明应用更新成功。

  • 方法二:

    在应用详情页中实例部署信息页签查看实例的运行状态。如果执行状态显示为Running,且实例的版本已变为Ver.2,表示应用部署成功。

回滚应用

采用灰度发布或者分批发布方式进行应用升级时,如果应用实例中存在未完成升级的实例,则当前应用升级状态处于进行中

在实时跟踪升级时,如果首批应用实例升级突发异常停止响应,为了保证业务不受影响,请在变更详情页面中单击立即回滚,将已升级的实例回退至升级前版本,并将配置还原为升级前原有配置。

在应用变更过程中,如果出现部署包不可用、健康检查失败等变更流程异常情况,将导致应用升级失败,SAE将当前应用停止并进行回退。

在SAE上进行应用升级耗时约为30分钟,超出该时间后上报超时异常并暂停变更流程,请在变更详情页面手动终止发布流程并回退。

更多信息