Google 背後的IT 架構策略揭祕

Google是與衆不同的。IT理念方面,Google對同行有一條建議:儘量避免那些人人都在使用的系統和軟件,以自己的方式做事會更有獨特的競爭優勢。本文展示了谷歌其有別常規的IT策略……   Google是與衆不同的。它的獨特不僅僅表現於革新的思維和充滿創意的應用 (比如那個大堂裏的地球模型),更在於其有別常規的IT策略……

 

 

 

  加利福尼亞州山景城(Mountain View)Google公司(Google,下稱Google)總部有一個43號大樓,該建築的中央大屏幕上顯示着一個與Google地球(Google Earth)相仿的世界地圖,一個轉動的地球上不停地閃動着五顏六色的光點,恍如羅馬宮廷的千萬燭燈,每一次閃動標誌着地球的這個角落一名Google用戶發起了一次新的搜索。

 

  這同時意味着Google又一次滿足了人們對未知信息的好奇與渴望。

 

  Google是與衆不同的。它的獨特不僅僅表現於革新的思維和充滿創意的應用 (比如那個大堂裏的地球模型),更在於其有別常規的IT策略。從人們的常理來看,簡單的硬件商品和免費軟件是無法構建出一個帝國的,但是Google做到了。在性能調整後,Google把它們變成一個無可比擬的分佈式計算平臺,該平臺能夠支持大規模的搜索和不斷湧現的新興應用。我們原本認爲這些應用都是個人消費級別的,但是Google改變了這一切。現在商業世界也在使用它們,這就令這家搜索公司顯得那麼與衆不同。

 

  GoogleWeb 服務背後的IT架構對無數使用搜索引擎的用戶來說也許並不是非常重要,但它是Google幾百位致力於把全球信息組織起來,實現“隨處可達,隨時可用”目標的工程師們的最核心工作。這就需要一個在覆蓋範圍和野心上都與Google的商業願景完全相符的IT藍圖作爲支撐。

 

  Google 的經理們一直對公司的IT策略話題保持沉默,他們厭惡談及特定的廠商或者產品,當被問到他們的服務器和數據中心時,他們總是閉口不談。但與幾位 Google的IT領導一起呆了一天後,我們最終得以揭示該公司的IT是如何運作的,那可不僅僅是一個運行在無數服務器集羣上的、表面看來非常簡單的搜索引擎。在其簡單的外表下,蘊涵着許多內部研發軟件、定製硬件、人工智能,以及對性能的執着追求和打破常規的人力管理模式。

 

  IT理念方面,Google對同行有一條建議:儘量避免那些人人都在使用的系統和軟件,以自己的方式做事會更有獨特的競爭優勢。

 

  “企業文化決定了你的做事方式。”道格拉斯"美林(Douglas Merrill),這位Google工程副總裁和事實上的首席信息官(CIO) 指出,“到了我們這樣的發展階段,企業觀念和文化非常與衆不同,這也反過來鞭策我們必須要採用與衆不同的方式來運行那些他人看來很常規的系統。”

 

  Google 最大的IT優勢在於它能建造出既富於性價比(並非廉價)又能承受極高負載的高性能系統。因此IT顧問史蒂芬"阿諾德(Stephen Arnold)指出,Google與競爭對手,如亞馬遜網站(Amazon)、電子港灣公司(eBay)、微軟公司(Microsoft,下稱微軟)和雅虎公司 (Yahoo,下稱雅虎)等公司相比,具有更大的成本優勢。Google程序員的效率比其他Web公司同行們高出50%~100%,原因是Google已經開發出了一整套專用於支持大規模並行系統編程的定製軟件庫。據他估算,其他競爭公司可能要花上四倍的時間才能獲得同等的效果。

 

  打造服務器

 

  Google 究竟是怎樣做到這點的呢?其中一個手段,美林認爲,“是因爲我們自己動手打造硬件。”Google並不製造計算機系統,但它根據自己的參數定製硬件,然後像MTV的節目“靚車打造”(Pimp My Ride)那樣自己安裝和調整硬件系統。開源程序經理克里斯"迪博納(Chris DiBona)評論道:“我們很善於購買商業服務器,並且改造他們爲我們所用,最後把性能壓榨和發揮到極致,以致有時候他們熱得像要融化了似的。”

 

  這種親手打造的方式,來源於Google從車庫誕生時與生俱來的節儉風格,更與Google那超大型的系統規模息息相關,良好的習慣一直延續至今。據說 Google在65個數據中心擁有20萬~45萬臺服務器—這個數目會有偏差(取決於你如何定義服務器和由誰來做這項統計)。但是,不變的是持續上升的趨勢。

 

  Google不會去討論這些資產,因爲它認爲保密也是一種競爭優勢。事實上,Google之所以喜歡開源軟件也是因爲它的私密性。“如果我們購買了軟件許可或代碼許可,人們只要對號入座,就可以猜出Google的IT基礎架構。”迪博納分析說, “使用開源軟件,就使我們多了一條把握自己命運的途徑。”

 

  Google喜歡規模化的服務器運行方式。當有成百上千臺機器時,定製服務器的優勢也會成倍增加,效果也會更趨明顯。Google正在俄勒岡州哥倫比亞河邊的達勒斯市建造一個佔地30畝的數據中心,在那兒它可以獲得運算和降溫需要的低價水力電力能源(參見邊欄《Google數據中心自有一套》)。

 

  Google以“單元”(Cell)的形式組織這些運行 Linux操作系統的服務器,迪博納把這種形式比喻成互聯網服務的“磁盤驅動器”(但別和一直謠傳的Google存儲服務Gdrive混淆了,“並沒有 Gdrive這回事。”一位Google女發言人明確表示。),公司的軟件程序都駐紮在這些並不昂貴的電腦機箱裏,由程序員決定它們的冗餘工作量。這種由很多單元組成的文件系統代替了商業存儲設備;迪博納表示Google這些單元設備更易於建造和維護,他還暗示他們能處理更大規模的數據。

 

  Google 不會漏過對任何技術細節的關注。多年來,公司的工程師就在研究微處理器的內部工作機制,隨着Google規模的持續壯大,必然會用到特別定製和調節過的芯片。知名工程師路易斯"巴羅索(Luiz Barroso)去年在一篇發表在工業雜誌上的論文中證實,近年來Google的主要負荷都由單核設計的系統承擔着。但許多服務器端的應用,如 Google搜索索引服務,所需的並行計算在單核芯片的指令級別上執行得並不好。

 

  曾在數據設備公司(Digital Equipment)和康柏公司(Compaq)當過芯片設計師的巴羅索認爲,隨着AMD公司、英特爾公司(Intel)、太陽計算機系統公司(Sun)開始製造多核芯片,必將會出現越來越多芯片級別的並行計算。

 

  Google 也曾考慮過自己製造計算機芯片,但從業界潮流來看,這個冒險的舉動似乎不是很必要。“微處理器的設計非常複雜而且成本昂貴,”運營高級副總裁烏爾斯"霍爾茨勒(Urs Holzle)表示。Google寧願與芯片製造商合作,讓他們去理解自己的應用並設計適合的芯片。這是一種客戶建議式的設計,其關注點在於總體吞吐量、效能,以及耗電比,而不是看單線程的峯值性能。霍爾茨勒表示,“這也是最近多核CPU的設計潮流與未來方向。”

 

  裁縫般地定製軟件

 

  爲了能儘量壓榨硬件性能,Google開發了相當數量的定製軟件。創新產品主要包括用於簡化處理和創建大規模數據集的編程模型MapReduce;用於存儲和管理大規模數據的系統BigTable;分析分佈式運算環境中大規模數據集的解釋編程語言Sawzall;用於數據密集型應用的分佈式文件系統的 “Google文件系統”(Google File System);還有爲處理分佈式系統隊列分組和任務調度的“Google工作隊列”(Google Workqueue)。

 

  正是從Sawzall這些工具裏體現出Google對計算效率的執著關注。並不是每家公司都能從底層去解決效率問題,但是對Google來說,爲常規關係型數據庫無法容納的大規模數據集專門設計一種編程語言是完全合理的。即使其他編程工具可以解決問題,Google的工程師們仍然會爲了追求效率而另外開發一套定製方案。Google工程師認爲,Sawzall能與C++中的MapReduce相媲美,而且它更容易編寫一些。

 

  Google 對效率的關注使它不可能對標準Linux內核感到滿意;Google會根據自己的需要運行修改過的內核版本。通過調整Linux的底層性能,Google 工程師們在提高了整體系統可靠性的基礎上,還一併解決了數據損壞和數據瓶頸等一系列棘手問題。對內核的修改也使Google的計算機集羣系統因爲通信效率的提高而運行得更快。

 

  當然,Google偶爾也會出現系統故障,情況一旦發生,無數的用戶就會受到影響了。三年前一次持續30分鐘的系統故障使20%的搜索流量受到影響。

 

  Google 開發了自己的網站服務器卻沒有使用開源的Apache服務器,儘管它在網站服務器的市場佔有率超過60%。迪博納認爲,Google的網站服務器可以運行在更多數量的主機上,對Google站點上內容龐大又彼此互相依賴的應用程序來說,這種服務器的負載均衡能力遠比Apache的能力更高。同時,在用標準公共網關接口(CGI)訪問數據庫動態網頁方面,Google服務器的編程難度要比 Apache更高,但是最終運行速度卻更快。“如果我們能夠壓榨出10%~20%的性能,我們就可以節省出更多系統資源、電量和人力了。”迪博納在總結中指出。

 

  Google還設計了自己的客戶關係管理(CRM)系統用於支持自己基於競價和點擊的互聯網廣告收費業務。但對是否需要設計自己的工具,Google的態度也不是一成不變的。比如在財會軟件上,它就使用了甲骨文公司(Oracle)的Financials軟件。

 

  美林拿着一隻叉子舉例說明現成的產品也可以帶來價值。但在有些場合現成的軟件產品就不一定適用了。“我們的文化在各個層面對我們的運作都有深遠影響,”他表示,“所以我們不想讓購買所得的工具改變我們的工作方式和文化層面。”

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章