揭秘Google背后的IT架構(gòu)策略
Google是與眾不同的。它的獨(dú)特不僅僅表現(xiàn)于革新的思維和充滿創(chuàng)意的應(yīng)用 (比如那個(gè)大堂里的地球模型),更在于其有別常規(guī)的IT策略……
加利福尼亞州山景城(Mountain View)Google公司(Google,下稱Google)總部有一個(gè)43號大樓,該建筑的中央大屏幕上顯示著一個(gè)與Google地球(Google Earth)相仿的世界地圖,一個(gè)轉(zhuǎn)動(dòng)的地球上不停地閃動(dòng)著五顏六色的光點(diǎn),恍如羅馬宮廷的千萬燭燈,每一次閃動(dòng)標(biāo)志著地球的這個(gè)角落一名Google用戶發(fā)起了一次新的搜索。
這同時(shí)意味著Google又一次滿足了人們對未知信息的好奇與渴望。
Google是與眾不同的。它的獨(dú)特不僅僅表現(xiàn)于革新的思維和充滿創(chuàng)意的應(yīng)用 (比如那個(gè)大堂里的地球模型),更在于其有別常規(guī)的IT策略。從人們的常理來看,簡單的硬件商品和免費(fèi)軟件是無法構(gòu)建出一個(gè)帝國的,但是Google做到了。在性能調(diào)整后,Google把它們變成一個(gè)無可比擬的分布式計(jì)算平臺(tái),該平臺(tái)能夠支持大規(guī)模的搜索和不斷涌現(xiàn)的新興應(yīng)用。我們原本認(rèn)為這些應(yīng)用都是個(gè)人消費(fèi)級別的,但是Google改變了這一切?,F(xiàn)在商業(yè)世界也在使用它們,這就令這家搜索公司顯得那么與眾不同。
GoogleWeb 服務(wù)背后的IT架構(gòu)對無數(shù)使用搜索引擎的用戶來說也許并不是非常重要,但它是Google幾百位致力于把全球信息組織起來,實(shí)現(xiàn)“隨處可達(dá),隨時(shí)可用”目標(biāo)的工程師們的最核心工作。這就需要一個(gè)在覆蓋范圍和野心上都與Google的商業(yè)愿景完全相符的IT藍(lán)圖作為支撐。
Google 的經(jīng)理們一直對公司的IT策略話題保持沉默,他們厭惡談及特定的廠商或者產(chǎn)品,當(dāng)被問到他們的服務(wù)器和數(shù)據(jù)中心時(shí),他們總是閉口不談。但與幾位 Google的IT領(lǐng)導(dǎo)一起呆了一天后,我們最終得以揭示該公司的IT是如何運(yùn)作的,那可不僅僅是一個(gè)運(yùn)行在無數(shù)服務(wù)器集群上的、表面看來非常簡單的搜索引擎。在其簡單的外表下,蘊(yùn)涵著許多內(nèi)部研發(fā)軟件、定制硬件、人工智能,以及對性能的執(zhí)著追求和打破常規(guī)的人力管理模式。
IT理念方面,Google對同行有一條建議:盡量避免那些人人都在使用的系統(tǒng)和軟件,以自己的方式做事會(huì)更有獨(dú)特的競爭優(yōu)勢。
“企業(yè)文化決定了你的做事方式?!钡栏窭?美林(Douglas Merrill),這位Google工程副總裁和事實(shí)上的首席信息官(CIO) 指出,“到了我們這樣的發(fā)展階段,企業(yè)觀念和文化非常與眾不同,這也反過來鞭策我們必須要采用與眾不同的方式來運(yùn)行那些他人看來很常規(guī)的系統(tǒng)。”
Google 最大的IT優(yōu)勢在于它能建造出既富于性價(jià)比(并非廉價(jià))又能承受極高負(fù)載的高性能系統(tǒng)。因此IT顧問史蒂芬"阿諾德(Stephen Arnold)指出,Google與競爭對手,如亞馬遜網(wǎng)站(Amazon)、電子港灣公司(eBay)、微軟公司(Microsoft,下稱微軟)和雅虎公司 (Yahoo,下稱雅虎)等公司相比,具有更大的成本優(yōu)勢。Google程序員的效率比其他Web公司同行們高出50%~100%,原因是Google已經(jīng)開發(fā)出了一整套專用于支持大規(guī)模并行系統(tǒng)編程的定制軟件庫。據(jù)他估算,其他競爭公司可能要花上四倍的時(shí)間才能獲得同等的效果。
打造服務(wù)器
Google 究竟是怎樣做到這點(diǎn)的呢?其中一個(gè)手段,美林認(rèn)為,“是因?yàn)槲覀冏约簞?dòng)手打造硬件。”Google并不制造計(jì)算機(jī)系統(tǒng),但它根據(jù)自己的參數(shù)定制硬件,然后像MTV的節(jié)目“靚車打造”(Pimp My Ride)那樣自己安裝和調(diào)整硬件系統(tǒng)。開源程序經(jīng)理克里斯"迪博納(Chris DiBona)評論道:“我們很善于購買商業(yè)服務(wù)器,并且改造他們?yōu)槲覀兯?,最后把性能壓榨和發(fā)揮到極致,以致有時(shí)候他們熱得像要融化了似的?!?/P>
這種親手打造的方式,來源于Google從車庫誕生時(shí)與生俱來的節(jié)儉風(fēng)格,更與Google那超大型的系統(tǒng)規(guī)模息息相關(guān),良好的習(xí)慣一直延續(xù)至今。據(jù)說 Google在65個(gè)數(shù)據(jù)中心擁有20萬~45萬臺(tái)服務(wù)器—這個(gè)數(shù)目會(huì)有偏差(取決于你如何定義服務(wù)器和由誰來做這項(xiàng)統(tǒng)計(jì))。但是,不變的是持續(xù)上升的趨勢。
Google不會(huì)去討論這些資產(chǎn),因?yàn)樗J(rèn)為保密也是一種競爭優(yōu)勢。事實(shí)上,Google之所以喜歡開源軟件也是因?yàn)樗乃矫苄浴!叭绻覀冑徺I了軟件許可或代碼許可,人們只要對號入座,就可以猜出Google的IT基礎(chǔ)架構(gòu)?!钡喜┘{分析說, “使用開源軟件,就使我們多了一條把握自己命運(yùn)的途徑?!?/P>
Google喜歡規(guī)?;姆?wù)器運(yùn)行方式。當(dāng)有成百上千臺(tái)機(jī)器時(shí),定制服務(wù)器的優(yōu)勢也會(huì)成倍增加,效果也會(huì)更趨明顯。Google正在俄勒岡州哥倫比亞河邊的達(dá)勒斯市建造一個(gè)占地30畝的數(shù)據(jù)中心,在那兒它可以獲得運(yùn)算和降溫需要的低價(jià)水力電力能源(參見邊欄《Google數(shù)據(jù)中心自有一套》)。
Google以“單元”(Cell)的形式組織這些運(yùn)行 Linux操作系統(tǒng)的服務(wù)器,迪博納把這種形式比喻成互聯(lián)網(wǎng)服務(wù)的“磁盤驅(qū)動(dòng)器”(但別和一直謠傳的Google存儲(chǔ)服務(wù)Gdrive混淆了,“并沒有 Gdrive這回事。”一位Google女發(fā)言人明確表示。),公司的軟件程序都駐扎在這些并不昂貴的電腦機(jī)箱里,由程序員決定它們的冗余工作量。這種由很多單元組成的文件系統(tǒng)代替了商業(yè)存儲(chǔ)設(shè)備;迪博納表示Google這些單元設(shè)備更易于建造和維護(hù),他還暗示他們能處理更大規(guī)模的數(shù)據(jù)。
Google 不會(huì)漏過對任何技術(shù)細(xì)節(jié)的關(guān)注。多年來,公司的工程師就在研究微處理器的內(nèi)部工作機(jī)制,隨著Google規(guī)模的持續(xù)壯大,必然會(huì)用到特別定制和調(diào)節(jié)過的芯片。知名工程師路易斯"巴羅索(Luiz Barroso)去年在一篇發(fā)表在工業(yè)雜志上的論文中證實(shí),近年來Google的主要負(fù)荷都由單核設(shè)計(jì)的系統(tǒng)承擔(dān)著。但許多服務(wù)器端的應(yīng)用,如 Google搜索索引服務(wù),所需的并行計(jì)算在單核芯片的指令級別上執(zhí)行得并不好。
曾在數(shù)據(jù)設(shè)備公司(Digital Equipment)和康柏公司(Compaq)當(dāng)過芯片設(shè)計(jì)師的巴羅索認(rèn)為,隨著AMD公司、英特爾公司(Intel)、太陽計(jì)算機(jī)系統(tǒng)公司(Sun)開始制造多核芯片,必將會(huì)出現(xiàn)越來越多芯片級別的并行計(jì)算。
Google 也曾考慮過自己制造計(jì)算機(jī)芯片,但從業(yè)界潮流來看,這個(gè)冒險(xiǎn)的舉動(dòng)似乎不是很必要。“微處理器的設(shè)計(jì)非常復(fù)雜而且成本昂貴,”運(yùn)營高級副總裁烏爾斯"霍爾茨勒(Urs Holzle)表示。Google寧愿與芯片制造商合作,讓他們?nèi)ダ斫庾约旱膽?yīng)用并設(shè)計(jì)適合的芯片。這是一種客戶建議式的設(shè)計(jì),其關(guān)注點(diǎn)在于總體吞吐量、效能,以及耗電比,而不是看單線程的峰值性能?;魻柎睦毡硎?,“這也是最近多核CPU的設(shè)計(jì)潮流與未來方向。”#p#
裁縫般地定制軟件
為了能盡量壓榨硬件性能,Google開發(fā)了相當(dāng)數(shù)量的定制軟件。創(chuàng)新產(chǎn)品主要包括用于簡化處理和創(chuàng)建大規(guī)模數(shù)據(jù)集的編程模型 MapReduce;用于存儲(chǔ)和管理大規(guī)模數(shù)據(jù)的系統(tǒng)BigTable;分析分布式運(yùn)算環(huán)境中大規(guī)模數(shù)據(jù)集的解釋編程語言Sawzall;用于數(shù)據(jù)密集型應(yīng)用的分布式文件系統(tǒng)的 “Google文件系統(tǒng)”(Google File System);還有為處理分布式系統(tǒng)隊(duì)列分組和任務(wù)調(diào)度的“Google工作隊(duì)列”(Google Workqueue)。
正是從Sawzall這些工具里體現(xiàn)出Google對計(jì)算效率的執(zhí)著關(guān)注。并不是每家公司都能從底層去解決效率問題,但是對Google來說,為常規(guī)關(guān)系型數(shù)據(jù)庫無法容納的大規(guī)模數(shù)據(jù)集專門設(shè)計(jì)一種編程語言是完全合理的。即使其他編程工具可以解決問題,Google的工程師們?nèi)匀粫?huì)為了追求效率而另外開發(fā)一套定制方案。Google工程師認(rèn)為,Sawzall能與C++中的MapReduce相媲美,而且它更容易編寫一些。
Google 對效率的關(guān)注使它不可能對標(biāo)準(zhǔn)Linux內(nèi)核感到滿意;Google會(huì)根據(jù)自己的需要運(yùn)行修改過的內(nèi)核版本。通過調(diào)整Linux的底層性能,Google 工程師們在提高了整體系統(tǒng)可靠性的基礎(chǔ)上,還一并解決了數(shù)據(jù)損壞和數(shù)據(jù)瓶頸等一系列棘手問題。對內(nèi)核的修改也使Google的計(jì)算機(jī)集群系統(tǒng)因?yàn)橥ㄐ判实奶岣叨\(yùn)行得更快。
當(dāng)然,Google偶爾也會(huì)出現(xiàn)系統(tǒng)故障,情況一旦發(fā)生,無數(shù)的用戶就會(huì)受到影響了。三年前一次持續(xù)30分鐘的系統(tǒng)故障使20%的搜索流量受到影響。
Google 開發(fā)了自己的網(wǎng)站服務(wù)器卻沒有使用開源的Apache服務(wù)器,盡管它在網(wǎng)站服務(wù)器的市場占有率超過60%。迪博納認(rèn)為,Google的網(wǎng)站服務(wù)器可以運(yùn)行在更多數(shù)量的主機(jī)上,對Google站點(diǎn)上內(nèi)容龐大又彼此互相依賴的應(yīng)用程序來說,這種服務(wù)器的負(fù)載均衡能力遠(yuǎn)比Apache的能力更高。同時(shí),在用標(biāo)準(zhǔn)公共網(wǎng)關(guān)接口(CGI)訪問數(shù)據(jù)庫動(dòng)態(tài)網(wǎng)頁方面,Google服務(wù)器的編程難度要比 Apache更高,但是最終運(yùn)行速度卻更快?!叭绻覀兡軌驂赫コ?0%~20%的性能,我們就可以節(jié)省出更多系統(tǒng)資源、電量和人力了。”迪博納在總結(jié)中指出。
Google還設(shè)計(jì)了自己的客戶關(guān)系管理(CRM)系統(tǒng)用于支持自己基于競價(jià)和點(diǎn)擊的互聯(lián)網(wǎng)廣告收費(fèi)業(yè)務(wù)。但對是否需要設(shè)計(jì)自己的工具,Google的態(tài)度也不是一成不變的。比如在財(cái)會(huì)軟件上,它就使用了甲骨文公司(Oracle)的Financials軟件。
美林拿著一只叉子舉例說明現(xiàn)成的產(chǎn)品也可以帶來價(jià)值。但在有些場合現(xiàn)成的軟件產(chǎn)品就不一定適用了?!拔覀兊奈幕诟鱾€(gè)層面對我們的運(yùn)作都有深遠(yuǎn)影響,”他表示,“所以我們不想讓購買所得的工具改變我們的工作方式和文化層面。”
【編輯推薦】