规避ECS因系统维护实例重启的业务风险

更新时间:2025-03-21 05:34:31

本文针对SystemMaintenance.Reboot(因系统维护实例重启)事件,提供了通过阿里云多渠道通知机制和基础响应能力来降低业务连续性风险的规避方案,帮助您有效规避因实例重启带来的业务影响。

事件产生原因

阿里云检测到ECS实例所在的底层宿主机可能存在软硬件故障风险,该风险虽不会立即引发故障,但会导致实例重启。当热迁移方案不可行时,阿里云会在计划维护前24~48小时推送SystemMaintenance.Reboot系统事件,您可在此期间选择主动重启实例或修改预约重启时间,若未及时响应阿里云将默认到期自动执行重启。具体详情,请参见ECS系统事件汇总

说明

故障风险类型包括:

  • 类型1:宿主机存在隐患风险。

  • 类型2:实例GPU设备不可用。

风险说明

SystemMaintenance.Reboot事件对客户业务系统可能带来的风险有:

  • 您可能未充分了解主动运维事件机制,导致未及时响应系统事件。若您的系统架构中未配置高可用或容错机制,则可能无法规避因实例到期重启或故障宕机引发的业务中断风险。

  • 若在实例主动重启完成之前,潜在的软硬件故障风险已实际发生,未完成的SystemMaintenance.Reboot事件将会被关闭,并触发SystemFailure.Reboot事件(因系统错误实例重启),导致实例强制重启。如果恰逢业务高峰或存在其他不利因素,可能对客户业务系统的稳定性造成较大影响,从而增加业务风险。

风险规避方案

订阅事件通知

第一步:订阅事件通知,及时感知系统事件。阿里云提供了多渠道通知机制,客户可以根据自己的需求和优先级设置不同的通知机制。

通知方式

生效范围

说明

通知方式

生效范围

说明

消息中心产品运维通知

所有实例

在站内信中可以订阅产品运维通知推送给指定联系人, 通知方式有短信、站内信、邮箱。

使用云监控订阅ECS系统事件通知

自定义范围

您可以通过邮件、飞书、企业微信、Slack、短信、电话、钉钉等多种方式订阅,详情参见:

实施规避手段

第二步:可手动或自动实施规避手段。阿里云提供了不同的基础响应能力,用来应对在不同业务场景下完成风险规避的需求。您可以根据自己的业务稳定性需求来选择。

规避手段

处理范围

说明

应用场景

规避手段

处理范围

说明

应用场景

控制台手动响应系统事件

每个ECS实例的每个事件单独处理

您可以根据业务需求在窗口期之前手动重启实例,也支持修改预约重启时间

  • 业务繁杂,需要根据不同的实例选择不同的动作, 如立即重启/预约重启。

  • 有专业运维人员7*24小时支持,或者通过持续关注其他渠道消息并及时完成业务处理。

手动禁用或开启ECS实例自动重启维护属性

针对单一实例设置,后续事件自动处理

在您响应该系统事件时,ECS实例的默认行为是自动重启,如果您希望在这种情况下不自动重启ECS实例,可以通过修改实例维护属性ModifyInstanceMaintenanceAttributes接口来完成设置。

有状态应用,同时应用层已实现故障转移、节点切换等灾备机制,禁止自动重启可以避免多个节点同时提供服务而产生冲突。

设置维护时间窗口自动响应事件

针对单一实例设置,后续事件自动处理

通过控制台和ModifyInstanceMaintenanceAttributes接口对指定实例设置维护时间窗口,运维只会在该时间内进行。

  • 无状态应用,实例所在集群在明显的业务低峰时段,业务有基础架构容错能力。其余大部分实例对重启不敏感。

  • 需要针对实例进行设置,维护成本较高,建议后续用计划维护窗口能力替代。

创建ECS计划维护窗口自动响应事件

针对范围内实例设置,后续事件自动处理

您可以通过选择全部、指定实例资源组或指定实例标签三种方式精准圈定目标ECS实例。设置计划维护窗口,自动响应主动运维事件。详情请参见ECS计划维护窗口

  • 无状态应用,集群在明显的业务低峰时段,业务有基础架构容错能力。不同业务的低峰时段也不相同。

  • 整体业务有明显的低峰时段 。

