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