写点什么

提升运维稳定性的利器——故障复盘

  • 2017-03-28
  • 本文字数:2601 字

    阅读完需:约 9 分钟

为什么要进行故障复盘

稳定性是运维工作的基石。故障,也就是稳定性问题是悬在各位运维从业者头上的一把达摩利斯克之剑。稳定性一旦出现问题,运维的其它工作基本也就算前功尽弃了。那么如何提升稳定性是所有运维从业者都绕不开的话题。

那么出现了稳定性问题怎么办?没关系,有老中医坐诊,药到病除。给您「望闻问切」后,开出了一味药方,药方很简单,但是一剂猛药,按时按量服用,但可药到病除。药方上书只有两字:「复盘」。这剂药该怎么用呢?先别急,做为一个坐台多年的老中医,先从为什么开这剂方子说起。

什么是故障复盘

先来介绍一下这个方子,即什么是复盘?

复盘源于围棋术语。复盘也称「复局」,指对局完毕后,复演该盘棋的记录,以检查对局中招法的优劣与得失关键。这样可以有效地加深对这盘对弈的印象,也可以找出双方攻守的漏洞,是提高自己水平的好方法。

回到「故障复盘」本身也是一致,就是对故障发生及处理过程重新「过」一遍。对这个过程的进行和思考进行回顾,反思和探究,实现稳定性及能力的提升。

怎么进行故障复盘

为什么开出的是「复盘」这剂方子?大致来讲,这剂方子可以有以下疗效:

  • 避免出现同样或同类的故障。让出现过的故障处于「可控」又或「收敛」的状态;
  • 从出现的故障中可以提炼、固化一些流程,提升效率的同时,同样或同类也可以避免出现同样的故障;
  • 从「蒙着打」变成「瞄着打」,让我们所有的动作更有目的性,清楚自己的目的是什么。
  • 看清故障背后的问题,找出故障背后真正的原因。
  • 发现解决问题的新思路或者新方法;
  • 更加客观的认清业务当前稳定性的现状,以便寻求最佳的解决办法。

「复盘」这剂药要该怎么服用呢?这剂药服用方法很简单,药品的使用说明上都有写,其实也就四个字母:RASA。

我们再翻看药盒的背面,上面写着有这剂药的禁忌:

  • 该药品需要在病状发作时 2 日内复用,如不及服用,可出现药力减弱甚至出现负作用;
  • 该药品处方药。不可单独 1 人服用。需要在专业医生的指导下使用;
  • 请严格按照「RASA 法」吞服。如使用此药品单个疗程不见效果,请在专业医生指导下反复使用;

那么什么是「RASA」呢?简单点说服用「复盘」这剂药的整个过程。即 Review(回顾),Analyze(分析),Summary(总结),Action(行动) 。来来来,我们来逐一来讲解一下这四步要该怎么走。

Step 1:Review

即回顾故障发生的整个过程。这一步是最简单,但同时也是最重要的。这一步只需要完整的记录下故障的发生、发现、原因定位、决策、处理、预案执行、回滚、故障解决等的关键人与关键时间点。这一点记录一定要尽可能的准确,这一步会直接关系到本次复盘的效果。为了保证信息尽可能的客观、准确,所以需要按照这剂药的禁忌上所写:

  • 故障发生并解决后尽快着手开始复盘,以避免因时间较长出现的偏差。按老军医的建议,最好是在故障出现后两日内完成;
  • 同样为了避免出现信息偏差,建议参与故障处理的相关人员、角色共同参与复盘;

Step 2:Analyze

即分析故障的根本原因及故障处理过程中可以优化点。这一步需要本着抽丝剥茧、根因分析(RootCause)原则来进行开展。这个过程大概可以分成

  • 故障的原因是什么?
  • 再往下想一层,这个故障发生是因为其它原因导致的吗?
  • 再往下想一层,这是故障发生的根本原因吗?如果不是,请继续往下想一层
  • 其次我们还需要分析在处理故障过程中是否有需要优化的点。比如处理时间是否可以缩短?如何缩短?

Step 3:Summary

即总结本次故障及处理故障的过程。简单点说就是,故障进行定性、故障定责及总结本次故障带来的经验教训。

  • 为什么要对故障进行定性?简单点说有以下几个方面:
  • A. 通过故障定性,评估对业务带来的影响、损失及范围;
  • B. 通过故障定性,我们可以更加有序、科学的投入不同程度的资源来解决不同级别的问题;
  • C. 跳出本次故障本身,更抽象性的看待同级别、不同级别故障的共性或差异,以期更加系统化的解决有普实性的共性问题;
  • 故障定责这个就比较清晰了。即谁或哪个团队对本次故障负主要责任及次要责任。做到边界清晰、权责对等;
  • 由本次故障带来了哪些经验教训。包括得失的体会,以及是否有规律性的东西值得思考。
  • 除了上述之外,在总结这一步,还需要完善以下信息:
  • A. 故障的故障发生到最终解决的时长;
  • B. 监控是否发现?
  • C. 是否业务可用性是否受到影响

Step 4:Action

即对上面的分析、总结确定进行后续相关的改进、优化的落地措施。所以制定的动作及措施都需要符合 SMART 原则,即:

  • Specific:即改进项。我们需要改进、优化的单项、指标是什么?
  • Measurable:即验收标准。指定改验收标准是什么?
  • Attainable:即改进项是否可以达到。避免出现一些假大空、无法落地的改进;
  • Relevant:即要与其他改进具有一定的相关性。即尽可能避免出现孤立的改进;
  • Time-bound:即预期解决时间。这个时间建议最长不要超过三个月,避免改进流于形式;

