十、高可用之应急预案
应用应急预案是当系统出现可预期和不可预期的各种异常时,为防止系统的异常对业务造成不可控的损失而预先设计的一种保障手段,是系统运维保障的最后一道防线。应急预案是全方位综合性的故障解决方案,既有技术方面的应急预案,也有管理流程方面的应急预案。
生产系统最容易出现异常往往出现在大促活动流量高峰的时段,因为平时业务量不大时,很多问题暴露不出来。通过对大部分已知的故障进行复盘,可以让我们对当前系统的现状有更加客观、准确的认知,并制订相关的预案堵住系统可能存在的漏洞=。有些故障可以避免,通过充分地架构优化、性能压测、容量预估,以及流程优化等;有些故障无法避免,但我们可以通过事先准备的预案,让这些故障的影响降到最小。通过故障回放的方式,我们清楚地摸清了现在的情况,对故障“再来一次”具备了初步的信心。
对于减少故障的发生和故障的快速响应处理,需要解决两方面的问题:
1.监控类问题
告警阈值设置不合理:配置告警阈值过高或未配置告警,导致出现异常时无法告警。
核心告警信息投递不合理:核心告警未投递到明确的责任人,导致值班人员未收到外呼且未在应急群出现。
核心告警无人响应:由于部分告警日常噪声较大,平时无效告警太多使人对各类短信告警麻木,导致告警投递后无人响应。
2.应急问题
故障问题定位困难:分布式系统交叉依赖多,出现问题后定位排查困难。
应急过程组织混乱:业务域对线上问题的处理流程不清晰,延误故障恢复。
应急人员职责不清:业务域对每个告警该响应的人员不明确,造成部分告警无人响应。
预案可执行性差:部分故障事先制订了应急预案,但针对这些预案未进行过实际演练,对预案的执行效果心里没底,导致真正故障发生时,无人敢执行预案。
每一项应急预案包括明确的效果描述、触发条件、执行步骤、涉及的系统、影响范围、验证方式等,以及该预案的相关人,包括决策人、执行人等。针对每一项应急预案,必须明确相关的责任人,平时对这些应急预案经常组织模拟演练,确保每一项应急预案的处理流程顺畅,触发条件清晰明确,可执行、可验证、可回滚。一旦线上系统出现故障,要根据制订的有效且可行的应急预案快速恢复,及时控制故障的影响面。另外,可以通过工具化提效,加速故障恢复,完善监控告警,精准快速地定位故障。
版权声明: 本文为 InfoQ 作者【穿过生命散发芬芳】的原创文章。
原文链接:【http://xie.infoq.cn/article/2308f0198ecf2589e97ae055f】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论