工程师从容应用生产事故之道

生产事故,对于程序员来说并不陌生,通常参加工作的人都遇到过,这些事故包括:有的是系统bug,有的是疏于维护,有的是因为操作不当造成的,有的是数据量变大负载不够,服务器被打挂的,有的是安全问题打穿数据库的……反正各式各样的生产事故。极客时间里,卖桃者说与京东数科高级架构师冯忠旗聊过这个话题,那么面对这些事故,冯老师的给出的建议是这样的:首先,日常工作中建设好团队体系很重要,清楚团队的重要项目是什么,重要岗位有哪些,重要岗位是否设置了AB岗;其次,培养团队的风险防范意识和事故预防能力,及时复盘。
《如何从容地应对生产事故》中讲到了7个核心思想

1、事故洞察
对负责的系统要了如指掌,同时有多个渠道来源帮助程序员第一时间发现事故,比如实时监控报警系统、客诉、第三方依赖系统、基础服务支撑部门等。如果在大促期间或者请求量比较大的时间点,安排7*24小时和on-call机制,on-call要求程序员随叫随到,大家都知道,一日踏进程序员大门,紧急问题要得紧急处理,24小时开机,公司报警短信成了你的前置短信,不管你是在度假,电脑是随身必带的,如果你的男朋友或者女朋友是程序员,请理解他们的工作;题外话~

2、事故分析
确保第一时间发现生产事故,接着不是去定位问题发生的根本原因,而是评估影响范围和严重程度,及时止损是关键考虑问题;这一点很重要,因为很多程序员一上来就会立马定位问题并想着如果解决问题,这个要注意,因为可能你定位的过程中,可能已经过去了半个小时,事故会扩大化,损失范围会扩大。所以评估是第一重要的事情;我吃过这样的亏多么痛的领悟

3、事故升级
冯老师说严重问题才升级到上级领导,但是我们的要求是事故无大小,都要第一时间上报给你的上级领导知晓,第一,领导会根据严重程度协调高层资源,加快解决问题的速度;第二、在多种解决方案下,需要领导做决策;第三、第一时间告知领导,至少不失告知责任;

4、事故应对
如果在长期的运维过程中不断积累和沉淀,结于80%的常见问题是可以提前应对的,比如OOM内存溢出,虽然不知道什么原因导致的,但是可以通过立即重启恢复服务;当然通过抛出的异常等定位具体的问题等;

5、事故复盘
事故解决之后,要做的是复盘事故发生和解决的详细过程,包括发生时间、参与人、详细处理过程、结束时间等环节。如果事故是临时方案,后序要制定长期解决方案并上线;复盘不是问责。而是回顾解决过程,总结经验、下一次遇到时能够从容应对,此外分析事故的特点,寻找能够提前避免的预防方案;

6、完善方案池
将事故记录在特定的公司内网中,至少作为部门内部可以共享的资源,一旦有同样的问题,其他同事可以快速解决问题,不断的补充完善这些资源;

7、故障演练
研发团队需要不定期的做事故演练,在京东内部是比较重视的,特别是618和双11是必不可少的,这些事故演练包括数据库故障演练、应用故障演练、网络故障演练等一系列极端情况的事故模拟,当然除了极端情况,也要有不同服务重要节点发生故障时,如何处理,比如提前做好应急预案也是特别有必要的;

一般掌握了这些方法,能应对生产事故更从容一些,避免事故面前乱了分寸,减少事故带来的影响。
有备无患
工程师从容应用生产事故之道_第1张图片

你可能感兴趣的:(java基础)