全部产品
云市场
云游戏

蓝绿发布

更新时间:2020-01-19 17:36:03

蓝绿发布支持以部署单元(Cell)为维度部署应用,能解决部署中的应用兼容性问题,实现双机房工作空间下的应用并行发布,提供更灵活的发布策略,对 SLB 挂载应用进行随机的引流验证。

说明:

  • 由于蓝绿发布是 部署单元 的操作,会对两个部署单元的中间件服务进行来回切换,所以建议对整个部署单元的应用同时进行蓝绿发布,否则会对其他使用中间件的应用造成不可知的错误。
  • 如果应用挂载了 SLB,并在某一可用区内流量为 0,执行灰度引流会将部分流量导入该可用区,可能会导致业务异常。

前提条件

  • 同一个工作空间(Workspace)有且仅有 2 个部署单元 ,并且这两个部署单元同属于一个地域(Region)。
  • 应用在这两个部署单元内均有可发布机器资源。
  • 如果应用挂载了 SLB,则针对每一个 SLB 资源,在这两个部署单元内均有挂载机器。
  • 灰度引流仅支持具备 SLB 资源的应用。

其他前提条件,请参考 应用部署

具体步骤

执行蓝绿发布的过程包括以下步骤:

  1. 进入经典应用服务
  2. 创建蓝绿发布单
  3. 执行蓝绿发布单
    • 切除流量(支持回滚)
    • 迁移组件(支持回滚)
    • 绿发布(支持灰度引流、支持回滚)
    • 切换流量(支持回滚)
    • 切换组件(支持回滚)
    • 蓝发布(支持灰度引流)
    • 恢复流量
    • 恢复组件
  4. 回滚
    • 发布单回滚
    • 单步回滚

进入经典应用服务

进入经典应用服务控制台,点击左侧导航栏中的 应用发布 > 发布单 进入部署大盘。

创建蓝绿发布单

在部署大盘中点击 创建 按钮创建发布单。然后,按顺序依次执行以下步骤:

  1. 编辑基础信息。
    • 标题:填写发布单标题。
    • 类型:从下拉列表中选择 蓝绿发布
    • 部署单元:确保 部署单元1部署单元2 已默认选中。
    • 服务列表:从应用列表中选出所需 发布应用服务引流应用服务
      • 发布应用服务:指通常意义上的发布应用。在蓝绿发布中,参与发布部署流程;若应用在对应机房挂载 SLB,则同时参与灰度引流流程。

        说明:此类应用要求进行蓝绿发布的 2 个部署单元同时具备机器;若应用在当前工作空间挂载 SLB,则要求 2 个部署单元的机器同时挂载对应的 SLB。

      • 引流应用服务:在蓝绿发布中,仅参与灰度引流流程。

        说明

        • 此类应用要求在当前工作空间挂载 SLB,并要求进行蓝绿发布的 2 个部署单元的机器同时挂载对应 SLB。
        • 若无 升降级技术栈添加部署参数 需求,可选择 快速创建 生成发布单。否则,点击 编辑高级信息 进行下一步操作。
  2. 可选:编辑高级信息。
    • 针对使用技术栈 v2 的应用,默认开启 从缓存中安装技术栈 对发布部署流程进行提速,如有调试技术栈或实时拉取技术栈包需求,可关闭此开关。

      说明: 该开关对使用技术栈 v1 的应用无效。

    • 升级/降级技术栈 支持在发布部署过程中进行应用级别升降级技术栈。
    • 如需要对发布单中全部或个别应用添加部署参数,可在 部署参数 中进行参数配置。不填则默认不进行设置。
  3. 预览提交。整体展现编辑后的基础信息和高级信息,确认无误后点击 创建 生成发布单。

执行蓝绿发布单

在部署大盘中,点击已创建的发布单,进入发布单详情页面。发布单详情页面主要分为两块:发布单操作执行区单步操作执行区

bg-release-summary

发布单操作

该操作的执行区域见上图中的 发布单执行栏

发布单创建完毕后,系统将自动执行 初始化。若初始化失败,请根据页面提示信息进行修复操作,例如:点击 重新初始化 尝试重试初始化。

