Twitter的本海因德曼
《連線》周二刊登了一篇署名為卡德梅茨(Cade Metz)的評(píng)論文章,借谷歌網(wǎng)絡(luò)帝國最核心的軟件系統(tǒng)伯格(Borg)分析了Twitter如何重建谷歌的秘密武器。
原文如下:
約翰威爾克斯(John Wilkes)說,加入谷歌就象是《黑客帝國》中的尼歐(Neo)吞下紅藥丸一樣,那就是選擇了覺醒。
4年前,威爾克斯只是知道谷歌這家公司而已。他與蕓蕓眾生一樣,每天的生活都與谷歌的各種服務(wù)如谷歌搜索、Gmail、谷歌地圖等息息相關(guān)。隨后,他加入了谷歌網(wǎng)絡(luò)帝國最核心的工程技術(shù)團(tuán)隊(duì),那個(gè)技術(shù)團(tuán)隊(duì)就相當(dāng)于谷歌的大腦,支持谷歌所有的網(wǎng)絡(luò)服務(wù)所需的最基本的硬件和軟件系統(tǒng)都是由他們?cè)O(shè)計(jì)的。
這些系統(tǒng)橫跨在一個(gè)全球性的數(shù)據(jù)中心網(wǎng)絡(luò)之上,每一秒處理的網(wǎng)絡(luò)指令高達(dá)數(shù)十億條。威爾克斯第一次看到那些系統(tǒng)工作時(shí)的場(chǎng)景時(shí),他感覺自己就象是吞下了紅藥丸之后的尼歐一樣,擺脫了矩陣(Matrix)創(chuàng)造的虛擬世界,突然就看到了一個(gè)由無數(shù)機(jī)器組成的龐大網(wǎng)絡(luò)。
看著龐大的網(wǎng)絡(luò),他變得不知所措了。要知道,他可是一位在惠普試驗(yàn)室工作了25年的資深研究員,多年來一直在從事現(xiàn)代計(jì)算最先進(jìn)技術(shù)的研究工作。
威爾克斯說:“我是過去時(shí)代的人,我認(rèn)為兆級(jí)容量就已經(jīng)很大了。但是等我到了谷歌之后,我必須在所有的數(shù)據(jù)后面都加上3個(gè)0。”他解釋說,那種感覺就象是一個(gè)人從生活了很多年的小地方突然來到一個(gè)全新的廣闊天地一樣。在谷歌,某個(gè)存儲(chǔ)數(shù)據(jù)的系統(tǒng)剩余的空間還剩幾個(gè)PB(存儲(chǔ)容量單位,1PB=1000GB=1000000MB)時(shí),系統(tǒng)就會(huì)向管理員發(fā)出警報(bào)。換句話說,只要幾個(gè)小時(shí),谷歌數(shù)據(jù)中心里的一組設(shè)備就會(huì)被海量的數(shù)據(jù)填滿。
當(dāng)他還在絞盡腦汁地想象谷歌的數(shù)據(jù)中心帝國到底有多大時(shí),威爾克斯接到任務(wù),負(fù)責(zé)開發(fā)支持谷歌整個(gè)網(wǎng)絡(luò)帝國的軟件系統(tǒng)。
這個(gè)軟件系統(tǒng)被稱作“伯格”(Borg)系統(tǒng),它也是谷歌之所以能夠迅速成為互聯(lián)網(wǎng)上最強(qiáng)大的力量背后的最隱秘的機(jī)密之一。威爾克斯甚至都不愿叫它“伯格”。他說:“我寧愿稱之為不會(huì)被命名的系統(tǒng)。”但他透露,谷歌使用該系統(tǒng)已有9、10年的光景了。他和他的團(tuán)隊(duì)正在開發(fā)一個(gè)新版本的工具,產(chǎn)品代碼為“歐米茄”(Omega)。
伯格系統(tǒng)可以非常高效地將任務(wù)分配到谷歌數(shù)量龐大的計(jì)算機(jī)服務(wù)器中去。威爾克斯稱,這個(gè)系統(tǒng)的效率非常高,它可能幫谷歌省下了足以再多建一個(gè)數(shù)據(jù)中心的成本。沒錯(cuò),一個(gè)完整的數(shù)據(jù)中心。那也許看起來就象是天外來客一樣,從某種角度來說,它確實(shí)是天外來客。但是,谷歌為了運(yùn)行其龐大的網(wǎng)絡(luò)帝國而開發(fā)的新時(shí)代硬件和軟件通常會(huì)慢慢地滲透到互聯(lián)網(wǎng)的各個(gè)角落。伯格系統(tǒng)也不例外。
在Twitter,有一個(gè)小規(guī)模的工程師團(tuán)隊(duì)利用加州伯克萊大學(xué)的研究員們開發(fā)出來的一個(gè)名為“Mesos”的軟件平臺(tái)開發(fā)出了一款類似的系統(tǒng)。由于“Mesos”平臺(tái)是一款開源軟件,因此任何人都可以免費(fèi)使用它,這個(gè)平臺(tái)也逐漸在向其他領(lǐng)域擴(kuò)展。
伯格這個(gè)名稱非常貼切。谷歌的這個(gè)系統(tǒng)就是一個(gè)中央大腦,可以控制谷歌所有數(shù)據(jù)中心上的全部任務(wù)。谷歌不用為每一個(gè)軟件系統(tǒng)如谷歌搜索、Gmail、谷歌地圖等各搭建一組獨(dú)立的服務(wù)器,它只需搭建一組服務(wù)器來同時(shí)執(zhí)行各種不同的任務(wù)就行了。所有的任務(wù)都會(huì)被分割成細(xì)小的任務(wù),然后由伯格系統(tǒng)將那些任務(wù)發(fā)送到它能找到空閑計(jì)算資源的地方。
威爾克斯說,這就好像是一大堆積木一樣,每塊積木的外形和大小都是不同的。伯格系統(tǒng)的任務(wù)就是找到一種將所有的積木都裝入木桶中的方法。這里所說的積木就好比是計(jì)算機(jī)任務(wù),木桶就好比是服務(wù)器,關(guān)鍵是不能浪費(fèi)木桶中的任何空間。
威爾克斯說:“如果你只是簡(jiǎn)單地將積木丟到木桶里,那么你要么會(huì)剩下很多積木裝不進(jìn)去,要么會(huì)造成有的木桶裝得滿,有的木桶裝不滿的情況,因?yàn)榉e木與積木之間貼合得并不緊密,那樣就會(huì)浪費(fèi)掉不少的空間。但是如果你細(xì)心去安排如何裝積木的話,你就可以減少木桶的需用量。”
還有其他的方法可以做到這一點(diǎn)。你可以利用服務(wù)器虛擬化技術(shù)來達(dá)到相同的目的。但是虛擬化會(huì)額外增加不必要的復(fù)雜性,如果去掉這個(gè)因素,谷歌就可以將數(shù)據(jù)中心基礎(chǔ)設(shè)施的規(guī)模減小幾個(gè)百分點(diǎn)??紤]到谷歌數(shù)據(jù)中心網(wǎng)絡(luò)的規(guī)模,那幾個(gè)百分點(diǎn)對(duì)應(yīng)的可能就是一個(gè)完整的數(shù)據(jù)中心。
威爾克斯說:“那就相當(dāng)于另外再建一個(gè)數(shù)據(jù)中心,這里增加一點(diǎn),那里增加一點(diǎn),最后匯總起來,那就是一大筆開支。”
在Twitter,Mesos并不具備與伯格系統(tǒng)一樣規(guī)模的影響力。Twitter的業(yè)務(wù)規(guī)模比谷歌的業(yè)務(wù)規(guī)模要小得多,但是Twitter的業(yè)務(wù)總是在不斷的發(fā)展壯大,Mesos可以更好地控制業(yè)務(wù)規(guī)模的增長(zhǎng)速度。伯格和Mesos并不只是從服務(wù)器群中提取計(jì)算能力。它們可以讓谷歌和Twitter那樣的公司將數(shù)據(jù)中心當(dāng)做一臺(tái)設(shè)備來對(duì)待。
谷歌和Twitter可以象你在你的臺(tái)式機(jī)電腦上運(yùn)行軟件那樣在這些計(jì)算設(shè)備上運(yùn)行軟件。這樣就可以簡(jiǎn)化Gmail、谷歌地圖和Twitter應(yīng)用的開發(fā)人員的工作。
曾經(jīng)在加州伯克萊大學(xué)創(chuàng)立Mesos項(xiàng)目、目前在Twitter擔(dān)任Mesos項(xiàng)目總監(jiān)的本海因德曼(Ben Hindman)稱:“Mesos可以簡(jiǎn)化Twitter工程師的工作,他們只需考慮在一個(gè)數(shù)據(jù)中心的平臺(tái)上運(yùn)行他們開發(fā)的應(yīng)用軟件就行了。那真的是很棒。”