一般的業界比較喜歡用一些新名詞來體現自己的戰略眼光和與對手的區隔。當幾個月前google提出云計算的概念的時候,amazon說自己做的事情就是云計算,IBM、intel、sun都聲稱自己在云計算領域有深刻的計劃。只可惜大家聽了半天仍然不知道什么是云計算,依舊云里霧里知道這個與計算有關,干脆就叫“云計算”吧。
到底云計算是什么呢?
這個問題不好回答,專業一點的回答是:云計算是依靠強大的計算能力,使得成千上萬的終端用戶不擔心所使用的計算技術和接入的方式等都能夠進行有效的依靠網絡連接起來的硬件平臺的計算能力來實施多種應用。
非專業一點的回答就是,一堆你不需要搞清楚的硬件、軟件在服務你。這堆硬件和軟件構成的東東大的像朵云彩,又擁有極強的計算能力,這就叫云計算。
那么云計算是怎么來的?我們為什么又需要云計算?
1. 云計算的前身是grid computing ,說起grid computing 可能知道的人就很多了,就是傳統的網格計算。網格計算就是將一個計算分割成片段,提交到網絡系統上的各個計算機上(格點),工作做好進行匯總完成。比較流行的軟件例如globe bus + afs(提供存儲映射服務)。不過grid一般都是用在學術界,例如cern的幾個實驗都采用了大規模的grid計算,例如進行新粒子的發現,需要處理t級別的數據,單臺計算機的運算和存儲顯然是不可能完成的,因此就必須使用網格計算了。
2. 云計算有實實在在的例子么?很幸運,我們還可以找到幾個:google app engine(
http://code.google.com/intl/zh-CN/appengine/),Amazon的S3+EC2系統都是云計算的雛形。
3. 云計算的基礎是什么?最基本的需求:存儲+處理器,當然,要支持無數的應用請求并負責保證存儲和計算的性能,這兩方面都是挑戰。
4. 我自己能夠搭建一個云計算環境么?當然可以,我們可以利用開源的項目來搭建一個云計算環境:你可以利用hadoop+hbase+php(包裝API)也許就實現一個簡單的云計算環境。
5. 有沒有更簡單的例子?也許一個分布式的郵件系統就是一個云計算的雛形:計算分布在各個節點上,應用(郵件收發)通過一個統一的平臺來處理,也算是符合云計算的定義了,不過只能支持最簡單的一種固定應用。
6. 有沒有復雜一點的例子?google的云計算的邏輯關系:gfs 實現存儲,bigtable 實現結構化、半結構化數據存儲,map/reduce 實現將分布在各個節點上的計算和merage起來,剩下的就是進行job的管理器,管理工作的提交和觸發,然后就是我們看到的app engine了。
7. 應該關注哪些軟件?hadoop 項目應該是一個比較有前途的一個,當然powerset在hadoop之上的Hbase應該是一個更接近能夠替代簡單database的應用。
8.我們為什么需要云計算?很簡單,企業的雄心+個人電腦性能進展緩慢+我們處在數據指數膨脹的年代。當我們在google上提交一個搜索的時候,會有成千上萬的計算機被卷入這一個簡單的一個查詢過程中,未來的計算越來越龐大,到了我們干脆說“云”來替代其中的一切細節的時候。
9. 云計算平臺的下一步呢?云計算api的標準化也許是一個最需要進行競爭的,可惜基礎的技術平臺的完善還需要時日,而且云計算未來也許會是免費的,這個遵從“競爭導致利潤下降”的原則,難度不是么?當更多的云計算平臺出現的時候,然而跑在云上的應用卻沒有那么多,當然免費的午餐就會來。
10. 還有更有趣的么?當然,你可以提供一個云計算,利用google,amazon的云計算包含在你自己的云計算里,然后提供一個統一的api,或者也許未來的云計算會整合在一個,云里霧里,成為一個超大的云計算平臺,那個時候,也許自己家的電腦也可以接入云計算平臺成為其中的一個計算的提供者。這個聽起來很有意思,不過13年前就已經存在了,那個分布在全球電腦上的尋找外星et的屏保就是一個云計算的平臺,如果他們該行做云計算的話,估計能夠蓋過google和amazon。