点击 执行 将启动蓝绿发布的发布流程。在发布单完成之前,点击 取消 终止发布。

说明:执行 取消 操作后该发布单将只能查看详情,无法再做其他操作,请谨慎操作。

单步操作

该操作的执行区域见上图中的 当前步骤执行栏

蓝绿发布执行过程中,您可在发布单详情页面,通过步骤进度条来查看执行详情并进行相应操作。

详情视图分为 负载均衡应用发布组件服务 三个部分。在右侧的当前步骤操作栏中,您可通过步骤进度条选择单一步骤进行查看或执行相关操作。

切除流量

切除流量将绿机房的流量全部切换至蓝机房。

  • 点击 执行 按钮执行发布单后,将立即进入切除流量步骤。
  • 负载均衡 面板中可实时观察 发布应用引流应用 的流量详情。

操作步骤:

  1. 点击 详情 查看切除流量执行情况。
  2. 失败后点击 重试 尝试重新执行;或者点击 忽略 进入待确认状态。
  3. 在确认当前步骤完成前,点击 取消 终止执行,并直接进入下一步骤。
  4. 切除流量成功或被忽略后,点击 确认 进入下一步骤。

迁移组件

迁移组件将 分布式事务 (XTS)定时任务消息队列 三大服务从绿机房迁移至蓝机房。

  • 确认切除流量后,将立即进入迁移组件步骤。
  • 组件服务 面板中可查看服务迁移状态及结果。

操作步骤:

  1. 点击 详情 查看迁移组件执行情况。
  2. 失败后点击 重试 尝试重新执行;或者点击 忽略 进入待确认状态。
  3. 在确认当前步骤完成前,点击 取消 终止执行,并直接进入下一步骤。
  4. 迁移组件成功或被忽略后,点击 确认 进入下一步骤。

绿发布

绿发布将并行执行绿机房所有 发布应用 的部署,不考虑应用之间的依赖关系。发布完成后,您可进行 0~50% 的灰度引流来验证新版本是否成功发布。

  • 确认迁移组件后,将立即进入绿发布步骤。
  • 在绿机房 所有应用发布完成后、确认绿发布完成前,可对绿机房进行灰度引流操作。

操作步骤:

  1. 点击 详情 查看绿发布执行情况。
  2. 失败后点击 重试 尝试重新执行;或者点击 忽略 进入待确认状态。
  3. 在确认当前步骤完成前,点击 取消 终止执行,并直接进入下一步骤。
  4. 灰度引流(可选)。
  5. 绿发布成功(或被忽略)并完成 灰度引流 后,点击 确认 进入下一步骤。

绿发布

应用发布 面板可查看绿机房所有 发布应用 的发布状态及结果。

点击绿机房下的单个应用图标,可进入查看当前应用的发布部署详情。应用详情页面的说明及使用,请参考 应用部署

绿发布 - 灰度引流

说明:如果存在应用发布前,在任一机房的 SLB 流量为 0,灰度引流会将 SLB 流量引入该机房,可能导致业务异常。因此针对此类应用,请谨慎评估风险。

灰度引流目前支持机房级引流。在 负载均衡 面板可查看灰度引流执行详情。

绿发布的灰度引流按照输入引流百分比(数值区间:0~50)将蓝机房的流量引流回绿机房。在 负载均衡 页签中,将光标移至蓝绿机房的目标应用,弹出该应用在绿机房中各个 SLB 的流量详情。

gray-deploy-20

切换流量

切换流量将蓝机房的流量全部切换至绿机房。

  • 确认绿发布后,将立即进入切换流量步骤。
  • 负载均衡 面板中可实时观察 发布应用引流应用 的流量详情。

操作步骤:

  1. 点击 详情 查看切换流量执行情况。
  2. 失败后点击 重试 尝试重新执行;或者点击 忽略 进入待确认状态。
  3. 在确认当前步骤完成前,点击 取消 终止执行,并直接进入下一步骤。
  4. 切换流量成功或被忽略后,点击 确认 进入下一步骤。

