惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
The GitHub Blog
The GitHub Blog
云风的 BLOG
云风的 BLOG
Engineering at Meta
Engineering at Meta
Google DeepMind News
Google DeepMind News
aimingoo的专栏
aimingoo的专栏
Recent Announcements
Recent Announcements
A
About on SuperTechFans
U
Unit 42
MyScale Blog
MyScale Blog
J
Java Code Geeks
博客园_首页
Blog — PlanetScale
Blog — PlanetScale
D
Docker
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 司徒正美
量子位
月光博客
月光博客
G
Google Developers Blog
V
V2EX
博客园 - 聂微东
宝玉的分享
宝玉的分享
IT之家
IT之家
Vercel News
Vercel News

Java技术经验分享

系统稳定性建设实践总结【转载】 | Java技术经验分享 valine访问leancloud国际版异常,评论失效修复 | Java技术经验分享 匆匆忙忙的2021 | Java技术经验分享 聊一下换工作 | Java技术经验分享 IoT系列(2):WIFI设备常见配网方案介绍 | Java技术经验分享 IoT系列(1):什么是物联网 | Java技术经验分享 Java8特性2 - StreamApi | Java技术经验分享 Java8特性1 - lambda表达式&函数式接口 | Java技术经验分享 设计模式(5)-适配器模式 | Java技术经验分享 设计模式(4)-建造者模式 | Java技术经验分享 设计模式(3)-原型模式与浅拷贝和深拷贝 | Java技术经验分享 设计模式(2)-工厂模式图文介绍 | Java技术经验分享 设计模式(1)-带你了解3类8种单例模式 | Java技术经验分享 Java时间处理5---Java8中时区相关类库介绍 | Java技术经验分享 Java时间处理4---Java8中LocalDate、LocalTime、LocalDateTime介绍 | Java技术经验分享 Java时间处理3---Java8中Instant、Duration、Period、Clock介绍 | Java技术经验分享 一些有意思的问答 | Java技术经验分享 Nacos系列博客说明 | Java技术经验分享 菜鸡程序员的2019年度总结 | Java技术经验分享 Java中“附近的人”实现方案讨论及代码实现 | Java技术经验分享 Java时间处理2----时区TimeZone类方法探究(Java8以前) | Java技术经验分享 Java时间处理1----Date和Calendar方法探究(Java8以前) | Java技术经验分享 FastJson中JSONString、JavaBean、JSONObject、JSONArray的转换关系及API示例 | Java技术经验分享 2019.11软考软件设计师归来心得体会及复习备考指南 | Java技术经验分享 你还没用过“约定式提交”吗?那你赶紧来补补知识吧 | Java技术经验分享 教你如何看懂UML中的类图及类图中的关系 | Java技术经验分享 设计模式总览 | Java技术经验分享 萌新入门Github请看这里,学不会远程教 | Java技术经验分享 Hexo的工作原理探究 | Java技术经验分享 Hexo-theme-butterfly修改调整记录教程 | Java技术经验分享
生产故障处理SOP分享 | Java技术经验分享
文章作者: LarsCheng · 2022-09-08 · via Java技术经验分享

一、背景

在日常的需求变更和技术变更中,测试用例覆盖率很难达到100%,再加上变更过程中的各种原因,可能会导致生产环境出现故障。

针对生产故障处理,每位开发同学可能都会有不同的处理方式,如果处理方式得当,故障能够快速止血顺利恢复,反之可能会错上加错!!!

基于以往经验,在这里推荐一套通用的生产故障处理SOP,他可能无法帮你快速定位问题,但是可以尽可能缩短恢复时间,降低故障影响!

二、参考流程

阶段一:快速处理(故障发现–>故障止血)【1-5-15】

步骤 内容 说明 故障发现时间 注意点
步骤1 拉故障处理群、拉电话会议 先拉自己的直属Leader、运维人员 1min内 【第一时间执行!】,避免信息差!
步骤2 识别故障类型、影响范围 执行预案、快速恢复(兜底、降级、灾备等等) 5min内 【无法快速定位时】,直接进行步骤3
步骤3 梳理相关变更项(自身+上游) 执行变更回滚、故障止血恢复 10min内 【无法恢复故障时】,直接进行步骤4
步骤4 联系业务、运营进行业务恢复 通过产品侧、运营侧的业务手段止血 15min内

阶段二:排查恢复(根因定位–>故障恢复)

步骤 内容 说明 故障发现时间 注意点
步骤5 定位问题,根因排查 切勿在【阶段一】埋头查原因
步骤6 修复验证,故障恢复 做好验证再执行

阶段三:总结复盘(故障总结–>故障复盘)

步骤 内容 说明 故障发现时间 注意点
步骤7 梳理时间线、原因和处理方案等
步骤8 故障复盘,总结经验教训

三、总结

以上是基于 快速恢复快速止血 为宗旨的故障处理SOP,不同的业务和团队可参考其中的处理流程,但需要注意以下几点:

  • 信息同步:第一时间拉群同步信息,避免信息差
    • 很多时候,很多简单的问题都是因为信息差,开发盲目排查,导致故障升级,酿成大错!!!
  • 快速止血:率先考虑应急预案、降级、开关逻辑等止血操作,切记勿要闷头排查!!!
    • 开发的通病:遇到问题总是想要定位问题,此时一定要转变思想,应该第一时间进行止血操作,减少资损
    • 这里也需要加强日常开发中的稳定性意识,没有稳定性预案,可能当故障发生时只能通过回滚来恢复
  • 故障复盘:故障无法100%避免,所以一定要做好故障复盘,避免同类问题二次踩坑!
    • 吃一堑长一智,不怕犯错,但是不能犯同样的错

最后提一嘴,生产故障无法预知,无法避免,所以作为开发同学一定要 敬畏生产敬畏生产敬畏生产!!!