故障治理:如何进行故障复盘

简介: 故障复盘的重要性无需多说,每一次故障都是宝贵的学习机会,本人接手故障复盘工作已经半年有余,从一开始的手足无措,慢慢变得游刃有余。以下内容为本人从网上查阅学习多个专家经验,并结合工作经历总结而来,仅供参考。

图片来源网络
故障复盘的重要性无需多说,每一次故障都是宝贵的学习机会,本人接手故障复盘工作已经半年有余,从一开始的手足无措,慢慢变得游刃有余。以下内容为本人从网上查阅学习多个专家经验,并结合工作经历总结而来,仅供参考。

一、故障复盘目的

  • 通过复盘总结教训,找到根因,从根本上进行优化和改进,后期工作中规避问题再发生。
  • 有策略的、系统性的去组织复盘踩过的坑,还原事实,找到薄弱点加以改进。
  • 最终目的是鼓励做事,而不是处罚失败。

二、故障复盘原则

  • 鼓励做事和质量改进反对推诿扯皮不作为;鼓励公开透明,反对掩盖问题;鼓励整体的系统思考和团队协同,反对把问题推给个人。
  • 明确宗旨,拒绝甩锅:故障复盘的目的是为了找出问题,明确改进方案避免再次踩坑。要尽量对事不对人,避免形成对某一方的批评会。
  • 心态开放,理性务实:敢于承认自己的问题,接受自己的不足。同时,在尊重他人的前提,每个人都可以就故障过程充分发表观点和看法。
  • 鼓励快速恢复、鼓励通过演练发现更多的线上问题等。

三、故障复盘运作机制

3.1 故障复盘前准备

3.1.1 提交故障报告

故障直接原因方(非最终认定的故障责任方)在故障发生后3个工作日内提交故障报告。如故障原因涉及多个部门,需跨部门共同协助撰写故障报告。

3.1.2 确定复盘owner

每次故障复盘都必须有唯一的复盘owner,故障复盘owner负责主动引导大家,推动复盘进度。复盘owner的主要职责如下:

  • 复盘开始前,由复盘owner根据故障处理报告初稿来推动所有故障干系方完成时间线的梳理,比如某时间点做了哪些操作,产生了什么结果等;搜集故障影响范围,与各个关联方核实影响的数据,包括业务指标、系统指标、其他指标(客诉、舆情影响等)。关键信息通过截图等进行佐证,结合故障处理报告形成故障复盘报告初稿。
  • 复盘会议中,复盘owner要主动引导参会人员,推动复盘进度,避免出现一些无意义的指责、与故障无关的发散讨论等。
  • 复盘会议后,结合故障处理报告形成故障复盘报告定稿,发给所有故障干系人及相关领导。

3.1.3 确定故障干系人

复盘owner确定故障直接原因方、关联(受影响)方等与故障有关的干系人。

3.1.4 组织复盘会议

确定故障复盘时间、形式及地点、参会人员等,并组织召开复盘会议。

  • 时间要求:故障发生后一周内,时间拖到久容易遗忘故障细节
  • 参会人员要求:故障干系人必须全部参与,复盘owner在复盘文档中记录参会人员名单,必要时抽调SRE专家团队,视故障的危害程度来确定是否需要更高层级的管理人员到场

3.2 故障复盘关键流程步骤(包括但不限于)

3.2.1 故障背景概述

故障的背景要解释清楚本次故障的基本情况,即发生了什么故障,影响了什么业务(产品)等。

3.2.2 对齐故障影响范围

讲清楚本次故障的影响范围,包括影响时间段、影响的业务、影响的系统(服务)、订单量、用户量、客诉量,以及有无产生资金损失等等。

3.2.3 故障时间线回放

