从GitLab事件谈我的经历

先上个图,给各位程序猿们拜个年

悲剧年年有,今年到GitLab家。著名的GitLab这几天在Tech界登上了头条,登上的原因是因为运维人员使用了rm -rf。我相信但凡老司机看到这个都会心有戚戚然。而新司机们则一脸的茫然。

GitLab的twitter公开账号在老司机们看来显得非常的喜庆。终于,你们家也见了狗了。我们来给国内看不到小鸟的司机们瞻仰一条。

这种事情出来都是程序猿,尤其资深程序猿喜闻乐见的。因为我想每个资深程序猿在其不同的历史阶段都有过一次或者若干次的蠢事。假如你还没有干过这么蠢的事情,你都不好意思说自己是资深的程序猿。至于因为某个人不小心删了点啥啥啥导致整个网站挂掉的,其实真的很常见。君不见有一年的圣诞节,亚马逊的运维人员删了数据库导致Netflix的服务挂了,而自己家的Prime Video却运转的非常的溜吗?不知道那个删除了亚马逊数据库的人是被开了还是被升级了呢?

在现实里,我们自己的东西被删除了大不了重来,产品数据被删除,应该怎么办呢?其实这个东西大家都知道,备份。但是备份并不是这样简单的东西。一般来说,如果你不懂得狡兔三窟是什么意思的话,那你最多也只是一个新司机。肯定没有经历过在线数据被删除,备份又无法恢复的场景。

在生产环境里的备份,有两点很重要,第一是,一个备份是绝对不够的。第二是,多个备份不但是需要的而且是需要物理隔绝的。解释一下来说,就是对核心数据首先需要一个在工作环境下的备份,其次还需要一个和工作环境无关的地方的备份。这基本上是对关键数据最低的要求了。

为什么我们需要一个在工作环境下的备份,因为这个备份在物理上和在线的数据近,恢复起来快。那为什么还需要一个物理上隔绝的备份呢?因为在线工作环境里面可能把这个备份也给搞掉了。这次如果我们看GitLab的事件,明显在同一个数据中心的备份出问题了,所以需要从另外一个数据中心拷贝那个物理隔绝的备份过来。这个备份的拷贝其实要花费很长时间。如果两个备份都坏了,那我想也只能自求多福了。

我在微软上班的时候,学到的另外一个特别深刻的教训就是:自动化。要相信一点,人都是会犯错的。手一抖就可能把不该删除的删除了,该删除的没有删除。这事情我们组当年干过。所以记得有一次大组party的时候,我们的distinguish engineer说过一句话,任何东西如果需要人去介入的,那都是一个bug。当时特别的不理解,经历过几次live site的事情以后就明白了。很多时候,蠢的不是机器,其实是人。人有的时候其实和猪是同类。不要以为自己是个例外,每个程序猿,在特定的时候,都和猪一样, no exception。GitLab如果说整个维护程序是通过机器自动进行的,包括备份和恢复都是自动进行的,我相信很多问题会少很多。

GitLab的这个过程还让我看到一点是我觉得它们从来没有在真实的场景中测试过他们的灾难恢复方案。当然,首先我不确定他们有没有成熟的灾难恢复方案。但是我想很多国内外的公司都是有的。在什么情况下先做什么再做什么。只是凡是没有经过检验的灾难恢复方案,最后肯定都是不行的。我有记忆中,就有若干次这样的事情。每次实际上都是有解决方案的,但是解决方案从来没实践过。最后的结果当然是这所谓的方案一点意义也没有。

其中最有意思的事情之一是机器们过热烧坏了电源,备用电源启动以后因为过载也被烧坏了,然后整个数据中心大面积停电。你想,这个设计的好好的电源,包括有自己的柴油发电机来支撑断电,有备用电源防止过载,最后还是被我们的Cosmos的客户的workload生生烧掉了。所以拿个事情之后,所有新的数据中心上线,都得先跑一边benchmark,烧一把机器看看能不能烧坏整个数据中心。

所以三俗总结来说就是,是人就会犯错,机器才靠谱。所以我们既不需要为犯错造成损失而自责,但也不要高估了自己的智商和能力。任何的东西,尤其是容错恢复解决方案,只有经过现场的实践检验,才是真的靠谱。

原文发布于微信公众号 - 飞总聊IT(feiitworld)

原文发表时间:2017-02-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏沃趣科技

错过“kubernetes存储系列”这门课,你肯定会后悔

前几天,我们就有说过,沃趣科技将陆续推出多系列特别值得期待的课程。今天,我们终于可以让第一个系列的第一期课程与你正式见面了。

11120
来自专栏FreeBuf

七个黑你的理由

常识告诉我们,用户是IT风险管理中最薄弱的一环,特别针对是一些“天真勇敢”的用户……但是黑客究竟是如何利用这种天真(缺乏保护意识)进入用户终端和公司账户的呢?他...

19570
来自专栏罗超频道

入口之争:浏览器的战史与未来

在上一篇文章里,笔者分析了国内浏览器的竞争状况。这篇文章,我们不妨将视线从“泥浆”中抽出来,了望下历史与远方。 一、浏览器世界战争史 第一次浏览器大战微软IE通...

32070
来自专栏大数据文摘

表情当密码,这事靠谱么?

277100
来自专栏云计算D1net

利用混合云备份省钱的7种方法

您完全能够保护您企业的数据,并能够在几分钟内恢复业务,而无需花费几天或几周的时间。 能够对您企业的数据带来影响的灾难并不一定都是类似好莱坞大片那样的灾害。更多的...

27930
来自专栏Java社区

这也许是史上最有趣的破解软件合集

51420
来自专栏数据和云

电信核心系统去小型机化-去“I”

去“IOE”是一个甚嚣尘上的话题,在经年的渲染之后,很多企业都在以各自的方式在进行演绎。 云和恩墨最近帮助用户实施了一个重要的“去I”项目,引用恩墨一线负责人...

26730
来自专栏维恩的派VNPIE

2018年vn.py项目计划(下)

2017年完成了大部分计划中的上层应用模块开发,剩余部分将在今年上半年加速推进,争取早日发布v2.0稳定版,为量化交易员提供一套完整成熟的交易系统解决方案。 D...

49880
来自专栏FreeBuf

表情当密码,这事靠谱么?

对于密码,我们究竟还能做些什么呢? 密码密码,难说爱你 通常我们建议用户采用独特、复杂、最好包含一个怪异字符的密码,却得到用户“任性地”根本无法记住这些密码的回...

225100
来自专栏斑斓

【系统架构】遗留系统的技术栈迁移

什么是遗留系统(Legacy System)?根据维基百科的定义,遗留系统是一种旧的方法、旧的技术、旧的计算机系统或应用程序[1]。这一定义事实上并没有很好地揭...

39370

扫码关注云+社区

领取腾讯云代金券