为安全而捣乱的突击队
在某个冷冽的冬日早晨三点,一小批工程师开始攻击Google。
首先,他们让位于加州山景城总部的内部网路失灵。接着,他们试图引发水管漏水以及在大门外发动抗争,以中断Google几个资料中心的运行,目的是希望能够引开注意,好让入侵者能够从伺服器中窃取资料磁碟。在捣乱几项服务之后,他们让位于荷兰的一个资料中心下线,最后,给出致命的一击,截断Google连往亚洲的大多数光纤连结。
事实上,这是一场内部作业,攻击者位在园区边缘的一间会议室,他们都是Google的员工,隶属于机房可靠度工程小组(SRE , Site Reliability Engineering)。他们的终极职责就是要维持Google与各项服务顺利运行。
SRE的成员不只负责解决问题,也负责让产品程式在伺服器的“裸机”上运行。他们有不少人都被安插在Gmail或搜寻等服务的产品群组里。这支“海豹突击队”的特殊成员,在成为SRE一员时,会领到一件上有徽章补丁的皮夹克,很有军队感。
每年,SRE成员都会在Google的基础架构上,执行“灾害复原测试”(disaster recovery testing, DiRT)模拟作战。几乎难以与现实区别的攻击是假的,但事件控管经理必须视同实际发生,依程序回报。有些状况,会让一些功能性服务会受到干扰,假如管理团队找不出解决或补强的方法,维持正常运行,SRE成员会取消攻击以免影响实际用户。
第一波攻击开始时,带领每年演习、性情乐观的工程师克里帕?克瑞希南(Kripa Krishnan),在早已充斥着垃圾食物的会议室里,向二十名SRE成员说明规则。“不要试图修复任何东西,对主其事的人来说,我们并不存在。假如够幸运,我们不会毁坏任何东西。”
语毕,她拔掉了园区网路的插头,而且是真的拔掉了!该团队开始监看电话线与IRC频道,好得知全球几位此刻正在待命的Google事件管控经理,何时会注意到事情不对劲。
才过了五分钟,欧洲就有人察觉到问题了,马上开始联络其他人。“我的角色在于,要设想一些真正能找出弱点的大型试验,几年下来,我们变得愈来愈勇于为确认万事无忧而捣乱。”克瑞希南说。
Google这回的表现如何?答案是颇佳,克瑞希南形容“这是我们有史以来最棒的一次DiRT!”
虽然,他们阻断公司内网路,执行董事长艾瑞克?施密特(Eric Sc??hmidt)还是顺利按照计画主持了一场全球员工大会。虚拟的“披萨”安抚了虚拟示威群众,就算减少Google在亚洲的四分之三容量,托丰富的页库存档之福,亚洲用户还是能够顺利使用服务。
可靠性Vs .永不出错
Google会展开SRE计画,起因是霍兹要一位工程师班?托雷诺(Ben Treynor)替Google网路打造出错时的安全装置。对于这家规模庞大,却又经常微调系统与服务的公司来说,这项任务很吊诡,毕竟,让系统稳定的最佳方式,应该是停止任何变动。
最后,托雷诺重新考量了“可靠性”。与其努力打造“永不出错”的系统,他选择为每种服务设计一段允许系统停机的缓冲时间,再来,确保Goo??gle的工程师能够有效运用这段时间。
“比如,我们希望Google+在99.95%的时间维持运行,我们要利用缓冲时间试些新东西,以确保停机时间不会用来做些如『我们没有注意到』之类的蠢事,”霍兹道。
不过,还是发生意外。莎宾娜?法默(Sabrina Farmer)在2012年4月17日上午知道这件事。当时,她担任Gmail团队首席SRE约一年多,正参与例行的设计评估会议。突然之间,一名工程师冲进房内,大叫:“出大事了!”
真的是大事,有1.4%的Gmail用户无法使用Gmail。没多久,Twitter与多个科技网站上开始报出“灾情”,甚至连主流新闻都报导这则消息。
会议室顿时转变为战情室,在苏黎世一批同事的协助下,法默展开彻底调查。Gmail团队里有位SRE成员怯生生承认:“星期五我改了一点东西,可能是导致这次意外的原因。”事情有了突破性发,负责审核变动的那些人不够仔细,导致当某些Gmail用户想要登入帐号时,系统中多份该用户的备份资料出现不一致情形,为确保资料安全,系统才会把他们挡在外头。
诊断问题花了二十分钟,设计解决方案又花了二十五分钟,听起来成效不错,但这件事确实是Google本身的错。“SRE触发这样的反应让我颇感难受,但我很欣慰,没有用户掉资料。”法默说。不过,如果未来Google遭逢的危机都仅限于DiRT发动的僵尸攻击,法默应该会更开心。
先前,我们已穿过设施外的厚重大门,那种遥控栅栏让我想起韩国非军事区(Korean DMZ)。我们已走过装饰成美国纳斯卡赛车(NASCAR)风格的办公室(Google每个资料中心都有个装饰主题)。我们已参观过控制室,那里有液晶仪表板,可以监看所有想像得到的数值。
接着,我们爬上狭窄通道,到上头察看庞大的冷却塔,以及备援发电机,它们看来很像有披头四感觉的潜艇,只不过是绿色的。
震慑人的伺服器区
但,此刻我们要进入的伺服器区,大,已经不足以形容。我看到的是无限延伸、成排、成排的伺服器机架。就算是全盛时期的美式足球超级四分卫乔?蒙坦纳(Joe Montana),也无法丢那么远。
在我采访Google员工时,热通道、冷通道的概念一直很抽象。走进伺服器区之后,一切都清楚了。冷通道就是一般室温的区域,目前是华氏七十七度。热通道是两排伺服器背对背中间的狭窄空间,两侧以金属板密封住,还有一些铜线圈是用来吸热的。上方有巨大电扇,声音听起来像是经马歇尔(Marshall)扩大机扩大过的喷射机引擎声。
我们在一排排伺服器间走动。所有缆线与插座都在前方,因此没有必要掰开金属板、走进热通道探险,把自己变成烤肉(如果有人真的必须进入热通道,伺服器要先关掉)。每台伺服器上都贴有标签,假如出了问题,可以用来辨识其实体位址。伺服器旁都有厚厚的黑色电池。一切都很井然有序,不像很久以前的Exodus时期,乱得像纠结的义大利面。
每隔一阵子,就有员工冒出来。一个着短裤的长发男踩着滑板车过去、一位穿着T恤的女子推着上头放了一台笔电的小车子,就像内科护士发药那般,帮多台伺服器更换维修零件。事实上,伺服器区就名为“药房”的区域,专门存放维修用零件。
资料中心是一台巨大电脑
Google到底设置多少伺服器?这是Google建立第一个资料中心时,观察家就一直在追的问题。
很久以来,答案一直都是“几十万台”。后来,我到Google在山景城的资料中心研发设施拜访时,偶然得到线索。那里有个机密区,一排主机板固定在墙上,等于是Google每代自制伺服器的荣誉榜,其中,一片固定在小小的浮雕奖章上方写着“2008年7月9日,Google第一百万台伺服器”。
但那里的高阶主管解释,这数字是累积下来的,未必表示当时Google同时有一百万台伺服器在运行。
走在勒诺的冷通道上时,我意识到,就算能够知道伺服器数量的魔术数字,也无意义。因为今天的机器有了多核心处理器与其他的进步,处理能力与功能已经是前几代的许多倍。2012年的一台Google伺服器,可能就相当于二十台上一代的伺服器。无论有几台,Google心里想的是“丛集”,为数众多的机器共同发挥能力,以提供服务或处理应用程式。
“单单一台伺服器毫无意义可言,我们看的是较抽象的运算能力。”霍兹与巴洛索三年前讲的概念,现在实现了,因为Google整个资料中心就是一部电脑。
离开伺服器区时,我的感觉是,得以一窥Google内部的圣地,实在很飘飘然。不过,几星期后,我再来到山景城的Google总部时,才知道Google已经盘算着,要舍弃我参观过的那个资料中心。“等到我们的员工习惯于2013年新建的建筑与丛集后,他们就会抱怨现在的不好用了。”霍兹说。
我问他,外人可以期待会有什么新改变?霍兹指出,关键在于资料中心与丛集的设计,以及建置的速度与弹性。接着,他停了一下,“还有一件事我不能讲,因为那是我们流血、流汗、流泪,才做出来的。我希望别人也能流血、流汗、流泪把它找出来!”他那满脸胡须的脸庞露出笑容。
Google或许致力于提供全球的资料给大家存取,但,有些资讯他们还是会对外保留。
Via ?wired