故障时间线回放是指从故障的最源头开始,从旁观者的角度重新梳理一遍故障的详细过程,包括每个时间点的人员操作、指标变化、监控告警、系统异常、业务实际情况等等。注意对以下几个关键时间点进行识别。

  • 故障发生时间点: 即这个故障实际上是从什么时候开始的。
  • 业务指标变化时间点: 业务指标开始下跌、开始恢复等。
  • 监控告警发出时间点: 即监控是从什么时候发现异常的,告警什么时候发出的。告警的级别、接收人是否响应超时等相关信息都要记录进来。
  • 人员介入响应时间点: 故障对应的系统值班owner是从什么时候开始响应的。
  • 异常定位时间点:即定位到故障的异常点。
  • 关键操作时间点:是否做了一些应急预案,包括重启、恢复、止血、高可用配置等。还需要理清楚每个操作的结果,即每个操作之后,报错面有无缩小、系统资源水位有无变化等。
  • 确认故障恢复时间点: 通过测试验证或者观测业务指标、系统日志等确认系统已经恢复。

根据以上时间点计算出故障平均修复时间(MTTR),然后逐个沟通讨论如何缩短其中的每一个环节耗时。MTTR详细释义见附录

3.2.4 深挖根因

在复盘过程中,既要明确诱因,更要深挖根因。可以基于5why分析法深挖根因,多问几个为什么,层层递进。5why分析法释义详见附录

3.2.5 改进项汇总

提升系统可靠性的两个关键手段:降低故障发生概率(MTBF)和缩短故障持续时间(MTTR)。参考第3步的MTTR分解环节和第4步的故障根因分解环节,推导出我们对于本次故障复盘的改进事项。在梳理改进事项的时候,还要从流程制度、团队组织、系统设计、底层工具平台综合考虑。改进项需遵循SMART原则,SMART原则释义详见附录。此外每条改进项必须有明确的责任人牵头人,确保每一条改进措施有人跟进有人负责。

3.3 故障定级定责

复盘owner组织所有干系人确定故障干系方部门每一方责任占比以及故障级别,明确扣罚明细。定级定责标准参见各自故障考核管理办法。这里注意,故障定级定责标准规则要明确,并能够与各方达成一致,此外,故障定级定责标准要不断回头看,针对有争议的地方不断修缮,这样就会最大程度地减少扯皮推诿的情况出现

3.4 故障复盘结果通告

复盘owner根据复盘会议及故障定责结果、最终的故障原因、改进方案等结论,在原故障报告的基础上,修改完善并形成最终定稿,以邮件的形式发给所有故障干系人及相关领导进行上报和周知,方便干系人及领导查阅整个复盘报告,同时让改进计划中涉及的各方明确知晓后续相关工作。

四、故障改进及闭环

故障复盘后由复盘owner(或其他)将故障信息(也就是故障报告里的内容)录入故障管理系统,系统将向故障改进措施负责人派单,整改负责人整改完成后在系统回单并提交整改完成的证明材料,由复盘owner审核通过后方可关闭工单,这样可以保证整改措施的,实现故障闭环管理

五、奖励机制

