tonyli 2018-09-21
编辑 | 张婵
做运维工作一定不能捉急,要稳。
根据@大佬坊间八卦 9 月 19 日的微博,顺丰一名运维工程师在误删数据库以后被开除了。
根据微博内容显示,顺丰运维工程师在收到变更需求后,按照操作流程要求,登陆生产数据库跳转机,通过 navicat-mysql 客户端管理工具,连入 SHIVA-OMCS 的 RUSS 库进行操作。但在操作过程中,该工程师错选了 RUSS 数据库,打算删除执行的 sql,在选定删除时,因其操作不严谨,光标回跳到 RUSS 库的实例上,在未看清所选内容的情况下,便通过 delete 执行删除。同时,他忽略了弹窗提示,直接回车,导致 RUSS 库被删除。因运维工作人员不严谨的操作,导致 OMCS 运营监控管控系统发生故障,该系统上临时车线上发车功能无法使用并持续了约 590 分钟。同比 9 月 5 日的 929 条临时车需求,此次故障对业务运营产生了严重的负面影响。
顺丰对事件作出的分析为:此次事件反映出运维工作人员对高风险操作的风险意识不足,在生产环境执行高风险变更操作时不严谨,导致数据库的误操作,造成公司成产系统故障。
最后顺丰的处罚是与该运维工程师解除劳动合同,并在顺丰科技全网通报批评。
运维工作者或多或少都经历过或听说过删库跑路的事件,所以说做运维工作一定不能捉急,要稳。年轻人总有第一次的 rm-rf 操作,之前也有人留言说过,现在敲 rm-rf 都会手抖。毕竟一旦发生失误,后果不堪设想。
该事件也引起了很多人的讨论,在这里跟大家分享知乎上一位资深互联网从业人员(作者:qcin,链接:https://www.zhihu.com/question/295314440/answer/495189539)的思考:
一直以来,我都觉得直接到生产线上敲命令是一种非常不好的习惯。我认为,一个公司的运维能力的强弱和你上线上环境敲命令是有关的,你越是喜欢上线敲命令你的运维能力就越弱,越是通过自动化来处理问题,你的运维能力就越强数据丢失有各种各样的情况,不单单只是人员的误操作,比如,掉电、磁盘损坏、中病毒等等,在这些情况下,你设计的那些想流程、规则、人肉检查、权限系统、checklist 等等统统都不管用了,这个时候,你觉得应该怎么做呢?是的,你会发现,你不得不用更好的技术去设计出一个高可用的系统!别无它法。
备份通常来说都是周期性的,所以,如果你的数据丢失了,从你最近的备份恢复数据里,从备份时间到故障时间的数据都丢失了。如果你要让你的备份系统随时都可以用,那么你就要让它随时都 Live 着,而随时都 Live 着的多结点系统,基本上就是一个分布式的高可用的系统。
如果你是一个技术公司,你就会更多的相信技术而不是管理。相信技术会用技术来解决问题,相信管理,那就只会有制度、流程和价值观来解决问题。
而如果一个公司在遇到事情之后就总是想到惩罚,不注意保护和发挥技术人员的能动性,技术导向也只能是一个口号。说到底不过一句话。一个团队或公司,要变成什么样子,跟她迈出的每一步都有关系。毕竟罗马不是一天建成的。