切换组件

切换组件将分布式事务、定时任务及消息队列三大服务从蓝机房迁移至绿机房。

  • 确认切换流量后,将立即进入切换组件步骤。
  • 组件服务 面板中可查看服务迁移状态及结果。

操作步骤:

  1. 点击 详情 查看切换组件执行情况。
  2. 失败后点击 重试 尝试重新执行;或者点击 忽略 进入待确认状态。
  3. 在确认当前步骤完成前,点击 取消 终止执行,并直接进入下一步骤。
  4. 切换组件成功或被忽略后,点击 确认 进入下一步骤。

蓝发布

说明:该步骤不支持回滚。

请参考 绿发布

恢复流量

说明:该步骤不支持回滚。

恢复流量将恢复绿机房和蓝机房流量至发布前的状态。

  • 确认蓝发布后,将立即进入恢复流量步骤。
  • 负载均衡 面板中可实时观察 发布应用引流应用 的流量详情。

操作步骤:

  1. 点击 详情 查看恢复流量执行情况。
  2. 失败后点击 重试 尝试重新执行;或者点击 忽略 进入待确认状态。
  3. 在确认当前步骤完成前,点击 取消 终止执行,并直接进入下一步骤。
  4. 恢复流量成功或被忽略后,点击 确认 进入下一步骤。

恢复组件

说明:该步骤不支持回滚。

恢复组件把服务切换前的蓝机房服务从绿机房恢复回蓝机房。

  • 确认恢复流量后,将立即进入恢复组件步骤。
  • 组件服务 面板中可查看服务恢复状态及结果。

操作步骤:

  1. 点击 详情 查看恢复组件执行情况。
  2. 失败后点击 重试 尝试重新执行;或者点击 忽略 进入待确认状态。
  3. 在确认当前步骤完成前,点击 取消 终止执行,并直接进入下一步骤。
  4. 恢复组件成功或被忽略后,点击 确认 结束整个蓝绿发布流程。

回滚

在发布过程中,如当前执行步骤为以下步骤:切除流量、迁移组件、绿发布、切换流量、切换组件,可执行发布单级别回滚,或针对当前步骤执行单步回滚操作。

回滚发布单

发布单执行栏 内点击 回滚 执行所有步骤的回滚。

发布单级别的回滚将包含以下几点:

  • 取消当前发布单(取消后当前发布单仅支持详情查看)。
  • 创建新的 回滚发布单 并自动执行整体回滚操作。
  • 如果当前执行步骤已执行回滚,则在回滚流程中忽略该步骤。
  • 如果绿发布步骤中已执行机房级灰度引流,则在回滚流程中将包含 回滚灰度引流 步骤。
  • 回滚发布单中的所有步骤及应用 不支持再次回滚

单步回滚

当前步骤执行栏 内点击 单步回滚 执行当前步骤的回滚。单步回滚将包含以下几点:

  • 在确认当前步骤完成前,点击 回滚 终止当前步骤正在执行的流程。
  • 创建回滚流程并自动执行。
  • 回滚成功后,
    • 点击 重新执行 尝试重试当前步骤。
    • 点击 继续执行 直接进入下一步骤。
  • 回滚失败后,
    • 点击 回滚重试 尝试重新执行回滚操作。

回滚切除流量

将流量回滚至发布前状态。

回滚迁移组件

说明:迁移组件的回滚只对定时任务服务进行回滚,不对其他服务进行操作。

回滚定时任务至绿机房。

回滚绿发布

  • 针对单个应用的回滚

    应用发布 面板中,点击绿机房下的相关应用,进入应用详情视图,参考 应用部署 执行回滚操作。

  • 绿机房发布应用整体发布回滚

    • 回滚绿机房所有应用的发布。
    • 应用发布 面板中,点击 切换回滚(原)视图 查看回滚(原)发布详情。

      green-deploy-rollback

回滚切换流量

将流量全部回滚回蓝机房。

回滚切换组件

说明:切换组件的回滚只对定时任务服务进行回滚,不对其他服务进行操作。

回滚定时任务至蓝机房。