线上问题的一些思考

521 阅读1分钟

当我们遇到线上问题时,大体思路不是立马去定位问题原因,而是怎么去恢复系统到正常状态,使损失最小化.

以下是线上问题的一些预防或者解决方式(包含不仅限于)

自动化测试

周期性的进行自动化测试

日常巡检

可以是人工或者系统自身进行检查

值班

出问题有相应的人可以及时处理

故障自愈系统

其实对于一个特定的问题,可以把人操作转为脚本,触发相应故障时候进行自愈

扩容

针对容量不够

重启

有些不是必现的bug,重启能快速的恢复正常使用

回滚

回到上一个稳定版本

降级

比如数据库访问不了了,那就使用缓存

熔断

如果访问外部服务失败太多,那就暂时不访问了

限流

限制系统间的访问频率

隔离

把影响最小化

备份/失效转移

拿备份提供服务

告警

异常的话进行告警

监控

增强系统的可观测性

复盘

进行问题的总结和以后预防

测试

发布之前进行充分的测试,包括单元测试,集成测试