『Raptor』SD2C之網格與雲計算

原文鏈接:http://blog.csdn.net/Raptor/archive/2008/12/23/3589214.aspx

 

作者:Raptor

 

這次的SD2C大會中,雲計算無疑是最風光的技術話題(沒有之一)。相比之下,曾經風光的網格技術就只有Oracle還在提了。

回來以後在BT妓術羣及FB飯局上跟令狐他們討論過這個話題,令狐仍然對網格技術充滿期望——《網格網絡的設想》。

如果單純從技術角度說,雲計算從某種意義上的確是退步了,從網格的平等分佈式應用重新變成了集中式集羣應用。不過我後來進一步思考以後發現二者的根本區別並不是在技術上——至少不是主要在技術上,而是商業模式上。

網格計算更傾向於在技術上充分利用各分佈機器的空閒計算能力。而云計算則除了技術上使用集中的服務器計算以外,最主要的是在此基礎上提供的服務——包括硬件和基礎平臺支持服務以及最重要的應用服務。即所謂的Software as a Service(SaaS)。

兩相對比就可以發現:網格計算更像是一種技術理想主義的產物,前景很美妙,但是實現難度巨大卻又沒有什麼顯而易見的商業模式。相對的雲計算雖然需要相當大的硬件軟件和人力資源投入,但是它的商業模式卻很清晰,那就是以這些投入爲成本構造的資源可以出租給需要的用戶,以此盈利。我想這就是爲什麼最近一段時間以來雲計算能夠迅速地蓋過網格計算。而Oracle之所以還在堅持網格計算,無非是因爲它是一個純軟件公司,網格計算可以讓它的軟件擺脫硬件條件的束縛—— 至少是在一定程度上。

所以從本質上說,二者只是表面的相似而具有本質的不同。

說到雲計算,這次的大會上被引用得最多的實例就是GMAIL——這是雲計算應用最典型的例子。包括很多人對於雲計算安全性的質疑,都可以用這個例子加以解答。

至於網格的未來,令狐的設想固然很美妙,但是就目前來說存在着巨大的現實困難。就目前實現的例子來說:Internet和P2P應用都是基於簡單的協議。

Internet 協議就不說了,做的事情簡單得不能再簡單,就是把一個數據包從一個節點傳到另一個節點,如果不需要分佈處理的話,這就是一個完全沒有複雜性的應用。P2P 應用也很簡單,只是簡單的數據傳輸,而且它的存儲也很簡單——每個節點都儘可能存儲它需要的所有數據(也就是它要下載的文件)。但是除此之外的絕大部分應用都無法簡化成類似這樣的簡單協議。


比如數據庫,即使是Oracle的網格也不可能把數據庫的內容全部分佈到Internet上任何一臺可用的計算機上去——因爲你不知道它是否安全,是否可靠。

目前最接近理想的網格應該就是自由之網了——不但有分佈訪問,還有分佈存儲,但仍然是針對特定應用,難以作普遍化的推廣。

令狐雖然已經指出來安全、效率、公平三個問題,但這顯然還只是困難的一小部分——或者說從這幾朵小烏雲將會引出一大堆近乎不可能解決的麻煩事。

先從公平來說,令狐在回覆裏補充說明了一下TR指出的那個所謂“我(pMq)不喜歡的特權節點”的問題,這是我們在羣裏討論時我指出來的,如果網格中存在特權節點的話,那麼擁有特權節點者即擁有網格,也就破壞了公平性——爲什麼多數人要爲擁有特權節點的少數人貢獻計算量呢?即便這些計算量是“空閒”的。令狐這個補充說明指出了這個不是特權節點,而是應用提供節點,類似於雲計算的入口。或者說這是應用提供者,的確不能算是有什麼特權,但除非這種應用提供者是免費爲大家服務,否則多數人爲少數人服務的問題還是存在。

所以我更願意用一個小的桌面應用來假設——這個時候入口節點就是本機,然後通過網絡去利用全網格的計算量了存儲力。這個時候就需要這個本機來做任務的分解、安全性的處理(加密解密)、數據的分發和回收……可見爲了利用分佈的計算量,增加了很多不必要的計算。

於是來到效率這個問題,增加的這些計算量很可能會遠遠大於從分佈式計算中得到的好處——這幾乎是必然的,除非把這些工作也分佈下去,但是這樣一來安全性又沒有保障了。

所以我說這幾朵小烏雲的後面會很麻煩,因爲它們之間是相互制約的——至少對於很多應用是如此,只是對特定的應用有優勢。

基於這個理由,我的觀點更傾向於——未來的分佈式應用會更多地採用雲計算的模式,而網格還只能限定於特定應用。

其實很早之前我就設想過網格很適用於像網遊這樣的應用,雖然整個網遊系統可能很大,玩家可能很多,但是每個玩家面對的數據(比如地圖)只是一小部分,需要交互的其它玩家也只是少數,所以實際上很多的工作都可以分佈到客戶端去處理,而服務端只需要處理涉及運營商利益的部分,比如裝備——甚至通過足夠安全的設計(用客戶端交叉驗證取代服務器驗證),這些數據及其處理也可以放到客戶端,服務器只作爲這部分核心數據的備份和最終校驗。這樣一來遊戲運營商的服務器和帶寬成本就可以大幅下降,對於節能環保也是很有好處的,哈哈哈。

與此相關的還有一個想法源於蟈蟈《多緩存並存》,在這種網遊網格中也可以考慮——每個玩家之間視彼此相關性和距離相互緩存此的數據,這樣一則可以減少彼此的通訊數據,在玩家變換交互時交換數據的速度也可以加快,相當於一種多級緩存(只要每個玩家都在本地緩存一級相關玩家數據,那麼就可以在一級相關玩家客戶端中獲得大部分二級玩家數據,真的到了需要全局數據的時候再找服務器要)。

當然這只是一個設想,要實現還是有很多困難的。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章