软件工程之美学习笔记三十八 37 | 遇到线上故障,你和高手的差距在哪里?

《软件工作之美》材料地址:https://time.geekbang.org/column/article/97219

遇到线上故障,新手和高手的差距在哪里?

新手遇到复杂的线上故障,不知道该怎么下手

  • 第一步,评估影响范围;
  • 第二步,试图重现问题;
  • 第三步,临时方案和终极方案;
  • 第四步,风险评估及持续优化。

新手遇到线上故障,会想着马上修复 Bug

恢复生产、降低损失是第一要务,修复 Bug 是其次的。

新手遇到线上故障,不知道如何快速定位到 Bug 在哪

关键在于通过有效的手段,逐步缩小问题范围,直到找到 Bug在哪里。

  • 重现Bug
  • 分析错误日志
  • 缩小问题范围
  • 排除法

新手解决完线上故障后,下次可能还会发生类似故障

仔细分析 Bug 产生的原因,从根本上解决,避免类似的故障再次发生

大厂都是怎么处理线上故障的?

把高手解决故障的方式,变成故障处理的流程和操作手册,并且通过反复地故障演习。不断练习和强化对故障处理的流程,让系统更健壮,让新手也可以快速上手,做到高效处理线上故障。
首先,对故障进行评级。
其次,要马上恢复生产,避免进一步损失。
另外,要分析故障原因,修复故障。
最后,记录故障发生处理全过程,分析故障原因,提出后续改进方案。

大厂处理线上故障处理机制有哪些值得借鉴的地方?

故障报警和轮值机制
实战演习
日志记录和分析工具

参考

《SRE:Google 运维解密》
《阿里如何应对电商故障?》
《滴滴是如何高效率处理线上故障的?》
《以毒攻毒: Google、Amazon、Netflix 如何用混沌工程控制系统风险 》

我的留言

这是ITIL要解决的问题。我觉得最主要还是从三个方面来看。一是从流程上,对于事件管理、问题管理、变更管理、服务等级管理等,要有明确的流程。二是要有合适的工具,比如ticket系统,CMDB,监控工具、日志平台等。三是从人员组织来看,要有一线、二线和三线团队的支持,根据所创建的ticket的严重性和紧急性,给予不同level的支持。当然这也是目前流行的devops要解决的问题。

你可能感兴趣的:(IT技术,学习笔记,软件工程之美学习笔记)