(感謝網友xinfeiyanrjgc的辛勤翻譯! )
最近關於「Cloud Computing」的新聞層出不窮,Business Week刊登了一篇題為「Google and the wisdom of clouds」的文章,隨後Ashlee Vance對該文章進行了評論,Nick Carr還專門寫了一本介紹雲計算的書「Big Switch」。 那麼到底什麼是雲計算? 和其他技術相比它有什麼特別之處? 它能給IT帶來什麼新的改觀?
雲計算的基本觀點是,在將來計算不一定非要在本地電腦上進行,也可以在由協力廠商計算和存儲商操縱和控制的集中設備上進行,這樣可以減少解壓和安裝軟體的次數。
當然這並不是一個全新的思想。 事實上,早在1960年,計算的奠基人John McCarthy就預言:將來有一天計算將被當作一種公共設施來組織,同時也對其實現方式做了預測。
到20世紀90年代中期,術語grid被用來描述那些允許消費者按需獲取計算力的技術。 我(Ian Foster)和其他一些同行指出,通過制定用於請求計算力的標準協定,我們可以構建一個在形式和應用上類似于電力網的計算網格。 研究人員隨後通過各種方式對該思想進行了擴展和延伸,開發了一批大規模集成系統(federated system),比如TeraGrid、 Open Science Grid、caBIG、 EGEE和 Earth System Grid等。 這些系統不僅能按需提供計算力,而其還可以提供資料、軟體等資訊。 OGF和OASIS等標準化組織也制定了一些相關標準。 大所數情況下,在產業界grid和cluster是等價的,但是目前還沒有出現真正意義上的商用化網格計算供應商,至少到最近還沒有看到。
那麼「Cloud Computing」可以被單純的看作是Grid的又一個新名稱嗎? 在IT領域,技術每升級或是自我更新一次大概需要五年的時間,所以現在很難對該問題做出明確的答覆,(但是我們可以分情況從不同的角度來思考這個問題)。
可以認為二者是等同的,因為二者的視角或出發點是相同的,都想通過把電腦的使用由自己購買和操作轉向由協力廠商提供,以便減少計算成本,增強計算的可靠性和靈活性。
但也可以說它們之間存在差異:現在的狀況和十年前相比有很大區別,目前對海量資料進行分析和處理的應用在很大程度上增加了人們對計算力的需求。 在意識到從巨型機向商用機群轉變的好處的同時,我們也發現對這些機群進行管理和操作需要昂貴的成本。 另一方面,我們擁有低成本的虛擬化實現技術。 而且最重要的是Amazon、Google和Microsoft等公司已經花費了數億美元用於構建包含成千上萬台機器的商用網格。 並且只要一張信用卡就可以實現對分佈在世界各地的數百個資料中心的數十萬機器的按需訪問這一應用前景是十分誘人的(這些資源適合於解決一些需要處理大規模和具有潛在分佈資料的問題)! 因此可以說二者所操縱的資料規模是不同的,對這些新的大規模資料進行操作可能需要一些完全不同的方法去處理相關的問題。 與此同時,它也可能會解決一些全新的還沒有被發現的問題,很多時候事實確實也是這樣的。
不過Grid和Cloud計算需要解決的問題在很大程度上是相似的。 二者有一些共同的需求:需要對大型設備進行管理;需要定義一些方法以便支援使用者發現、請求和使用由集中設備提供的資源和服務;在相應資源上執行一些高度並行的計算任務。 雖然它們在一些細節問題上存在差異,但這兩個社區都在為解決一些共同的問題而努力。
不幸的是,到目前為止,在商用雲計算系統中為了實現上述目標而採用的一些方法和技術不是開放和通用的。 相反,基本上都是一些公司為了方便自己使用而專門開發和管理的。 我們要在grid中實現不同供應商之間交互操作的初衷(就像電力網一樣)在雲計算中還沒有得到體現,而grid技術和相關協定對該問題作了明確的說明,這一點不應當被忽視。
很多人最終的觀點是:在cloud和grid身上我們看到了同樣的市場。 第一個雲電腦群(cloud computing clusters)的出現和幾年前的網格機群(grid cluster)非常相似。 或許Oracle 11g的出現會給二者的結合和發展帶來一個新的契機。
那麼在將來到底哪一個更有發展前景呢? cloud還是grid? 我在這裡想大膽地做一些預言,我覺得計算經濟會越來越像能源經濟。 但不管怎樣,明天的能源和計算經濟的發展都不會跟昨天的電力網一模一樣。 隨著跟大規模區域生產者共存的小規模生產者(對能源經濟來講有wind, solar, biomass等;對計算經濟來講有local clusters和 embedded processors等設備)數目的不斷增加, 以及在它們之間進行動態負載分配的不斷完善,相信能源和計算經濟都會朝著微型產品和大型設備相混合的方向發展。 我知道雖然計算力的發展不可能跟電力的發展走完全一樣的道路,但是我堅信我們還是能看到由類似的需求驅動的相似的演變和發展過程。
在構建分散式grid或是cloud(groud?)的過程中,按需提供和配置的綜合虛擬系統必須要能夠按照終端使用者要求提供相應的計算力和性能。 我們需要定義協定用於支援使用者和服務提供者發現和向其他提供者分發需求,對他們的資源預留機制進行監控和管理,完成相應的支付管理。 我們也需要相關工具去管理底層資源實現分散式運算。 我們既需要集中管理的雲計算裝置,也需要支援分散式的和交互操作的網格設備。
未來必須的協定和工具中的一部分將出自Amazon和 Google的工作人員,一部分將來自致力於網格的研究人員,還有一部分將來自grid和cloud之後不管我們稱之為什麼(或許groud)的研究人員。 從某種意義上來講,這些不同的社區不管是各自沿著平行的路線發展還是最終找到共同的歸宿都是一件十分吸引人的事情。