我們再來看看亞馬遜的EC2服務(wù),即彈性計算云服務(wù)。有了EC2,你可以用租用亞馬遜的服務(wù)器,動態(tài)租用它10臺機器,或者是100臺機器。它給你提供一個工具,這個工具可以把你機器目前運行的環(huán)境整個打成一個包,這個包叫一個映象。將這個映象傳到亞馬遜的服務(wù)器上面,展開之后就可以恢復(fù)出跟你機器一模一樣的環(huán)境,這個過程叫做虛擬化。我想將租來的機器虛擬化什么樣都可以,比如我想將租用的機器做成一個數(shù)據(jù)庫,做成一個網(wǎng)站,做成數(shù)據(jù)處理節(jié)點,都可以。我覺得,這是EC2受歡迎最根本的原因之一,即通用性,它使用亞馬遜云計算可以用來滿足各種應(yīng)用的要求。EC2受歡迎的第二個原因是它的可伸縮性。你的一個映象可以傳到十臺機器,也可以傳到一百臺機器,只要你付錢。當(dāng)業(yè)務(wù)量大的時候,你可以多租一些機器,當(dāng)業(yè)務(wù)量下來的時候,你可以退掉一些機器。EC2受歡迎的第三個原因是它非常便宜,租用一個服務(wù)器一小時,只需要付0.10美元,比到網(wǎng)吧用電腦還要便宜得多。
由于亞馬遜提供了非常便宜又非常強大的服務(wù),所以我們可以用它來做以前想都沒想到的事情。比如這家小公司,它的設(shè)施基本都可以租用亞馬遜的機器,存儲的數(shù)據(jù)是放在S3服務(wù),處理節(jié)點用的是EC2。還有一家公司SMUGMUG,它的網(wǎng)站上面已經(jīng)有幾億張高清圖片,擁有幾十萬付費用戶,這么大的規(guī)模,這家公司人數(shù)只有五十人,之所以如此,是因為它所有的設(shè)施都是托管于亞馬遜的。紐約時報曾經(jīng)使用亞馬遜的服務(wù),在24小時之內(nèi)就把歷史上所有的文章從TIF格式轉(zhuǎn)化成PDF格式,一共才花了240美元。別少看這240美元,它可以租2400個機器小時。如果紐約時報要用自己的機器來完成的話,需要幾個月的時間才能做好。所以亞馬遜的服務(wù)給業(yè)務(wù)量不確定應(yīng)用帶來非常大的好處。事實上,大多數(shù)互聯(lián)網(wǎng)應(yīng)用都是業(yè)務(wù)量不確定的。
我們再來看看Google。Google幾乎所有的業(yè)務(wù),包括Gmail、Google Maps、Google Earth、Google Docs和新近出來的Google Wave,全部都是在云計算上運行的。我們可以通過各種終端、在各種平臺上訪問Google服務(wù),可以是手機,可以是PC,也可以是Macintosh,或者在Linux環(huán)境中。Google之所以能夠做到這一點,根本原因是它后面的云計算設(shè)施。Google把這些云設(shè)施建到非常偏遠的地區(qū),比較冷和靠近電站的地區(qū),用電成本非常低,通過光纖傳信息來代替通過電線傳電力。Google有一個說法,傳輸光子的成本要遠遠地公共低于傳輸電子。Google的云計算數(shù)據(jù)計算中心目前分布于30多個不同地點,共有200多萬臺計算機。我們來看看一些圖片,這些云設(shè)施,被人們稱為“信息時代的核電站”。再看看機房內(nèi)部,有些機房里的機器就是一大堆普通的PC。極其廉價,但非常容易壞。Google認為,機器會壞是正常的,不壞是不正常的。Google牛就牛在任意一個節(jié)點壞,或者兩個節(jié)點同時壞,它的數(shù)據(jù)不會丟,服務(wù)不會中斷。它的云計算設(shè)施管理起來也非常方便,一個人可以管理上千臺機器。這個人用小推車推了一些機器,看到機架上哪臺機器的燈在閃,就將它拿下來,換一個新的插上去就可以了。你們看,圖片上的機器是難看的背面對外,為什么?更換方便!
要做到這個境界,Google主要依靠四個技術(shù):GFS、MapReduce、Bigtable和Chubby。這里我主要講下Google文件系統(tǒng)GFS。這個文件系統(tǒng)能做什么呢?我們看這張圖:GFS將集群里的節(jié)點分為管理節(jié)點和數(shù)據(jù)節(jié)點兩類。管理節(jié)點存儲元數(shù)據(jù),客戶端通過訪問管理節(jié)點來獲得文件應(yīng)該存儲在什么位置的信息。一個文件被分布若干塊存儲于不同的數(shù)據(jù)節(jié)點上,客戶端從管理節(jié)點知道存儲的節(jié)點編號后,就可以直接訪問數(shù)據(jù)節(jié)點存取數(shù)據(jù)。這樣,數(shù)據(jù)傳輸是直接發(fā)生在客戶端與管理節(jié)點之間的,管理節(jié)點只需要處理元數(shù)據(jù)訪問請求,從而不會在管理節(jié)點形成瓶頸。我們再來看數(shù)據(jù)是怎么存放的。Google的數(shù)據(jù)塊是比較大的,默認是64MB一塊,這和Google應(yīng)用的特點有關(guān)。任何一塊數(shù)據(jù)在GFS里默認是有3份的,當(dāng)客戶端向數(shù)據(jù)節(jié)點A存儲了一個數(shù)據(jù)塊,A會立即將它復(fù)制給B和C。如果B壞了,會自動再復(fù)制一份給D。Google對GFS的訪問作了許多限制,例如不允許在文件的中間去修改數(shù)據(jù),但可以在后面加數(shù)據(jù)。之所以作限制,是為了實現(xiàn)方便并提高整體的可靠性。這個系統(tǒng)無論規(guī)模做得很大,瓶頸也不會顯現(xiàn)出來,這個Google文件系統(tǒng),看似非常簡單,但是是一個非常巧妙的系統(tǒng)。如果GFS只管理了100臺機器,看起來并不高明,甚至比不上常見的分布式文件系統(tǒng),但當(dāng)GFS管理了100萬臺機器時,它的優(yōu)勢就顯現(xiàn)出來了。這就是規(guī)模效應(yīng)。
更多詳細信息,請您微信關(guān)注“計算網(wǎng)”公眾號: