6.1 海恩法则和墨菲定律
海恩法则
- 每一起严重事故的背后,必然有29次轻微事故和300起未遂先兆以及1000起事故隐患。
墨菲定律
- 需要我们对线上服务产生的任何征兆,哪怕是一个小问题,也要刨根问底
- 问一下:为什么发生?发生了怎么应对?怎么恢复?怎么避免?
6.2 线上应急的目标、原则和方法
6.2.1 应急目标
- 快速恢复服务,避免或者减少故障造成的损失,避免或减少对客户的影响。
6.2.2 应急原则
- 快速止损。
应第一时间恢复系统,而不是彻底解决问题。
有明显的资金损失时,要在第一时间升级。 - 应急SOP
快速启动应急过程和快速决策止损方案 - 问题升级
如果当前应急负责人在短时间内不能解决问题,则必须进行升级处理 - 保留现场
应急过程中,在不影响用户体验的前提下,要保留部分现场和数据
6.2.3 线上应急的方法和流程
引言:总体目标是恢复问题
在任何阶段首先想到的应该是恢复问题。
恢复问题不一定能定位问题,也不一定有完美的解决方案,但这些都可以通过留底后续分析复盘。6个阶段
发现问题、定位问题、解决问题、消除影响、回顾问题、避免措施1.发现问题
通常通过自动化的 监控和报警 系统来实现。
通常会对以下3个 层面进行监控:
系统层面(cpu、io等)、
应用层面(tp99响应时间、接口成功率等)、
资源层面(DB、缓存、MQ等)2.定位问题
常见的需要考虑的问题:
问题系统最近是否进行了上线?
依赖的系统最近是否有上线?
业务最近是否有运营变动,业务量是否有波动?
等等3.解决问题
切记:在没有明确原因前,不要使用各种可能的办法来尝试修复问题,这样可能既没有解决问题,还会引出新的问题。4.消除影响
除了技术、运营的修复外,还要想好 话术 来安抚客户。5.回顾问题
6.避免措施
6.3 技术攻关的方法论
首先要考虑的3个问题
- 最近是否有 变更、升级和上线?
- 之前是否遇到过相同或者类似的问题?
- 是否有相关领域的专家?如 安全 性能 数据库 大数据 业务
针对第 1 个问题
- 上线过程中导致的问题占所有线上问题的 30% 以上
- 要能够第一时间降级、回滚。每一次上线都要有回滚措施。
针对第 2 个问题
- 沉淀SOP
- 积累技术经验
6.6 JVM 提供的监控命令
jad
反向编译btrace