Cloud Computing 雲端運算

Posted by Mr. Saturday

http://www.research.att.com/files/grid_computing_technology.gif前一陣子在新聞上看到不少有關於 Cloud Computing (雲端運算) 的報導,不過看看台灣的報導似乎都不是相當深入或是明確,於是我興起了寫這一篇文章的念頭。這篇文章是我自己對於雲端運算的理解,還希望各位讀者能一起參與討論,提供不同的見解。有機會的話,我也希望之後能夠繼續寫一些有關雲端運算中所包含的粗淺的技術介紹。

好吧,開門見山:雲端運算不是技術它是概念。為什麼這樣說呢?因為 cloud computing 本身並不代表任何一項資訊科技的技術,它是一種電腦運算的概念,而一種概念就會有許多不同的方式去實踐,這個時候才會有不同的技術衍伸出來。就好像我們聽過 pervasive computing、ubiquitous computing、parallel computing 一樣,這些都是運算的概念,不是單指一項特定的技術。cloud computing 也不例外,它本質上就是代表分散式運算 (distributed computing) 的概念。而分散式運算說穿了,就是讓一些不同的電腦同時去幫你做事情、進行運算,所以你有兩台電腦也好、十萬台電腦也好,只要你有超過一台電腦,而且讓他們可以互相溝通,一起同時幫你做事情,恭喜你,這就是分散式運算。


好吧,如果雲端運算不過就是分散式運算罷了,故事就這樣結束也太沒意思了。那我們就繼續從其他名詞的出現繼續看下去好了。

大家可能同時也聽過 grid computing (網格運算) 這個名詞,相信滿多人覺得網格運算跟 cloud computing 很像。其實 cloud computing 在概念上跟 grid computing 並沒有非常嚴格的區隔或是很大的不同,兩者均可看成是 distributed computing (分散式運算) 衍伸出來的概念。grid computing 一詞出現得較早,將重點的概念放在異質系統之間運算資源的整合,簡單來說,就是讓不同等級的電腦、或是不同作業系統的電腦,彼此之間可以透過通訊標準來互相溝通,分享彼此的運算資源。在網際網路還沒有今天這麼發達之前,企業採用 grid computing,很大的原因是為了讓組織內部的 IT 資源達到更良好的使用率。

當大家努力去實現這樣的一個概念時,其實就促成了網際網路的蓬勃發展,因為網路本身就是在強調不同電腦之間的溝通以及合作,於是在各項基礎設施包括頻寬、通訊標準、電腦運算能力以及運算架構都逐漸發展成熟之後,提供給開發者或是一般使用者的網路服務便開始出現,這些網路服務 (Web Service) 提供給使用者簡單的介面來存取一些資源。當然一開始的時候,企業提供出來的,都是一些相當陽春的網路服務。

這些 Web Service 繼續發展下去,時至今日出現了像 Google、Yahoo!、Amazon 等等網路巨獸,這些大公司有能力去購買數以萬計的伺服器,並且把這些電腦串起來,成為一個龐大的運算資源。而龐大的運算資源自然就意味者更為多樣化和以前無法提供的新服務。所有的人現在可以在網路上不同的地方,利用各大企業開放出來的運算資源,進行資料的運算或是提供服務給使用者,於是就在這樣的情況之下,cloud computing 被提了出來。因為現在無論是一般的使用者或是開發者,都透過網路來取得資料或是進行資料運算,自己本地端的運算資源雖然有限,還是可以透過網路進行複雜的運算,結果資料就像是從天上的雲端掉下來一樣,相信學資訊的讀者都對於將網際網路表示成一朵雲的圖示不會陌生。例如下圖:

http://sturtevant.com/reed/pres3.gif

所以在我看來,cloud computing 並不代表任何單一技術的突破或是革新,它代表的是分散式運算本身的一種成熟,就好像我們看到網路發展到一定程度了,就有人喊出了 Web 2.0,都是一樣的道理。

喜歡這篇文章嗎? 分享出去給作者一點鼓勵吧!