常见故障问题处理SOP:
项目场景:适用与在云应用运行的服务,基于现在互联网K8s应用部署
1.系统不可用(全局故障)
例如:某个应用突然不可用了页面无法打开,页面一直转圈,可以思考一下是那些方面带来的原因(网关、数据库、应用是否负载过高这些方面入手)
原因分析:
提示:这里的原因分析只是笔者遇到的情况分析
- 应用的阿里云服务器网关问题,域名无法解析到服务
- 数据库资源占满(一般这种情况查看数据慢sql导致,由于新的版本上线,没有考虑到test 、uat 和实际prod 的数据差异,导致上线查询导致数据库慢sql重复被请求,一般这种可以从预警服务邮件可看到)
- 某个特殊情况,没有考虑到突然增大的流量导致,服务器资源占满,cpu和内存都被占满,没有空闲资源接受新的请求。
解决方案:
提示:这里应对上面原因分析的解决方案
例如:
- 运维组做好监控配置
- 完善各种服务资源监控,运维组K8s做好扩容机制。
2.部分功能不可用(部分异常)
例如:某个应用部分功能使用,部分空能不能使用,通常发生于新的功能分支上线,或者项目第一次上线,其中包括一些低级错误导致,一般是横跨好几个系统的交互,从别的系统拿数或取数。
原因分析
提示:这里的原因分析只是笔者遇到的情况分析,只是提供大概思路
网络环境问题
1.功能调用链路涉及的服务配置环境是否正常(test 和 生产发生替换),导致服务不可用,一般发生于,ci/cd 建设中或者没有建设的项目中。
解决方案:
提示:这里应对上面原因分析的解决方案
例如:
- 完善发版机制,Jenkins和K8s的基础建设。
- 做好生产、测试、uat 之间的环境隔离。
- 发版人员和代码人员发版前仔细检查
3.部分功能错误(代码逻辑错误)
例如:新功能上线之后的问题,开发人员的代码逻辑漏洞产生的错误。
处理流程
1.限流或停止错误功能入口和后续流程处理
1.确认逻辑影响范围上报leader
2.下游服务因为代码逻辑错误,是否停止接入
3. 开发组确认是否灰度发布(上一个版本)
2.修复分支修复数据
测试和开发复现逻辑错误,修复逻辑问题,hotFix分支发版本
3.回滚或发修复分支