如何快速解决线上故障?

现代企业中软件系统体量越做越大,导致故障产生的原因千奇百怪,同时正所谓在当前快节奏的研发迭代过程中,线上故障的产生几乎是不可避免的。遇到故障并不可怕,大胆求证,找到原因,快速解决即可,事后总结经验教训,避免同样的问题再次踩坑。因此本文不谈任何具体故障,只是从大的系统方向上分析,试图总结出一些通用性的方法和规则。

如何快速解决线上故障?

一、假如故障产生了,如何快速发现线上问题?

1、系统监控,监控cpu、内存、io、线程、流量、gc等等。

2、服务监控。吞吐量、延时。

3、业务监控。访问量、错误率。

4、关联系统报错,上游系统或者下游系统出现问题。

5、开发、运维例行检查日志。

6、客服人员接到客诉反馈,再将问题转给技术人员。

7、预发环境和生产环境的回归测试,尽量完善。

8、生产环境执行自动化测试,争取比客户更早发现问题。

9、灰度发布机制。

10、故障台机制。

二、如何快速解决线上问题?

1、优先恢复系统运行。

2、在不影响业务前提下,发现问题后,快速解决,快速上线。

  • 版本回滚。
  • 比如rn、h5热更新方式,native则需要发布紧急升级版本。
  • 服务扩容、服务降级和服务熔断。

3、通过客服人员,对客户进行引导,如何操作,尽量快速恢复用户正常操作。

4、对客户发送短信,引导操作,以及致歉,降低客诉。

三、如何避免线上重大问题?

1、引入代码review机制。

2、引入单元测试,尤其新代码应该100%单测覆盖。

3、引入静态代码扫描机制。

4、灰度发布。

5、持续维护回归用例。

6、实现自动化测试(selenium、airtest),常规发布运行线上自动化测试。

7、严格遵守代码规范,设计原则,加强代码健壮性。

8、启动合理的问责机制(合理的奖惩机制或者和kpi挂钩),提高相关人员对线上故障的重视。

9、修复后一周内举办故障复盘会议,总结教训,避免再犯同样错误。

源自公众号  三国测



留言