除了 SMART 之外,还需要用 5W1H 原则进行补充:

  • 明确相关改进项的负责人。负责人可以有多个,但主要负责人有且只能有一个。即这个人需要对这个改进项的落地全权负责。当然,这个负责人的指定也需要在权责对等的基础之上。
  • 后续改进项的状态如何?是在准备?进行中?还是完成?

同时,在所有的改进项未关闭前,需要周期性的对后续改进进行跟进、确认。最终改进的结果与验收标准的贴合度,是评价复盘效果最好指标。

实战

某业务在业务高峰期出现异常,导致业务关键指标下跌超过 30%。从表面上来看是业务在高峰期触发了程序的 BUG 导致,修正掉这个 BUG 即可解决问题。

但我们通过复盘发现了该业务基础技术结构耦合过重导致业务自愈能力弱、部分应急响应机制流程缺失、多个业务关键节点存在单点或弱备份等多种较为严重的问题。

后续我们通过多次针对此故障的复盘,并持续更有针对性的进行改进。使得同类型故障从原来的发生到恢复需要 15~30 分钟提升到目前的 1~3 分钟内由程序自愈解决。

总结

我们通过使用故障复盘这把利器,更加系统化的解决业务问题的同时,也提升了整个团队的战争力。当然,故障复盘这剂药虽说是剂猛药,但还是需要坚持服用才能看到明显效果的。

作者简介

胡杨,目前就职于阿里巴巴移动事业群网络运维部。高级运维专家。多年工作于大型互联网领域。对大型互联网运维体系中的容灾体系设计、自动化、性能优化、troubleshoot 等方面有着丰富的经验及独道的见解。


感谢木环对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-03-28 17:254538

评论

发布
暂无评论
发现更多内容

喜报!博睿数据荣获数据猿“年度创新服务企业奖、年度创新服务产品奖”

博睿数据

可观测性 博睿数据 运维监控

JNPF低代码平台的表单设计器

高端章鱼哥

低代码 表单设计 JNPF

阿里云PolarDB开发者大会首度召开,让数据库开发像“搭积木”一样简单

阿里云瑶池数据库

数据库 云计算 阿里云 云原生 开发者大会

centos中部署调用matlab程序教程

百度搜索:蓝易云

Linux centos 运维 matlab 云服务器

OpenHarmony图形HDI基础适配及点屏

Laval小助手

语音数据集在智能语音搜索中的应用与挑战

来自四九城儿

原型设计软件Axure RP 9 for Mac 中文正式破解版下载

iMac小白

Royal TSX for Mac(强大的远程管理软件)v6.0.2激活版下载

iMac小白

基于Ubuntu下安装kubernetes集群指南

百度搜索:蓝易云

云计算 Linux Kubernetes 运维 云服务器

Microsoft Office 2019 for Mac中文正式版下载(office全家桶)

iMac小白

JetBrains DataGrip 2023 Mac v2023.3.2中文激活版下载

iMac小白

详解KubeEdge EdgeMesh v1.15 边缘CNI特性

华为云开发者联盟

开发 华为云 容器网络 华为云开发者联盟

Sketch for mac(专业矢量绘图设计软件)v99.1中文激活版

iMac小白

供应链共舞:数字化协同推动服装企业商品计划的无缝衔接

第七在线

Spring Boot 整合 Camunda 实现工作流

EquatorCoco

Java 后端 开发 springboot

FlowJo 10 for Mac(流式细胞分析软件)v10.4激活版

iMac小白

一款轻量级、基于Java语言开发的低代码开发框架,开箱即用!

互联网工科生

Java 低代码 数字化 开发框架 JNPF

Unity3D代码混淆方案详解

雪奈椰子

国外服务器租用:如何在预算内选择最优服务

一只扑棱蛾子

国外服务器

ClickHouse分析效率翻倍提升,揭秘奇点云对归因分析场景的优化实践

先锋IT

华为云DTSE助力无锡云数IoT系统:打造超可靠数字化之源

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 华为云DTSE

一文了解字节跳动消息队列演进之路

字节跳动云原生计算

大数据 云原生 消息列队

OpenHarmony开源GPU库Mesa3D适配说明

Laval小助手

OpenHarmony

克服传统企业数字化转型的十大阻力

天津汇柏科技有限公司

数字化转型

克魔助手抓包教程:网络数据包分析利器

NTFS Disk by Omi NTFS for mac (NTFS 磁盘管理器)v1.1.4中文版下载

iMac小白

微信公众号短链实时获取阅读量、点赞数爬虫方案(不会Hook可用)

不在线第一只蜗牛

爬虫 微信公众号 工具分享 hook

一、nextjs如何使项目工程化(c-shopping电商开源)

Geek_9da61c

开源 eslint prettier husky next.js

“一次不过、免费再考” 限时活动开启,快来考取亚马逊云科技认证吧!

亚马逊云科技 (Amazon Web Services)

培训与认证

uniapp中uni-popup的用法

百度搜索:蓝易云

Linux 运维 uniapp 云服务器 uni

数字先锋| 让群众健康更有“医靠”,天翼云为喀什中医院开出“上云妙方”!

天翼云开发者社区

云计算 大数据

提升运维稳定性的利器——故障复盘_语言 & 开发_胡杨_InfoQ精选文章