這兩天玩了玩 Google App Engine,感覺所謂云計(jì)算就是一個(gè)屏蔽底層細(xì)節(jié)的操作系統(tǒng),只不過這個(gè)操作系統(tǒng)是管理分布式計(jì)算的。從對(duì)用戶起的作用來說,與我們現(xiàn)在用的 Linux Windows 本質(zhì)上沒什么區(qū)別。
讓我們想想,計(jì)算機(jī)發(fā)展早期,沒有現(xiàn)代操作系統(tǒng)的時(shí)候,我們想往磁盤上寫入一些內(nèi)容是一種什么情況。首先你要告訴機(jī)器使用哪個(gè)磁頭,保存到哪個(gè)扇區(qū)、幾號(hào)磁道;其次,你要自己控制 CPU,操作它的每一步動(dòng)作;最后,你還要自己確定使用哪一段內(nèi)存,確保這段內(nèi)存空間不會(huì)對(duì)別的程序有影響。所有這些工作你都要自己完成。這種情況下,不但效率低下,而且很容易出錯(cuò)。
而現(xiàn)代操作系統(tǒng)的發(fā)展,把所有這些細(xì)節(jié)都屏蔽了。我們要用 Java 向磁盤寫點(diǎn)數(shù)據(jù),只需要幾條語句,至于數(shù)據(jù)被寫到磁盤的什么位置,怎么使用CPU,怎么開辟內(nèi)存緩存區(qū),我們都不用管,操作系統(tǒng)在后臺(tái)自動(dòng)幫你完成這些工作,他不但效率高,而且基本不會(huì)出錯(cuò)。從這個(gè)意義上說,Dos、Linux、Windows 也是一塊塊“云”,把復(fù)雜的細(xì)節(jié)放到云后面,讓我們可以關(guān)注更重要的東西。
本來,目前這些操作系統(tǒng)已經(jīng)可以滿足我們的要求,例如我們做個(gè)個(gè)人網(wǎng)站、或者配置個(gè)企業(yè)服務(wù)器,都可以工作得很好。
但是,隨著一些超大型的互聯(lián)網(wǎng)公司的出現(xiàn),一些新的、麻煩的細(xì)節(jié)問題又出現(xiàn)了,原先的老式的“云”已經(jīng)無法遮擋住這些新的問題。比如,像 Google、亞馬遜等這些大型的互聯(lián)網(wǎng)公司,動(dòng)輒就擁有十幾萬臺(tái)服務(wù)器,如果你是 Google 公司的一名員工,你完成了一些代碼,想上傳到公司的服務(wù)器讓它工作,但是這里有十幾萬臺(tái)服務(wù)器,你選擇哪臺(tái)呢?是三萬八千五百四六號(hào)服務(wù)器比較好,還是六萬九千八百二三好服務(wù)器比較好呢?而且,不同的服務(wù)器有各種各樣的數(shù)據(jù)庫,有各種各樣的操作系統(tǒng),等等等等,一切你都要自己考慮。于是,我們又回到了早年那種效率低下,容易出錯(cuò)的境地。
好在,電腦本來就是一種自動(dòng)化的機(jī)器,我們做不好,交給機(jī)器管理就是了。于是,現(xiàn)在所說的“云”出現(xiàn)了。
你還是 Google 公司的一名員工,你同樣完成了一些代碼,想上傳到公司的服務(wù)器讓它工作。但是你不用考慮公司有多少臺(tái)服務(wù)器,你只要告訴“云”,我要上傳這些文件,它就會(huì)幫你完成這項(xiàng)工作。具體存到那臺(tái)服務(wù)器上你不用管,有可能今天在這臺(tái)上,或許明天來個(gè)“磁盤整理”又跑到那臺(tái)上去了,但是不管這些文件在那里,你需要它的時(shí)候只要告訴“云”,拿回來,它就自動(dòng)幫你找到。同樣,你有一條數(shù)據(jù),只要告訴“云”,存入數(shù)據(jù)庫,具體什么類型的數(shù)據(jù)庫,怎么連接,怎么釋放,你都不用操心。云屏蔽了所有這些細(xì)節(jié)。
從我試用兩天 GAE 感覺,它仍然很低級(jí),只提供了一些底層服務(wù),用戶接口并不友好。如果類比成 PC 操作系統(tǒng),甚至還達(dá)不到 Dos 的水平。打個(gè)比方,要玩PC,你可能不需要計(jì)算機(jī)組成原理的知識(shí)了,但是你想玩得轉(zhuǎn),必須得懂操作系統(tǒng)原理和匯編語言,這讓人很不爽。
當(dāng)然,底層服務(wù)完善了,上層接口也會(huì)慢慢友好的。我的設(shè)想的用戶接口,文件管理應(yīng)該模擬 ftp、數(shù)據(jù)庫應(yīng)該模擬關(guān)系型數(shù)據(jù)庫管理,表面上看起來,用戶與過去管理一個(gè)單臺(tái)服務(wù)器、或者虛擬主機(jī)沒有任何區(qū)別。當(dāng)然,這些模擬只是表面上看起來和過去一樣,實(shí)際上底層已經(jīng)發(fā)生了很大的變化。這樣,以前的習(xí)慣和知識(shí)都不用改變,這才是真正的“云”。如果要暴露過多的細(xì)節(jié)需要考慮,還都是一些新創(chuàng)造出來的知識(shí),那還能稱做“云”嗎?
建議:
1、如果你是玩票性質(zhì),想自己弄個(gè)免費(fèi)虛擬主機(jī)玩玩,可以考慮;但是要付出學(xué)習(xí)成本;
2、如果你的應(yīng)用需要幾百臺(tái)、甚至幾千臺(tái)服務(wù)器,你也可以考慮租用“云服務(wù)”。雖然要付出學(xué)習(xí)成本,但是可以節(jié)約大規(guī)模硬件管理成本。
3、如果你想弄個(gè)個(gè)人應(yīng)用,建議還是租用虛擬主機(jī),現(xiàn)在價(jià)格都很便宜;如果你是企業(yè)應(yīng)用,但是服務(wù)器數(shù)量很少,最好也按照老式方法來。
4、如果你有幾千臺(tái)服務(wù)器,但你是技術(shù)牛人,建議你自行開發(fā)出比 Google 亞馬遜還牛的“云”操作系統(tǒng)