墨菲定律

墨菲定律:可能会出错的地方一定会出错,如果有多个可能,必定朝最坏的情况发展。大俗话:明明之前没有错,偏偏关键时刻就是出错了 —wikipedia

这是这两天遇到线上事故的总结

事故过程:

早前做了一个系统维护的解决方案,目的阻挡一些涉及维护系统的请求,避免造成数据上的错误。但因业务的扩展,并且多次升级维护都比较顺利,此方案并没有更新覆盖到一些新业务。

升级的过程为:停服务-> 备份数据库 -> 升级服务 -> 重启服务

升级后上线测试业务失败,经过半小时检测未找到原因(事后查出是三方升级包BUG,部分用户可以成功)。随后进行回滚操作,回滚后出现系统数据同步异常,检测发现在维护期间有部分新数据写入,回滚导致部分数据丢失。

好在没有对用户造成经济上的损失,但修数据耗费了大家一整天时间。

主要原因:
  1. 维护方案不是最新,但每次维护都在使用
  2. 升级后未经过灰度直接上线测试
  3. 线上测试发现问题后未检测是否有新数据就进行回滚
  4. 三方提供的升级包质检不合格

又一次用血泪印证了墨菲定律。