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