近2周,SCE就发生了2次严重事故

一次是上周,SCE1.0的前端Nginx,因为一个下载的应用将vm的内存吃满,直接造成所有nginx全部挂掉,影响了1.0线上所有的app,故障时间25分钟。

一次是今天,SCE2.0的前端Router,由于一个并发更新upstream的bug,造成所有router全部挂掉,而刚好master也出现了问题,循环调用router,导致router不断挂掉,故障断断续续持续了近1个半小时,影响2.0线上的所有App。

接连出现这样的2次严重事故,肯定会使其它部门的同学对SCE平台的稳定性持有异议,也可能也会间接影响未来其它应用的接入。

整个SCE团队都应该思考并反思一下,为什么会出现这样的事故?

我想从以下几个方面做一些总结:

  • SCE平台的主要模块没有进行完整深入细致的测试,导致线上在某个时刻由于某个原因触发某个bug,直接导致模块挂掉
  • SCE平台的核心模块(Router/Master)提前没有预案,没有备用方案,一旦出问题后,只能根据线上的情况去修复,无法快速切换到另外一种方案上
  • 整个SCE2.0平台太过追求技术完美,太过自动化了,一旦核心模块出问题,无法及时手动介入干预,只能通过其他辅助办法去绕开相应的逻辑
  • 目前SCE平台的模块耦合性太高,master在其中担任了重要角色,一旦master出现故障,整个平台都会有问题,Router都没法重启,目前3.0版本已经在改进这个问题了
  • SCE团队的服务意识和故障紧急处理能力有待提高,当整个平台都挂掉后,所有人首要考虑的问题是,尽快找到故障点,并及时恢复,先不要纠结于找问题的具体原因,使应用恢复正常才是最紧急最重要的事情!
  • 开发、运维同学平常对处理故障的准备不足,平时不带工作笔记本回家,出问题时,使用家里笔记本拨号vpn,没有权限下载代码或者没有权限访问某个url,在最紧急的时候,在这上面白白浪费了很多时间。

今年SCE计划开放公有云服务,目前看来,我们的平台在很多方面还有不少的问题,需要整个团队在近期尽快整改,解决掉以上问题。

私有云都搞不好,都会出这么严重的事故,未来公有云上的应用会更杂更乱,就更难把控了。

出现问题不可怕,可怕的是出问题后,只是简单的把问题解决掉,不反思,不总结经验,不整改!如果是这样的话,那么以前的坑就白踩了,以后还会出类似的问题的!

总之,希望SCE团队能从最近的两次事故中总结教训,大家共同努力,保证平台的稳定性,逐步增强其它产品线使用SCE平台的信心。