首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >运维干货|如何通过故障复盘提升业务稳定性和连续性?

运维干货|如何通过故障复盘提升业务稳定性和连续性?

原创
作者头像
覃春善
修改2021-07-22 16:53:28
2.8K0
修改2021-07-22 16:53:28
举报

什么是故障复盘?

复盘,即反思。它最先出自围棋术语,指对局完毕后,复演该盘棋的记录,以检查对局中招法的优劣与得失关键。

故障复盘,就是对故障发生及处理过程重新review,进行思考、反思和探究,确定根因,落实改进措施,实现对稳定性和能力的提升。

为什么要做故障复盘?

瑞·达利欧的《原则》这本书写得不错,书中关于人活着的意义写到,人活着就是为了不断进步。那么该怎么进步?我认为可以分为外部因素与内部因素。外因是外部环境的影响,而内因的影响,我认为可以推动自己快速进步的方法就是复盘。

故障复盘则是推动业务系统稳定性、应急响应组织能力提升的高效手段。

怎么做好一次故障复盘?

复盘前

运维团队内部提前梳理,提高复盘效率

  • 回顾过程:时间、人物、操作、效果?按时间维度,回顾故障从开始到完全修复的过程中,故障关键处理人都做了什么操作,为什么要这么做,有什么效果。
  • 问题识别:围绕故障处理机制、故障处理过程,思考自己所在的团队,与故障相关周边团队都存在哪些问题,有什么可以改进的
  • 改进措施:围绕失败的问题,思考可以做哪些改进措施

拉通复盘干系人

围绕复盘目标确定参会人员,包括开发、运维、QA,涉及故障相关团队主要负责人、技术leader等,尽量让各方参与者最高leader级别对别,避免因层级问题影响到复盘效果。

提前与主要参与者沟通好会议时间,确定会议主题。

材料准备

  • 故障解读材料,描述故障开始到故障恢复过程中各个关键时间点的操作、效果。
  • 佐证的辅助材料,例如监控视图、报错截图等,尤其是涉及跨团队业务系统问题的时候。

复盘中

遵循回顾历程-识别问题-分析原因-制定改进措施的流程:

提前声明,避免甩锅、批评

故障复盘的目的是为了讨论问题,找出改进方案避免再次踩坑。最重要的是要敞开心扉,无所顾虑的暴露问题。会议开始前事先生命复盘讨论的主题、目的。对事不对人,避免形成批评会,如有必要,犯错的那个人不参与会议,或者有他人组织描述处理过程。

对于出现甩锅、批评的现象,会议组织人及时制止。

营造良好的复盘氛围

诚实:基于事实,勇于承认自己的问题;

开放:对事不对人,在尊重他人的前提下,分享自己的观点与看法;

当责:每个团队或个人多从自身找问题,结果导向,主动提出支持与帮助;

围绕两类关键的目标研讨

目标

回顾历程

识别问题

分析原因

改进措施

如何让修复过程更加高效

回顾修复的历程,从发现到解决的全部关键过程 按照故障解决过程的时间顺序回顾,每个团队也可以分享自己事先总结的自己的问题

围绕过程,找到问题点: 能不能更快,更及时的发现这个问题? 为什么响应时间过长? 为什么修复时间过长? 有没有自动识别故障、修复故障的工具?为什么信息同步不及时 是否有不符合流程规范的问题? ……

围绕识别的问题,进行时深度探讨,鼓励相互提问、相互激发,以便找到各个问题的根本原因

围绕找到的原因,梳理与总结可以改进的方向,以及制定具体落地的项目计划

如何杜绝此类问题再次发生

回顾故障是如何出现的,如何从源头一步步地不受控制,发展成后面的问题的 按照职能顺序,产品、设计、开发、运维、测试、QA分享

围绕职能的问题:为什么没能阻止这类故障的发生?采用什么手段未来能够阻止此类情况发生? 总结这个故障的本质是什么,这类问题其他相关业务是否可能碰到?

围绕这个环节的问题,进行深度探讨并达成共识

综合制定最优的解决方案

FAQ

还可以从如下这几个问题进行思考

  • 是否有监控到,并准确推送告警
  • 优化故障获知和故障定位的时间
    • 从故障发生到我们知道的时间是否可以优化得更短?
    • 定位故障的时间是否可以更短?
    • 故障是否有主动监控到?
    • 故障定位是否有工具支持?
    • 有哪些地方可以做到自动化?
  • 优化故障的处理方式
    • 处理耗时是否可以压缩?
    • 现网是否还有复发风险?
    • 故障恢复时,是否能做到恢复动作科学性?避免客户二发故障。
  • 优化开发过程中的问题
    • Code Review 和测试中的问题和优化点。
    • 软件架构和设计是否可以更好?架构上是否有改进空间?
  • 稳定性能力提升
    • 稳定性保障方案是什么?

1. 回顾历程阶段

这个阶段只需完整的记录下故障的发生、发现、原因定位、决策、处理、故障解决等的关键人与关键时间点。记录一定要真实、客观、准确,否则将执行影响本次复盘的效果。

