故障review的一些总结
故障review的一些总结
故障review的目的
- 归纳出现故障产生的原因
- 检查故障的产生是否具有普遍性,并尽可能的保证同类问题不在出现,
- 回顾故障的处理流程,并检查处理过程中所存在的问题。并确定此类问题的处理方法论。使得即便以后出现了同类的问题,也有明确的方法论来指导
- 标明后续改进措施及落实时间点
- 经验总结和分享
故障的级别定义
不同公司对于故障的级别有不同的定义,一般会有P1,P2,P3这几类故障,故障的严重级别依次降低。一个可能的定义如下:
- P1 公司主站提供的服务出现异常,广告展示出现问题等。比如对大量用户(3%)的正常使用产生影响,比如%3的下单失败
- P2 公司主站提供发服务缓慢,内部IT系统出现重大故障灯
- P3 公司内部系统出现故障,对外服务一切正常。
参与故障review的人员
不同的故障级别需要不同层级的人员参与review, 虽然不一定那么死板,但是一定要秉承着越严重的故障,越需要更高级别的人在场,并不是让他们来批评,而是让他们以示重视,并起到监督、督促改进的作用。
- P1 故障处理人员,系统负责人,相应的QA(DBA可选)受影响的团队的相关主要人员, 总监, VP
- P2 故障处理人员,系统负责人,相应的QA(DBA可选)受影响的团队的相关主要人员, 总监
- P3 故障处理人员,系统负责人,相应的QA(DBA可选)受影响的团队的相关主要人员
故障的升级和跟新时间
故障的级别并不是一成不变的。有可能故障刚刚发生的时候,观察影响可能觉的是P2,但是随着对故障的了解可能发现其实是一个P1级别的故障。当然也可能相反。
故障的升级或者降级的意义,并不仅仅是为了记录错误的严重性,或者说为了KPI的考核,它的最主要的左右在于影响故障处理人员一个可以动员人员的范围和获得的权限的大小 。比如一个P1故障出现了,故障处理人员可以为了处理故障,可以立即申请重要服务器的root权限,服务器管理员必须无条件审批通过,但是可能P3情况下服务器管理员就不会审批通过,而是让适合有root权限的人来完成操作。
从故障的发现,到故障的review完成,一直需要持续的跟新故障的进度。越是严重的故障越要更频繁的跟新故障的进度。这样好方便相关人员了解故障的处理情况。
故障review的时间点
考虑到人们总是懒惰的,因此为了保证流程和规范能够有效的执行下去,并确保具有「分享价值」的故障可以及时的被分享出去,公司从流程层面应该强制不同级别的故障必须在故障处理完成以后的多少个小时内review完成。
比如P1级别的故障必须在故障处理完成的12歌小时之内review完成。P3级别的故障必须在故障的36个小时之内review完成
故障review的准备工作
故障review的准备工作,主要是为了使得故障参与者提前准备好在review过程中所需要发表的内容。这样会使得review过程高效一些,也可以避免在review过程中可能会遗漏的东西。
故障review的详细步骤
故障review的详细步骤比如包含:从故障开始产生,到故障被发现、然后故障的具体处理过程、到故障处理完成的详细过程,需要包含日期、时间、事件、人员等其他有效信息。
主要是为了能够通过详细的过程描述,方便找出我们在发现故障和处理故障过程中暴露出的问题,做为后续改进计划的依据。一个可能的例子如下:
yyyy-M-dd hh:mm 故障因xx开始
yyyy-M-dd hh:mm xx 发现故障 (或收到报警)
yyyy-M-dd HH:mm xx 确认问题真实存在,通知xx上线处理,并通报故障
yyyy-M-dd HH:mm xx 查看监控及日志,确认影响范围及故障发生时间点
yyyy-M-dd HH:mm xx 确认问题原因,通知xx开始回滚(或修bug)
........ ....
yyyy-M-dd HH:mm xx 确认线上功能已经恢复
yyyy-M-dd HH:mm xx 开始修复数据
yyyy-M-dd HH:mm xx 确认故障已经结束
故障的影响:xxx系统xxx服务受影响,大约影响3%的对外服务
故障持续xxx时xxx分
故障review的结论
故障review的结论,主要是明确故障下面的问题:
- 故障产生的原因
- 代码bug?设计缺陷?需求缺陷?历史脏数据未考虑到?系统有后门被人错用?
- 为什么上线前Dev 自测没发现?
- 是没有设计review么?没有code review 么?
- 是case 没有执行么?
- 为什么上线前PM/QA测试未能发现?
- 是没有测试环境么?
- 是流程/规范未执行?
- 是没有进行codediff?
- 依赖第三方不受控?
- 是误操作?
- 是否存在没有及时发现故障的问题,以及原因是什么
- 线上操作后没有检查 功能、监控、日志 的问题么?
- 监控不完整么?项目过程中我们没有写业务监控么?不了解如何加监控么?
- 报警阈值设置不合理么?
- 人员未响应报警么?线上日志大家每天没有人看么?
- 业务量太小没关注的问题?
- 是否存在故障处理缓慢的问题,以及原因是什么
- 没带电脑回家?在外面么?
- 没有看监控定位故障时间?
- 定位问题过程合理么?场景难复现?
- 改代码比较耗时间么?没有测试环境验证么?
相应的改进计划
故障的review完成必须要产出改进计划,同时要确保改进计划细化,有截止日志,并且有监督人员。
- 改进计划是什么?
- 改进开始时间,改进截止日期?
- 监督人是谁?
故障review的一些总结的更多相关文章
- 一个磁盘I/O故障导致的AlwaysOn FailOver 过程梳理和分析
下面是我们在使用AlwaysOn过程中遇到的一个切换案例.这个案例发生在2014年8月,虽然时间相对久远了,但是对我们学习理解AlwaysOn的FailOver原理和过程还是很有帮助的.本次FailO ...
- 从一次线上故障思考Java问题定位思路
问题出现:现网CPU飙高,Full GC告警 CGI 服务发布到现网后,现网机器出现了Full GC告警,同时CPU飙高99%.在优先恢复现网服务正常后,开始着手定位Full GC的问题.在现场只能够 ...
- Code Review最佳实践
我一直认为Code Review(代码审查)是软件开发中的最佳实践之一,可以有效提高整体代码质量,及时发现代码中可能存在的问题.包括像Google.微软这些公司,Code Review都是基本要求,代 ...
- Code Review最佳实践(转)
我一直认为Code Review(代码审查)是软件开发中的最佳实践之一,可以有效提高整体代码质量,及时发现代码中可能存在的问题.包括像Google.微软这些公司,Code Review都是基本要求,代 ...
- Java进程故障排查思路及步骤
故障场景 Java进程出现问题,通常表现出如下现象: Web应用响应时间长/超时,甚至不响应 CPU使用率极高/低,频繁出现Full GC,甚至OutOfMemoryError 响应时间长.超时,甚至 ...
- 放弃等待,故障到来:少一个 await 引发的 tcp 连接泄漏故障
更新:后来升级至 .NET Core 2.2 Preview 3 ,并将 System.Net.Http 升级至 4.3.4 之后没出现这个问题,问题与 https://github.com/dotn ...
- Code Review怎样做好
一.背景 最近随着交易业务快速扩展,研发组内新项目及新成员越来越多,如何做好Code Review,把控研发人员开发代码质量很是关键. 对于大部分业务团队,谈到Code Review就会面露哀状: ...
- 从一次故障聊聊前端 UI 自动化测试
背景 事件的起因在于老板最近的两次"故障",一次去年的,一次最近.共同原因都是脚手架在发布平台发布打包时出错,导致线上应用白屏不可用. 最神奇的是,事后多次 Code Review ...
- 从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)
从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...
随机推荐
- ++a和a++的区别
另: short s = 4; s = s + 1; // 编译不通过.因为编译器无法判断等号右边的运算结果是否依然在等号左边的short类型范围内,容易丢失精度. s += 1; // 编译通过.+ ...
- 和transformjs一起摇摆
写在前面 记得以前facebook做过一款HTML5游戏.开场动画是一块软体类似豆腐的东西一起摇摆.类似的效果如下面的gif所示: facebook当时使用的是createjs下的子项目easeljs ...
- AlloyRenderingEngine继承
写在前面 不读文章,只对代码感兴趣可以直接跳转到这里 https://github.com/AlloyTeam/AlloyGameEngine然后star一下,多谢支持:). 前几天发了篇向ES6靠齐 ...
- 一个成功的BI项目实施需要注意哪些?
BI是所有IT系统中最适合于管理层和决策层使用的信息系统. ERP等各类信息系统中的数据,只有通过BI才能将隐藏在数据中的信息挖掘出来.转化为事实. BI的实施也需要依据企业情况进行“定制”.如何实施 ...
- Linux 命令学习笔记
文件基本操作 ls ,rm , mv , ln ls ls [option] [files] 不带参数时,列出当前工作目录的内容 $ls 列出指定目录的内容 ls dir1 或个别文件 l ...
- Linux 学习
远程登录Linux(05) 文本方式远程: putty SecureCRT winSCP SshClient图形方式远程:Xmanager Xming ifconfigps -ef | gr ...
- 仿喜马拉雅实现ListView添加头布局和脚布局
ListView添加头布局和脚布局 之前学习喜马拉雅的时候做的一个小Demo,贴出来,供大家学习参考: 如果我们当前的页面有多个接口.多种布局的话,我们一般的选择无非就是1.多布局:2.各种复杂滑动 ...
- 记录我的点点滴滴从此刻做起——iOS开发工程师
作为一个iOS工程师,想写博客也是有原因的:首先有这个想法(写博客的想法)也是因为想到自己都从事iOS开发快两年了,怎么也只会堆代码,写view,技术真的很一般,感觉都要被淘汰了:基于以上原因,自己也 ...
- 转载:Spring+EhCache缓存实例
转载来自:http://www.cnblogs.com/mxmbk/articles/5162813.html 一.ehcahe的介绍 EhCache 是一个纯Java的进程内缓存框架,具有快速.精干 ...
- Basic EEG waves 四种常见EEG波形
Source: https://www.medicine.mcgill.ca/physio/vlab/biomed_signals/eeg_n.htm The electroencephalogram ...