根据故障复盘过程中各位干系人及SRE专家团队表现(是否及时提交故障报告,配合度、是否积极改进、积极献策等维度逆向评价并给予相应奖惩,目的是鼓励各位主动复盘主动改进。

附录:相关名词解释

一、5why分析法:所谓5why分析法,又称“5问法”,也就是对一个问题点连续以5个“为什么”来自问,以追究其根本原因。虽为5个为什么,但使用时不限定只做“5次为什么的探讨”,主要是必须找到根本原因为止

二、MTBF:即平均无故障时间,即平均无故障工作时间,是衡量一个产品(尤其是电器产品)的可靠性指标。单位为“小时”。它反映了产品的时间质量,是体现产品在规定时间内保持功能的一种能力。具体来说,是指相邻两次故障之间的平均工作时间,也称为平均故障间隔。
图片来源网络

三、MTTR:即故障的平均修复时间,对MTTR进行拆解,得到如下几个时间段:MTTR = MTTI + MTTK + MTTF + MTTV

  1. Mean Time To Identify (MTTI): 从故障开始到应急响应介入的时间,一般是考察监控告警、人员值班oncall的合理性。
  2. Mean Time To Know (MTTK):从应急响应介入到故障定位的时间,主要考察根因分析、可观测性等工具的能力。
  3. Mean Time To Fix (MTTF): 从故障定位到故障恢复的时间,主要考察应急预案、快恢体系的能力。
  4. Mean Time To Verify (MTTV):从故障恢复之后到确认故障已经解决的时间,一般通过用户反馈、自动化测试等确认恢复。

四、SMART原则

  • S - 必须是具体的(Specific),改进项必须是可以落地的,不要泛泛而谈。
  • M - 必须是可以衡量的(Measurable),即改进项是可以评估的,比如通过故障演练来检验依赖关系的有效性。
  • A - 必须是可以达到的(Attainable),在当前的技术环境下,这个改进项是可行的。
  • R - 与其他目标具有一定的相关性(Relevant),可以理解与本次故障中其他改进项有关联性。
  • T - 必须具有明确的截止期限(Time-bound),要写清楚改进项的截止时间,在到期之后进行验收。
相关文章
|
数据采集 存储 DataWorks
DataWorks产品使用合集之如何查看数据质量中心(DQC)的规则执行记录
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
189 3
|
运维 监控 安全
如何写复盘报告
该内容是关于IT公司中复盘报告的撰写指南,主要包括五个步骤:1) 还原故障基本信息,如定级参考;2) 描述处理过程,按时间顺序列出关键点;3) 评估影响范围,可能涉及业务基线;4) 确定故障原因,从直接原因到根本原因层层分析;5) 分析责任归属和事件级别。复盘还包括故障回顾,提出优化措施以减少重演。内容还提到了一些参考资料,用于深入学习稳定性保障。
650 0
|
消息中间件 SQL 运维
AIOps 智能运维:比专家经验更优雅的错/慢调用分析工具
本文主要介绍ARMS 错/慢 Trace 分析功能基本原理; 该功能能够覆盖哪些异常 Trace 根因; 最后会介绍一些最佳实践案例。
50150 120
|
11月前
|
大数据 数据处理 计算机视觉
MATLAB的条件语句
【10月更文挑战第5天】本文详细介绍了MATLAB中的条件语句与循环结构,包括`if`、`elseif`、`else`、`switch`语句以及`for`和`while`循环。通过多个示例代码,展示了如何使用这些控制结构实现逻辑判断和重复操作。文章还讨论了条件语句与循环的结合使用、嵌套结构、性能优化建议,并提供了具体的应用场景和实例分析。最后,总结了这些控制结构的重要性,并提出了未来的学习方向。
|
机器学习/深度学习 人工智能
8个特征工程技巧提升机器学习预测准确性
8个特征工程技巧提升机器学习预测准确性
8个特征工程技巧提升机器学习预测准确性
|
12月前
|
机器学习/深度学习 人工智能 运维
智能化运维:未来之路
在数字化浪潮中,智能化运维成为企业提升效率、保障服务稳定性的关键。本文将探讨智能化运维的发展趋势,包括自动化工具的应用、大数据与机器学习技术的融合,以及人工智能如何重新定义运维工作。通过分析实际案例,揭示智能化运维如何助力企业实现高效、可靠的IT服务管理。
|
人工智能 运维 监控
智研未来,直击 AI DevOps,阿里云用户交流日杭州站来啦!
在这个技术日新月异的时代,云上智能化DevOps正以前所未有的速度推动企业创新边界,重塑软件开发的效率与品质。 为深入探索这一变革之路,我们诚邀您参与我们的专属闭门技术沙龙,携手开启一场关于云上智能化DevOps的挑战、实践与未来的展望之旅。
7604 0
智研未来,直击 AI DevOps,阿里云用户交流日杭州站来啦!
|
Linux
Linux如何查询较大文件的方法
【5月更文挑战第8天】Linux如何查询较大文件的方法
1155 0
|
机器学习/深度学习 人工智能 运维
智能化运维:AIOps在未来网络管理中的应用与挑战
【5月更文挑战第4天】随着人工智能和大数据技术的飞速发展,智能化运维(AIOps)正逐渐成为IT运维领域的革新力量。本文探讨了AIOps在现代网络管理中的关键作用,分析了其在故障预测、自动化处理、以及提升决策效率方面的潜力。同时,文章还针对AIOps实施过程中面临的技术挑战、数据隐私及安全性问题进行了深入讨论,并提出了相应的解决策略。通过实际案例分析,本文旨在为读者提供一个关于AIOps在网络管理领域应用的全面视角。
|
运维 监控 网络架构
云服务的稳定性
【4月更文挑战第29天】云服务的稳定性
420 2