稳定性经验分享:如何应对生产事故

简介: 研发团队需要不定期做故障演练,包括数据库故障演练、应用故障演练、网络故障演练等一系列的极端情况下的故障模拟,确保真正出现问题的时候,能够沉着应对。

1. 事故洞察

首先,你得对自己负责的系统了如指掌,同时有多种渠道来源,能够帮助你第一时间发现生产事故,比如实时监控预警系统、客诉部门、基础服务支撑部门、第三方服务依赖方等等。

如果核心业务交易量大、交易分布时间相对平均、业务面向 C 端用户多、业务重要程度高,需要特别安排 7*24 小时监控室 + 工程师轮值 on-call 机制,on-call 要求轮值工程师在一定时间内随叫随到,做好生产环境出现紧急情况的应对准备。

2. 事故分析

如果确保了第一时间能够发现生产问题,接下来最重要的事情不是去定位问题发生的根本原因,而是要先去分析事故的影响范围和严重程度,比如是否会产生资损风险、资损的金额可能有多大、影响用户的范围有多大、是否非常严重等等。

因为研发人员的特点是发现问题会习惯性地排查问题的原因,而且一般都会觉得自己可以快速解决掉问题。可往往真实情况是,一个技术难点陷进去之后需要很长时间,就算这个难点解决了,却发现又出现了第二个问题。这就像电视剧里面通过线索排查案情一样,问题一环套一环,结果是时间可能已经过去了 30 分钟,问题也没有解决,这个时候生产事故已经扩大影响范围。

3. 事故升级

如果事故属于严重程度,需要立刻进行事故升级,通知相关业务方和上级领导。

及时向上级汇报有三大好处:

第一,领导会根据严重程度协调高层资源,进而加快解决问题的速度;

第二,没有完美的生产事故解决方案,很多时候需要领导在不同方案中做决策;

第三,就算这次事故没有处理好,第一时间告知领导之后,至少不失告知责任。

需要注意的是,在给领导汇报生产事故的同时,最好提供一些事先应对预案,并将不同预案的风险和优缺点如实告诉他,请他来决策和支持。

4. 事故应对

如果你在长期的应用运维过程中不断积累和沉淀,那么,对于 80% 的常见问题你是可以提前做出应对的。

比如,Java 系统产生 OOM 内存溢出,虽然不知道是什么原因导致的,但是可以通过立即重启来恢复服务;再比如数据库连接池占满,导致其他服务不可用,如果没有最好的方案,可以从数据库层面杀掉耗时最长的慢连接。

5. 事故复盘

事故解决之后,需要做的事情是复盘事故发生和解决的详细过程,包括发生时间、参与人员、详细处理过程、结束时间等环节。如果事故的应对方案是短期临时方案,还需要进一步针对此次事故制定长期解决方案,并且快速上线。

复盘最主要的目的不是问责,而是回顾解决事故的整个过程,总结经验,下一次遇到类似问题能够更加快速从容地应对。此外还能通过复盘分析事故的特点,寻找能够提前避免的预防方案,因为最重要的事情还是需要做到事前预防,而不是事后补救。

6. 故障预案

这里所说的方案池更像是历史生产事故记录表,也就是生产事故预案,你可以把经常发生的事故的应对方案放到应急方案池中,作为团队的共享资源。一旦发生这类问题,就算是新入职的同事也可以参考方案池快速解决问题。

如果再有新的事故发生,就再次把新的方案融入到方案池,这样方案池就越来越丰富,从而不断积累形成宝贵的经验。通过这种方式,生产系统的新问题一定会越来越少。

7. 故障演练

研发团队需要不定期做故障演练,包括数据库故障演练、应用故障演练、网络故障演练等一系列的极端情况下的故障模拟,确保真正出现问题的时候,能够沉着应对。


当你掌握了这些方法,就能从容地应对生产事故,避免或者减少生产事故所带来的影响。

目录
相关文章
|
3月前
|
机器学习/深度学习 人工智能 运维
探索运维的无形之链:从反应到预防的转变
【8月更文挑战第12天】在数字化时代的浪潮中,运维领域正经历着一场静悄悄的革命。本文将深入探讨这一转变的本质,包括它如何影响组织结构、决策过程及运维人员的日常职责。文章旨在揭示,通过对运维模式的革新,企业能够如何更好地预测和防范潜在的系统问题,从而实现从被动应对到主动预防的飞跃。
|
6月前
|
消息中间件 监控 前端开发
研发人员如何做好日常工作的稳定性保障
本文介绍了一些研发人员如何做好稳定性建设的工作事项
224 0
|
6月前
|
监控 容灾 测试技术
如何保障线上产品质量?
如何保障线上产品质量?
238 0
|
算法 Java 业务中间件
研发人员如何才能在做业务的过程中自我增值?
如何才能在做业务的过程中不再是资源一样被消耗而是像资产一样自我增值?如何成长?如何高效率地成长?如何让自己的成长走在环境要求的前面? 基于以上这些问题,本文将依次阐述以下内容: 先从“人的本质”入手(第二章节),接着探讨“人的成长”的本质(第三章节),最后再探讨业务和技术的一般规律及应对策略(第四、第五章节)。 需要注意的是,以下内容受限于个人能力和经验有限,在描述规律的过程中,可能会存在维度的缺失;或者当前描述的规律所涉及的维度并不是某些读者认知中的重点,因为事物不同的维度在不同角色和级别的人的认知中重要程度不同。
261 1
研发人员如何才能在做业务的过程中自我增值?
|
运维 监控 测试技术
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.1 游戏业务稳定性保障——5.1.1新游上线稳定性保障实践(4)
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.1 游戏业务稳定性保障——5.1.1新游上线稳定性保障实践(4)
157 0
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.1 游戏业务稳定性保障——5.1.1新游上线稳定性保障实践(4)
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.4故障演练与紧急预案设计
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.4故障演练与紧急预案设计
194 0
|
弹性计算 运维 安全
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.1 游戏业务稳定性保障——5.1.1新游上线稳定性保障实践(1)
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.1 游戏业务稳定性保障——5.1.1新游上线稳定性保障实践(1)
240 0
|
弹性计算 运维 监控
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.1 游戏业务稳定性保障——5.1.1新游上线稳定性保障实践(2)
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.1 游戏业务稳定性保障——5.1.1新游上线稳定性保障实践(2)
203 0
|
弹性计算 监控 负载均衡
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.1 游戏业务稳定性保障——5.1.1新游上线稳定性保障实践(3)
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.1 游戏业务稳定性保障——5.1.1新游上线稳定性保障实践(3)
166 0
|
存储 运维 监控
如何做好线上服务质量保障
上述的内容只是一个引子,因为高可用和线上服务的稳定性有密切的关系。而软件测试或者说质量保障的工作范畴,不仅仅在测试环境,线上环境的服务质量保障,也是我们需要关注的重点。
如何做好线上服务质量保障