从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 条评论
登录 后参与评论

相关文章

来自专栏维恩的派VNPIE

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

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

4598
来自专栏FreeBuf

七个黑你的理由

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

1867
来自专栏北京马哥教育

2018,用好这几点方法学习Linux一定比别人快

今天是2018年的第一天,在迎来新年喜悦的同时,又即将开始新的一年的奋斗。不知道文章面前的你是怎样计划你的Linux学习的。如今有很多关于Linux的书籍,博客...

3815
来自专栏BestSDK

Mashape 和 RapidAPI 合并,搭建全球最大的API开发市场

应用编程接口发行商RapidAPI和Mashape Inc.近日宣布合并,将组建它们号称的全球最大的应用编程接口市场。 ? RapidAPI的总部位于旧金山,已...

3989
来自专栏大数据文摘

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

26310
来自专栏Wordpress专用主机|主题模板|必备插件

WORDPRESS专用主机推荐 自带CDN+SSL性价比高才是王道

对于很多Wordpress爱好者来讲,一台合适的高性价比的WP专用主机才是一个完美的开始。接下来,就直接进入本文的主题吧。让我们来看看国外五大Wordpress...

5325
来自专栏Java社区

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

2452
来自专栏沃趣科技

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

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

972
来自专栏BIT泽清

收起装13的苹果审核指南,就告诉你到底怎么能过!

本文为作者在遍览诸多苹果商店审核指南文后愤然写下,以最容易被拒的地方房卡麻将闲游(无版权号)移动端手游APP为例。

2565
来自专栏开源项目

9款开源教学管理系统 | 码云周刊第 73 期

5734

扫码关注云+社区