本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
如果您的应用有多个应用实例且需要升级,那么您可以按需通过灰度或分批发布方式升级应用实例版本。本文介绍什么是分批发布,以及如何为应用配置分批发布和回滚。
前提条件
应用实例数大于1。
背景信息
分批发布按批次进行应用部署,每次仅对应用的一部分实例进行升级。分批发布过程中如果出现故障,则可以及时终止并回退,待问题修复后重新发布。
应用进行分批发布时,应用内的实例数会平均分配到每个批次进行部署,即按相同的节点数量分为多次发布,并且您可以在每个批次之间选择手动或自动审核。如果无法平均分配,则靠前的批次分配到的实例数少,靠后的批次分配到的实例数多。
只有当应用的实例数量大于1时才能使用分批发布。如果您通过IntelliJ IDEA,以输入命令行的方式来分批发布只有1个实例的应用,会导致系统报错。
场景示例
某应用包含10个应用实例,每个应用实例的部署版本为Ver.1版本,现需将每个应用实例升级为Ver.2版本。假设将所有应用实例分3批进行部署,分批发布流程如下图所示。
操作步骤
重新部署应用后,该应用将会被重启。为避免业务中断等不可预知的错误,请在业务低峰期执行部署操作。
登录SAE控制台,在左侧导航栏选择 ,然后选择目标地域和目标命名空间,最后单击目标应用名称。
在目标应用的基础信息页面,单击部署应用。
配置部署参数。
说明部署方式由应用首次部署方式决定,请根据所需的部署方式设置参数。
WAR包部署:重新上传WAR包或者输入新部署WAR包的地址,并完成相关环境和参数设置。
JAR包部署:重新上传JAR包或者输入新部署JAR包的地址,并完成相关环境和参数设置。
ZIP包部署:重新上传ZIP包或者输入新部署ZIP包的地址,并完成相关环境和参数设置。
镜像:在配置镜像区域,单击修改镜像,在修改镜像面板,重新选择镜像仓库或镜像版本。
在发布策略设置区域,配置分批发布。
配置项
说明
发布策略
选择分批发布。
发布批次
设置应用实例发布的批次。
批次内部署间隔
每一批内,如果应用实例数大于1,应用实例间的部署时间间隔。单位为秒。
最小存活实例数
每次滚动升级最小存活的实例数。
按个数:输入最小存活实例数。您也可以选中使用系统推荐值,即取现有实例数的25%。
按比例:输入百分比。
说明每次滚动部署最小存活的实例数建议≥1,保证业务不中断。如果设置为0,应用在升级过程中将会中断业务。
以百分比计算时需向上取整。例如设置为25%,如果当前为5个实例,则最小存活实例数为2。
配置完成后,单击确定。
通过以下方式验证配置是否生效。
方式一:在应用的变更记录页面,查看应用变更详情与发布状态。如果所有批次都执行成功,则说明应用更新成功。
方式二:在应用基础信息页面的实例列表页签,查看实例的运行状态。如果执行状态显示为Running,表示应用部署成功。
应用回滚
采用灰度发布或者分批发布方式升级应用实例时,如果应用实例中存在未完成升级的实例,则当前应用升级状态处于进行中。
在实时跟踪应用升级时,如果首批应用实例升级突发异常停止响应,为了保证业务不受影响,请在变更详情页面中单击立即回滚,将已升级的实例回退至升级前版本,并将配置还原为升级前原有配置。
在应用变更过程中,如果出现部署包不可用、健康检查失败等变更流程异常情况,将导致应用升级失败,SAE将停止当前应用并进行回退。
在SAE上进行应用升级耗时约为30分钟,超出该时间后SAE将上报超时异常并暂停变更流程,请在变更详情页面手动终止发布流程并回滚应用。