软件工程之美37讲——遇到线上故障,你和高手的差距在哪里?

软件工程之美37讲——遇到线上故障,你和高手的差距在哪里?

线上故障处理流程

graph LR A[评估影响范围]-->B[试图重现问题] B-->C[临时方案和终极方案] C-->D[风险评估及持续优化]

处理故障要点

先恢复生产,再修复bug

恢复生产并不一定需要修复 Bug,可以用一些临时性的方案,比如说回滚系统到上一个稳定的版本;重启服务看是否能恢复正常。当然在恢复之前,还要尽可能保留当时的日志、故障场景的截图、内存的 Dump(把当前内存数据保存的静态文件)等信息,用来后续查找故障原因使用。遇到线上故障,新手需要时刻牢记:恢复生产、降低损失是第一要务,修复 Bug 是其次的

如何快速定位到 Bug

  • 重现 Bug。
  • 分析错误日志,通过错误日志,可以马上定位到错误在哪里。所以对于平时写程序,无论是客户端还是服务端,注意收集错误日志是非常重要的,可以帮助你在排查问题的时候节约不少时间。
  • 缩小问题范围。

分析Bug产生原因

高手对于线上故障,会仔细分析 Bug 产生的原因,从根本上解决,避免类似的故障再次发生。

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

大厂其实是把高手解决故障的方式,变成故障处理的流程和操作手册,并且通过反复地故障演习。不断练习和强化对故障处理的流程,让系统更健壮,让新手也可以快速上手,做到高效处理线上故障。

graph LR A[故障进行评级]-->B[恢复生产]-->C[分析故障原因]

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

  • 故障报警和轮值机制
  • 实战演习
  • 日志记录和分析工具
posted @ 2021-01-21 21:31  段志轩  阅读(9)  评论(0编辑  收藏