当前位置:网站首页>【软件工程之美 - 专栏笔记】37 | 遇到线上故障,你和高手的差距在哪里?
【软件工程之美 - 专栏笔记】37 | 遇到线上故障,你和高手的差距在哪里?
2022-08-04 17:49:00 【if...else...】
专栏信息
专栏作者:宝玉
专栏发布平台:极客时间

主要内容
新手和高手在应对故障时有什么不同?大厂在处理线上故障时,有哪些可以学习借鉴的地方。
一、遇到线上故障,新手和高手的差距在哪里?
新手遇到复杂的线上故障,不知道该怎么下手
遇到复杂的故障,通常新手就不知道该怎么下手了。
对高手来说,会在实践中总结一套自己解决问题的步骤,遇到问题,会按照解决问题的步骤有条不紊地去分析和解决。
新手遇到线上故障,会想着马上修复 Bug
当发现 Bug 后,尤其是自己的 Bug,很多开发人员马上就想到了 Bug 的修复方案,迫不及待就要去写代码打补丁了。
而对于高手来说,会首先对故障进行评级,看对用户的影响范围,如果是核心业务,大面积影响用户,那么当务之急是恢复生产,然后再考虑如何去修复 Bug。
新手遇到线上故障,不知道如何快速定位到 Bug 在哪
对于比较复杂的线上故障,新手通常不知道从哪里下手,看日志看代码都看不出所以然,而高手却总能快速地定位到 Bug 在哪。
新手解决完线上故障后,下次可能还会发生类似故障
对于线上的故障,如果不找到产生的原因,那么下一次还会发生类似的故障,甚至比以前还更严重。
高手对于线上故障,会仔细分析 Bug 产生的原因,从根本上解决,避免类似的故障再次发生。
二、大厂都是怎么处理线上故障的?
通过看这些大厂的故障处理流程,你会发现,大厂其实是把高手解决故障的方式,变成故障处理的流程和操作手册,并且通过反复地故障演习。不断练习和强化对故障处理的流程,让系统更健壮,让新手也可以快速上手,做到高效处理线上故障。
至于具体的处理流程,其实大同小异。
- 首先,对故障进行评级。
- 其次,要马上恢复生产,避免进一步损失。
- 另外,要分析故障原因,修复故障。
- 最后,记录故障发生处理全过程,分析故障原因,提出后续改进方案。
三、大厂处理线上故障处理机制有哪些值得借鉴的地方?
故障报警和轮值机制
要做到最快速度处理线上故障,关键就是要让正确的人第一时间就可以去响应。正确的人就是对故障服务最熟悉的人,通常就是这个服务的开发人员。
实战演习
实战演习就是频繁地对故障进行演练,来测试平时做的这些方案是不是真的可行,这样遇到真正的故障,才不至于手忙脚乱不知道如何应对。
其中最有名的就是 Netflix 的混乱猴子军团。
也有人把这样的实战演习叫“混沌工程”。
日志记录和分析工具
对于软件来说,线上出现问题,分析日志记录是最简单有效的定位问题方式。
还有一些其他好的实践,例如说新功能上线时,灰度发布的策略。通过开关控制,先让一小部分用户使用,如果出现故障,马上关闭开关,避免影响。
四、其他摘抄
- 恢复生产并不一定需要修复 Bug,可以用一些临时性的方案,比如说回滚系统到上一个稳定的版本;重启服务看是否能恢复正常。
- 一种常见手段就是先重现 Bug,因为有了重现的步骤,就等于将问题的范围,缩小到重现 Bug 的这几步操作相关的代码上,就很容易发现问题在哪。
- 还有一种手段就是分析错误日志,通过错误日志,可以马上定位到错误在哪里。
总结
今天带你一起学习了线上故障的处理。对于线上故障的处理,基本原则就是要先尽快恢复生产减少损失,然后再去查找原因,最后不要忘记总结复盘。
边栏推荐
猜你喜欢
随机推荐
Create Sentinel high-availability cluster current limiting middleware from -99
网络靶场监控系统的安全加固纪实(1)—SSL/TLS对日志数据加密传输
npm配置国内镜像(淘宝镜像)
图解LeetCode——899. 有序队列(难度:困难)
CAS:474922-26-4,DSPE-PEG-NH2,DSPE-PEG-amine,磷脂-聚乙二醇-氨基供应
localstorage本地存储的方法
Learning and Exploration-Introducing Baidu Statistics to the Website
树莓派通过API向企业微信推送图文
C. LIS or Reverse LIS?
关于大学生内卷的文献综述
Kotlin挂起函数原理是什么
darknet source code reading notes-02-list.h and lish.c
Cron表达式
小程序笔记1
《中国综合算力指数》《中国算力白皮书》《中国存力白皮书》《中国运力白皮书》在首届算力大会上重磅发出
Error when using sourcemap for reporting an error: Can‘t resolve original location of error.
IDEA以多端口启动同一个服务项目
Introduction of three temperature measurement methods for PT100 platinum thermal resistance
小程序笔记2
R语言glm函数使用频数数据构建二分类logistic回归模型,分析的输入数据为频数数据(多个分类指标对应的阴性样本和阳性样本的频数数据)、weights参数指定频数值






![[Web Automation Test] Quick Start with Playwright, 5 minutes to get started](/img/68/36dd8ef4a4073f03d5e5dad91be20d.png)


