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

主要内容
新手和高手在应对故障时有什么不同?大厂在处理线上故障时,有哪些可以学习借鉴的地方。
一、遇到线上故障,新手和高手的差距在哪里?
新手遇到复杂的线上故障,不知道该怎么下手
遇到复杂的故障,通常新手就不知道该怎么下手了。
对高手来说,会在实践中总结一套自己解决问题的步骤,遇到问题,会按照解决问题的步骤有条不紊地去分析和解决。
新手遇到线上故障,会想着马上修复 Bug
当发现 Bug 后,尤其是自己的 Bug,很多开发人员马上就想到了 Bug 的修复方案,迫不及待就要去写代码打补丁了。
而对于高手来说,会首先对故障进行评级,看对用户的影响范围,如果是核心业务,大面积影响用户,那么当务之急是恢复生产,然后再考虑如何去修复 Bug。
新手遇到线上故障,不知道如何快速定位到 Bug 在哪
对于比较复杂的线上故障,新手通常不知道从哪里下手,看日志看代码都看不出所以然,而高手却总能快速地定位到 Bug 在哪。
新手解决完线上故障后,下次可能还会发生类似故障
对于线上的故障,如果不找到产生的原因,那么下一次还会发生类似的故障,甚至比以前还更严重。
高手对于线上故障,会仔细分析 Bug 产生的原因,从根本上解决,避免类似的故障再次发生。
二、大厂都是怎么处理线上故障的?
通过看这些大厂的故障处理流程,你会发现,大厂其实是把高手解决故障的方式,变成故障处理的流程和操作手册,并且通过反复地故障演习。不断练习和强化对故障处理的流程,让系统更健壮,让新手也可以快速上手,做到高效处理线上故障。
至于具体的处理流程,其实大同小异。
- 首先,对故障进行评级。
- 其次,要马上恢复生产,避免进一步损失。
- 另外,要分析故障原因,修复故障。
- 最后,记录故障发生处理全过程,分析故障原因,提出后续改进方案。
三、大厂处理线上故障处理机制有哪些值得借鉴的地方?
故障报警和轮值机制
要做到最快速度处理线上故障,关键就是要让正确的人第一时间就可以去响应。正确的人就是对故障服务最熟悉的人,通常就是这个服务的开发人员。
实战演习
实战演习就是频繁地对故障进行演练,来测试平时做的这些方案是不是真的可行,这样遇到真正的故障,才不至于手忙脚乱不知道如何应对。
其中最有名的就是 Netflix 的混乱猴子军团。
也有人把这样的实战演习叫“混沌工程”。
日志记录和分析工具
对于软件来说,线上出现问题,分析日志记录是最简单有效的定位问题方式。
还有一些其他好的实践,例如说新功能上线时,灰度发布的策略。通过开关控制,先让一小部分用户使用,如果出现故障,马上关闭开关,避免影响。
四、其他摘抄
- 恢复生产并不一定需要修复 Bug,可以用一些临时性的方案,比如说回滚系统到上一个稳定的版本;重启服务看是否能恢复正常。
- 一种常见手段就是先重现 Bug,因为有了重现的步骤,就等于将问题的范围,缩小到重现 Bug 的这几步操作相关的代码上,就很容易发现问题在哪。
- 还有一种手段就是分析错误日志,通过错误日志,可以马上定位到错误在哪里。
总结
今天带你一起学习了线上故障的处理。对于线上故障的处理,基本原则就是要先尽快恢复生产减少损失,然后再去查找原因,最后不要忘记总结复盘。
边栏推荐
猜你喜欢

基于层次分析法的“内卷”指数分析
The second step through MySQL in four steps: MySQL index learning

Fork/Join框架

44. 通配符匹配 ●●● & HJ71 字符串通配符 ●●

Learning and Exploration-Introducing Baidu Statistics to the Website

要有遥不可及的梦想,也要有脚踏实地的本事

CAS:474922-26-4,DSPE-PEG-NH2,DSPE-PEG-amine,磷脂-聚乙二醇-氨基供应

知乎高赞:拼多多和国家电网,选哪个?

Introduction of three temperature measurement methods for PT100 platinum thermal resistance

微信jsApi调用失效的相关问题
随机推荐
IDEA以多端口启动同一个服务项目
darknet source code reading notes-02-list.h and lish.c
从-99打造Sentinel高可用集群限流中间件
软件测试高频面试题真实分享/网上银行转账是怎么测的,设计一下测试用例。
dotnet core 输出调试信息到 DebugView 软件
R语言ggplot2可视化:使用ggpubr包的ggbarplot函数可视化柱状图、color参数指定柱状图的边框的色彩
企业调查相关性分析案例
.NET云原生应用发展论坛--8月7日邀你一起云上探索
RecyclerView 缓存与复用机制
集群监控——Zabbix使用
R语言使用ggpubr包的ggsummarystats函数可视化柱状图(通过ggfunc参数设置)、在可视化图像的下方添加描述性统计结果表格、palette参数配置柱状图及统计数据的颜色
NLP未来,路在何方?从学术前沿和业界热点谈起
《机器学习理论到应用》电子书免费下载
PT100铂热电阻三种测温方法介绍
js函数传参是按值传递还是按引用传递?
哈夫曼树(暑假每日一题 15)
基于大学生内卷行为的调查研究
如何让 JS 代码不可断点
电源测试系统-ATE电源测试系统-ACDC电源模块测试系统NSAT-8000
Fork/Join框架