身边发生故障经历

Author Avatar
WoodyXiong 11月 24, 2018
  • 在其它设备中阅读本文章

未完待续

前言

刚刚走出学校就目睹了一些误操作产生的故障,确实给我造成了很大的心理阴影。这些故障真的不是开玩笑,如果放在大企业还好,如果是创业公司,可能会因为一些故障直接倒闭。据一些业内人士所述,很多时候研发可能负责好几个项目,任何一个项目里的子服务如果有问题都很可能发生重大故障,而他们作为过来人,或多或少都经历过或者造成过一些故障。

作为一个小白研发,一定要对代码有着敬畏之心,很多十分微小的不会注意到的错误都很可能会酿成十分重大的故障。例如我听说过的研发开发新功能时,由于使用自己写的框架,在对数据库进行update操作的时候,没有加上where条件,导致一个用户使用新功能,整个表直接被刷掉,而这个表是公司的命脉。另外在更新网站的配置文件时,直接登录线上服务器用Vim工具修改配置文件,而配置文件是一个php数组,配置少了一个逗号,导致整个网站挂掉很长时间。

我也有一些亲身经历,比如在使用Navicat复制数据库数据时,不小心将目标库和源库弄反了,导致源库直接被目标库覆盖,幸好不是线上的数据库。我问过师兄这些问题的方法,他们会将线上数据库和本地数据库用不同的软件去操作,比如本地用Navicat,而线上用phpMyAdmin。虽然这种方法很傻,但是对误操作之前有足够的提醒,正是反映了对代码的敬畏之心。

为了降低以后我身边发生故障的风险,稍微总结下如何减少故障概率以及故障的解决方案。

预防故障

做好cicd

做好code review

Sql着重review

升级必须统一走发布平台

权限划分

重要项目多人牵头

进行重要系统应急演习

故障处理

监控大规模变更

有小规模测试平台

数据库的冷备热备恢复

代码的回退

故障分析

复盘

案例宣传学习