注意事项

  • 故障发生并解决后尽快着手开始复盘,以避免因时间较长出现的偏差。最好是在故障出现后两日内,节假日过来第一天完成;
  • 不要进入到原因的分析和解决措施指定的环节,先尽量只谈事实,以便研讨不被带偏,或者带入到一个细节中;
  • 不仅仅分享自己做了什么,还可以分享当时的想法和感受,以便帮我们理解行为背后的原因,使之对事故的理解更为全面透彻;

2. 识别问题阶段

聚焦关键问题进行讨论,避免过多的问题讨论影响会议进程。

3. 分析原因阶段

分析故障的根本原因及故障处理过程中可以优化的点,这个过程需要我们本着抽丝剥茧、根因分析原则来开展。

  • 围绕一个问题,每个人整理自己的想法,提出挑战点与建议。
  • 归档汇总大家的质疑与建议,针对疑点一一讨论解决方案。

4. 改进措施阶段

对前面的分析,总结确定进行后续相关的改进、优化的落地措施。制定的动作及措施符合“SMART”原则:

S:具体的改进项,需要改进和优化点或者指标,避免笼统;

M:可以衡量的验收标准,需要确定验证标准内容;

A:可以实现达成目标,避免出现一些假大空、无法落地的改进措施;

R:尽可能与其他改进措施有一定的相关性,避免出现孤立的改进;

T:有明确的截止期限,预期改进时间不宜过长,避免改进流于形式,一般不超过3个月;

注意事项:

  • 复盘的组织者和引导发挥“仲裁”作用,保证制定出来的措施从全局看“最优”,“公平合理”,,尽可能避免出现“相互推诿”的情况;
  • 可把措施分临时方案,根本性解决方案,让问题从系统上、机制上就得到解决;
  • 避免掉入过多改进计划陷阱,团队根本没有时间完成这么多的改进计划,需要排优先级,同时超出团队能力范围的改进要避免,避免无法落实;

复盘后

复盘后最关键的是要让改进措施能落地,后期落地难可能碰到如下几类问题:

  • 解决措施是靠人规避的,例如加强宣导,提升安全意识,加强规范执行等:尽量从系统、机制、工具、平台层面找到方法,降低人为尤其误操作问题;
  • 改进措施涉及的系统多,跨度大,流程长,例如涉及到技术架构的调整与优化:要从项目管理的角度推动落地,找到技术和进度的onwer,分布进行,按优先级推进,不断review,及时调整;
  • 改进措施需要推动外部门进行配合的:卷入上层管理者的参与,定期汇报,问题及时升级,确保达成;

知识卷宗归档,便于学习

每个复盘会议结束后,会议的组织者可以整理一个这次复盘的总结文档,传宗归档,供其他团队学习,给组织带来经验的传承,一份好的复盘总结文档要包括如下的内容:

  • 分享了事故处理过程,尤其是处理故障的过程中都掉进过什么坑里,尤其是有哪些认为因素给处理结果带来了影响;
  • 如果定位故障问题的,改故障触发的因素都有哪些,这样我可以思考我的业务是否也需要进行规避;
  • 如果从各个环节来解决问题,以及从这个过程中短期、长期措施是如何平衡的;
  • 如何挽回,补救的措施都有哪些;

有没有故障复盘材料模板?

【故障复盘内容】

  • 故障时间: 开始时间-恢复时间 ,影响时长
  • 故障影响业务
  • 故障级别
  • 责任归属
  • 原因分类
    • 发布变更
    • 配置变更
    • 程序BUG
    • 系统环境问题
    • 容量问题
    • 其他
  • 发现渠道
    • 主动监控
    • 被动监控
  • 故障内容
    • 故障现象描述
    • 故障影响描述
    • 故障原因分析
    • 故障处理过程
    • 故障恢复方法
  • 改进措施
    • 改进措施
    • 计划完成时间
    • 负责人
    • 验证方法
    • 验证人

结语

复盘不局限故障层次,可以是生活或工作很多方面,它就像一面镜子,往往能照出事件真实的样子。”吾日三省吾身”我们很多时候都在忙于往前跑,真的偶尔需要回头看看走过的路,总之需要时不时的认知自己,反省自身,总结规律,提升自我!

[声明:本文大部分内容摘自内部文章,基于作者本身的理解加以补充以及少部分修改。

内部链接 https://km.woa.com/group/29820/articles/show/386477 原文作者:alvinwu(吴新明) ]

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是故障复盘?
  • 为什么要做故障复盘?
  • 怎么做好一次故障复盘?
    • 复盘前
      • 运维团队内部提前梳理,提高复盘效率
      • 拉通复盘干系人
      • 材料准备
    • 复盘中
      • 提前声明,避免甩锅、批评
      • 营造良好的复盘氛围
      • 围绕两类关键的目标研讨
      • FAQ
      • 1. 回顾历程阶段
      • 注意事项
      • 2. 识别问题阶段
      • 3. 分析原因阶段
      • 4. 改进措施阶段
      • 注意事项:
    • 复盘后
      • 知识卷宗归档,便于学习
  • 有没有故障复盘材料模板?
  • 结语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档