通过操作系统日志自动监控和应响应ECS系统事件

安装过插件并纳入到自动运维的实例,后续事件自动触发业务迁移

安装云助手插件ecs-tool-event,该插件会将ECS系统事件转化为日志格式存储在操作系统内部,业务可以通过监控该日志自动完成后续的运维动作,通过系统化能力,主动监控和响应阿里云提供的ECS系统事件,实现故障处理、动态调度自动化运维。详情请参见自动监控和响应ECS系统事件

有状态应用,对于风险实例需要尽快完成风险规避,同时在重启前完成一系列业务迁移操作。

基于消息通道的事件消费与API主动重启机制

监听所有实例的所有事件,根据业务手动或自动处理

收到相关事件通知后,先完成业务处理,再通过Webhook或消息通道消费事件,并在运维应用中调用API主动触发实例重启。详情请参见通过订阅ECS系统事件通知通过EventBridge快速订阅ECS事件

  • 业务复杂,需要使用自己的运维系统完成下一步的事件分发。

  • 业务复杂,需要使用自己的运维系统完成运维动作编排。

通过OOS运维编排自动响应事件

编排范围内的所有实例的所有事件,完成编排的动作

使用OOS编排支持主动运维事件,当发生主动运维事件时,调用ECS API主动重启。详情请参见OOS运维编排

已有自动化运维能力,同时该运维能力依赖阿里云OOS。

通过函数服务触发器自动响应事件

监听所有实例的所有事件,函数内决策如何执行

函数服务支持消费主动运维事件,当发生主动运维事件时,调用ECS API主动重启。详情请参见函数服务触发器

已有自动化运维能力,同时该运维能力依托于阿里云函数计算

默认到期执行

所有实例的所有事件

默认行为,如果以上手段均未使用,则默认在事件通知48小时后,阿里云自动完成重启。

无状态应用,客户业务有合适的架构容错能力。能够完全容忍部分实例重启。

以上规避手段,主要是从阿里云侧提供的能力出发,真正的业务可能会非常复杂,单一手段可能无法满足所有业务运维需求,实际业务中,可以通过组合以上手段提高整体稳定性。推荐组合:

  1. 订阅事件通知。

  2. 使用计划维护窗口将所有运维重启时间放在业务低峰期。

  3. 对于重点核心业务,应采用更为完整的响应手段。可以在收到通知后及时进行手动响应,同时也可以构建自动化的响应能力。

规避手段效果评估

如主动运维事件定义,当底层宿主机可能存在软硬件故障风险且热迁移不可行时,将触发冷迁移操作。在SystemMaintenance.Reboot事件早期,ECS实例存在较高宕机风险。为保障业务稳定性,建议尽早响应SystemMaintenance.Reboot事件,以降低潜在业务风险。如下图所示,通过评估不同规避手段的时效性和接入成本,为您提供决策依据:

  • 计划维护窗口。具有较高的时效性,并且接入成本最低。在运维体系尚未完善时,它能够迅速提供基本的保障。

  • 通过操作系统日志自动监控和响应ECS系统事件。具有最高的时效性,并为系统提供最佳的稳定性。针对Kubernetes管理的集群,可以通过相应组件完成集成,接入成本相对较低。

  • 控制台手动响应系统事件。接入成本较低,但由于依赖于运维人员,需要做大量人工决策判断,可能存在响应滞后或操作疏漏风险。

  • 修改实例维护属性。时效性较高,但需针对具体实例进行设置,全面覆盖风险所需成本较高。

  • 默认到期执行。接入成本最低,仅利用了ECS弹性计算的基本稳定性能力,但并未对业务的稳定性带来任何提升。

  • 其他自动化响应的方式,都可以有较高的时效性,但接入成本都比较高,可以结合自己的业务情况进行选用。

yuque_diagram (3)

  • 本页导读
  • 事件产生原因
  • 风险说明
  • 风险规避方案
  • 订阅事件通知
  • 实施规避手段
  • 规避手段效果评估