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,都是一樣的道理。

喜歡這篇文章嗎? 分享出去給作者一點鼓勵吧!
  • http://hnigel.blogspot.com/ hnigel

    加了那朵雲
    觀念解釋的很清楚XD
    感謝

  • http://hnigel.blogspot.com/ hnigel

    加了那朵雲
    觀念解釋的很清楚XD
    感謝

  • Federer

    一直搞不懂網格運算和雲端運算的差別,以前的看法:不就是用很多台電腦共同做一項服務的運算嗎?現在聽您一說,變成好像雲端運算是一種行銷廣告名詞?
    期待您有更深入的講解,如果能舉Google怎麼做雲端運算的例子,看起來會更親切。

  • Federer

    一直搞不懂網格運算和雲端運算的差別,以前的看法:不就是用很多台電腦共同做一項服務的運算嗎?現在聽您一說,變成好像雲端運算是一種行銷廣告名詞?
    期待您有更深入的講解,如果能舉Google怎麼做雲端運算的例子,看起來會更親切。

  • http://william.cswiz.org/blog/ william

    此文似乎仍然沒有講 grid computing 和 cloud computing 的區別在哪。

    像「現在無論是一般的使用者或是開發者,都透過網路來取得資料或是進行資料運算,自己本地端的運算資源雖然有限,還是可以透過網路進行複雜的運算,結果資料就像是從天上的雲端掉下來一樣」這樣的字眼,也可以原封不動拿來套在 grid computing 上面。

  • http://william.cswiz.org/blog/ william

    此文似乎仍然沒有講 grid computing 和 cloud computing 的區別在哪。

    像「現在無論是一般的使用者或是開發者,都透過網路來取得資料或是進行資料運算,自己本地端的運算資源雖然有限,還是可以透過網路進行複雜的運算,結果資料就像是從天上的雲端掉下來一樣」這樣的字眼,也可以原封不動拿來套在 grid computing 上面。

  • http://mmdays.com Mr. Saturday

    grid computing 和 cloud computing 主要的區別是在於概念上, 前者強調異質系統運算資源的整合, 後者則是強調運算的結果和資料來自於本地端以外的地方, 在技術上的探討兩者同樣是分散式運算, 但是前者是從技術開發者的角度來看, 後者則是從使用者的角度來看, 這是我覺得最大的區別.
    這兩個名詞都是在陳述本質上相同的概念, 只是陳述的方式不同, cloud computing 更從使用者和網際網路的觀點出發, 其實在技術上, 我認為 grid computing 出現的那段時間, 分散式運算在實務上有明顯的進步, 像是 globus toolkit 的推出, 就代表了一個分散式運算的里程碑, 而網際網路的發達, 又把分散式運算跟網際網路結合在一起思考, 所以有了 cloud computing 一詞的出現.
    在 cloud computing 被提出的這段時間, 分散式運算技術也是持續發展, 像是 Google 的 MapReduce 以及其 open source 版本 Hadoop, 這些都是技術上的發展, cloud computing 或是 grid computing 都可以把這些發展納入他們想要表達的概念之中.

  • http://mmdays.com Mr. Saturday

    grid computing 和 cloud computing 主要的區別是在於概念上, 前者強調異質系統運算資源的整合, 後者則是強調運算的結果和資料來自於本地端以外的地方, 在技術上的探討兩者同樣是分散式運算, 但是前者是從技術開發者的角度來看, 後者則是從使用者的角度來看, 這是我覺得最大的區別.
    這兩個名詞都是在陳述本質上相同的概念, 只是陳述的方式不同, cloud computing 更從使用者和網際網路的觀點出發, 其實在技術上, 我認為 grid computing 出現的那段時間, 分散式運算在實務上有明顯的進步, 像是 globus toolkit 的推出, 就代表了一個分散式運算的里程碑, 而網際網路的發達, 又把分散式運算跟網際網路結合在一起思考, 所以有了 cloud computing 一詞的出現.
    在 cloud computing 被提出的這段時間, 分散式運算技術也是持續發展, 像是 Google 的 MapReduce 以及其 open source 版本 Hadoop, 這些都是技術上的發展, cloud computing 或是 grid computing 都可以把這些發展納入他們想要表達的概念之中.

  • david

    目前看來cloud computing 大部份還是在做大量資料的分散式運算, 如web log 的分析, 網站關鍵字索引..等. 在高速計算似乎還沒看到有任何的應用出現.

  • david

    目前看來cloud computing 大部份還是在做大量資料的分散式運算, 如web log 的分析, 網站關鍵字索引..等. 在高速計算似乎還沒看到有任何的應用出現.

  • TaiShau

    此文似乎仍然沒有講 grid computing 和 cloud computing 的區別在哪。

    {
    個人的體會:grid computing 強調的利用大量異構電腦(通常為桌面)的未用資源(CPU周期和磁碟存儲)進行分散式運算。
    cloud computing 強調的是 大企業的伺服器群組進行分散式運算。

    不知道我的體會是否正確?
    }

  • TaiShau

    此文似乎仍然沒有講 grid computing 和 cloud computing 的區別在哪。

    {
    個人的體會:grid computing 強調的利用大量異構電腦(通常為桌面)的未用資源(CPU周期和磁碟存儲)進行分散式運算。
    cloud computing 強調的是 大企業的伺服器群組進行分散式運算。

    不知道我的體會是否正確?
    }

  • http://blogpofeng.org pofeng

    FYI: http://www.enomalism.com/ ( LGPL )
    apache httpd vhost 的成熟, 促使虛擬主機產業的誕生
    linux 虛擬化技術的成熟, 應該會促進 platform as a service 的產業誕生

  • http://blogpofeng.org pofeng

    FYI: http://www.enomalism.com/ ( LGPL )
    apache httpd vhost 的成熟, 促使虛擬主機產業的誕生
    linux 虛擬化技術的成熟, 應該會促進 platform as a service 的產業誕生

  • yuyussu

    關於 TaiShau 的看法我覺得與 Mr. Saturday 有蠻大的出入。我反倒覺得 grid computing 是為了達成某件特定事情將一群電腦集合起來的運算方式,如之前的 UD 或是現在的 WCG。反觀 cloud computing 則比較沒有這麼強烈的目的性,只是純粹提供一個服務如 googleMap API 之類的,讓網路上的其他開發者能夠取其服務來做其它的應用,而在這個過程中 googleMap 端所提供給開發者的運算就算是一種 cloud computing。
    小的的淺見,請鞭。 XDD

  • yuyussu

    關於 TaiShau 的看法我覺得與 Mr. Saturday 有蠻大的出入。我反倒覺得 grid computing 是為了達成某件特定事情將一群電腦集合起來的運算方式,如之前的 UD 或是現在的 WCG。反觀 cloud computing 則比較沒有這麼強烈的目的性,只是純粹提供一個服務如 googleMap API 之類的,讓網路上的其他開發者能夠取其服務來做其它的應用,而在這個過程中 googleMap 端所提供給開發者的運算就算是一種 cloud computing。
    小的的淺見,請鞭。 XDD

  • http://william.cswiz.org/blog/ william

    如果以用途來畫分,grid computing 可粗分為 computational grid、data grid、scavenging grid。

    六樓 TaiShau 所講的「利用大量異構電腦(通常為桌面)的未用資源(CPU周期和磁碟存儲)進行分散式運算」只是其中的 “scavenging grid”,而「大企業的伺服器群組進行分散式運算」則早就是 “computational grid” 的目的,並不是 cloud computing 的專利。

    四樓 Mr. Saturday 所講的 cloud computing「強調運算的結果和資料來自於本地端以外的地方」、「是從使用者的角度來看」,但這些都不是兩者的主要區別,也都不是 cloud computing 的專利。

  • http://william.cswiz.org/blog/ william

    如果以用途來畫分,grid computing 可粗分為 computational grid、data grid、scavenging grid。

    六樓 TaiShau 所講的「利用大量異構電腦(通常為桌面)的未用資源(CPU周期和磁碟存儲)進行分散式運算」只是其中的 “scavenging grid”,而「大企業的伺服器群組進行分散式運算」則早就是 “computational grid” 的目的,並不是 cloud computing 的專利。

    四樓 Mr. Saturday 所講的 cloud computing「強調運算的結果和資料來自於本地端以外的地方」、「是從使用者的角度來看」,但這些都不是兩者的主要區別,也都不是 cloud computing 的專利。

  • http://www.more.game.tw/index.php 小遊戲

    小弟用比較淺顯的知識來嘗試理解兩者的差別。就技術層面上 grid computing 和 cloud computing 差別很小,在技術應用上差距也不大。

    差別比較大的地方是在出現的時代和服務的對象。

    在 grid computing 一詞被提出的時候,web2.0還不見蹤影,所以他是web1.0時代的產物。在web1.0的時代裡,web服務還無法以現今web2.0的方式與使用者互動。所以網格運算能力用途多半在於大企業內部資料運算或是科學運算。

    cloud computing 是最近被提出的,屬於web2.0時代的產物。在web2.0時代裡,最為風行的莫過於莫過於各式各樣的web service,例如 google map, gmail等,這些功能都可以運用各式的api組成各種有趣的應用。這時雲端的運算能力多被應用在基於web上的服務,而且多半是免費的服務,所謂白雲之下人人平等,人人皆有使用服務的權利。也就是說,雲端運算能力的使用者事實上即是web2.0時代的網際網路使用者。

    總括來說,以出現的時代和服務的對象來區分的話,甚至可以導出一個結論,即
    cloud computing = grid computing 2.0

    以上是小弟的見解,歡迎指教。

  • http://www.more.game.tw/index.php 小遊戲

    小弟用比較淺顯的知識來嘗試理解兩者的差別。就技術層面上 grid computing 和 cloud computing 差別很小,在技術應用上差距也不大。

    差別比較大的地方是在出現的時代和服務的對象。

    在 grid computing 一詞被提出的時候,web2.0還不見蹤影,所以他是web1.0時代的產物。在web1.0的時代裡,web服務還無法以現今web2.0的方式與使用者互動。所以網格運算能力用途多半在於大企業內部資料運算或是科學運算。

    cloud computing 是最近被提出的,屬於web2.0時代的產物。在web2.0時代裡,最為風行的莫過於莫過於各式各樣的web service,例如 google map, gmail等,這些功能都可以運用各式的api組成各種有趣的應用。這時雲端的運算能力多被應用在基於web上的服務,而且多半是免費的服務,所謂白雲之下人人平等,人人皆有使用服務的權利。也就是說,雲端運算能力的使用者事實上即是web2.0時代的網際網路使用者。

    總括來說,以出現的時代和服務的對象來區分的話,甚至可以導出一個結論,即
    cloud computing = grid computing 2.0

    以上是小弟的見解,歡迎指教。

  • http://www.more.game.tw/index.php 小遊戲

    哈…剛寫完就找到維基百科的解釋
    大家看看吧
    “Cloud computing is a new (circa late 2007) label for the subset of grid computing that includes utility computing and other approaches to the use of shared computing resources, rather than having local servers or personal devices handling users’ applications.”

    http://en.wikipedia.org/wiki/Cloud_computing

  • http://www.more.game.tw/index.php 小遊戲

    哈…剛寫完就找到維基百科的解釋
    大家看看吧
    “Cloud computing is a new (circa late 2007) label for the subset of grid computing that includes utility computing and other approaches to the use of shared computing resources, rather than having local servers or personal devices handling users’ applications.”

    http://en.wikipedia.org/wiki/Cloud_computing

  • Pingback: » MMDays - mmdays - MMDays本週回顧 (2/11~2/17,2008)()

  • 語焉不詳

    如果照11樓貼的wiki解釋, cloud computing 屬於 grid computing 的一種?

  • 語焉不詳

    如果照11樓貼的wiki解釋, cloud computing 屬於 grid computing 的一種?

  • arcashui

    看到各位先進的講解, 本人有一些看法提出來請各位先進指正
    1. 網路時代的來臨, 當你要提供一項服務, 就必須要在很短的時間內, 達到效果
    以目前的單一伺服器來說, 負擔不小, 就算硬體很先進, 仍有一些困境必須克服
    因此有了網格運算的觀念出現,將一些運算功能外包給其他運算體來完成
    2.雲端與網格之間只是方式不同, 在理念跟觀念上是相近的,
    為什麼這麼說呢,
    兩者皆是為了在速度上能在最短的時間中把結果呈現
    兩者都是以分散處理的精神在走

  • arcashui

    看到各位先進的講解, 本人有一些看法提出來請各位先進指正
    1. 網路時代的來臨, 當你要提供一項服務, 就必須要在很短的時間內, 達到效果
    以目前的單一伺服器來說, 負擔不小, 就算硬體很先進, 仍有一些困境必須克服
    因此有了網格運算的觀念出現,將一些運算功能外包給其他運算體來完成
    2.雲端與網格之間只是方式不同, 在理念跟觀念上是相近的,
    為什麼這麼說呢,
    兩者皆是為了在速度上能在最短的時間中把結果呈現
    兩者都是以分散處理的精神在走

  • Pingback: Open Platform Lab » Blog Archive » 云计算解读()

  • Pingback: 紀錄片《新信息革命-雲計算技術的衝擊》 | TechNow.com.hk()

  • d

    我覺得7F的 platform as a service 比較明確
    更具體.. 就是一些local軟體漸漸會線上化

  • d

    我覺得7F的 platform as a service 比較明確
    更具體.. 就是一些local軟體漸漸會線上化

  • Pingback: 淺談雲端運算 - 哇寶部落()

  • Pingback: 雲端科技… | 手牽手,一起走()

  • Pingback: 不斷滾動的石魔()

  • Pingback: 雲端運算服務的商業模式,不是只關硬體廠商的事 - MMDays()

  • BEN

    談雲端 主要2個concept
    虛擬化,自動化
    只要你懂以上2個概念你就懂的雲端是什麼
    ———————–
    雲端不是分散式運算
    你以為程式放在雲端上就自動變成分散式運算?
    不然你以為那些 程式設計師在做什麼的…
    ———–
    雲端和網格
    跟本是apple to orange…

  • BEN

    談雲端 主要2個concept
    虛擬化,自動化
    只要你懂以上2個概念你就懂的雲端是什麼
    ———————–
    雲端不是分散式運算
    你以為程式放在雲端上就自動變成分散式運算?
    不然你以為那些 程式設計師在做什麼的…
    ———–
    雲端和網格
    跟本是apple to orange…

  • BEN

    以前grid computing的缺點在於
    沒自動化,你要讓不同電腦溝通,那些部份都要看自己寫程式
    你要deploy code on your grid, 那需要花很大精神的
    所以如果那些麻煩的事情 電腦可以幫你自動化 那就是很好
    這就是雲端kick in的地方
    —————–
    在講個一個real world application
    http://www.rightscale.com/
    right scale 他給你一個服務就是
    他會跟你需要的服務給你隨時增加或減少 虛擬伺服器

    解釋一下好了,像social network 網站所需的網路資源是bell curve
    你有peak 和low, 你的伺服器需要滿足peak hour所需要的資源
    但平常這些額外的資源都是浪費的
    所以right scale會幫你做的事
    你先買固定的虛擬伺服器 滿足你的low time
    然後隨之 使用者變多時 多的虛擬機會加入服務 然後你付額外的錢這樣
    然後當peak hour 過了之後 他會幫你減少伺服器

    這在以前沒有雲端是不能做的

  • BEN

    以前grid computing的缺點在於
    沒自動化,你要讓不同電腦溝通,那些部份都要看自己寫程式
    你要deploy code on your grid, 那需要花很大精神的
    所以如果那些麻煩的事情 電腦可以幫你自動化 那就是很好
    這就是雲端kick in的地方
    —————–
    在講個一個real world application
    http://www.rightscale.com/
    right scale 他給你一個服務就是
    他會跟你需要的服務給你隨時增加或減少 虛擬伺服器

    解釋一下好了,像social network 網站所需的網路資源是bell curve
    你有peak 和low, 你的伺服器需要滿足peak hour所需要的資源
    但平常這些額外的資源都是浪費的
    所以right scale會幫你做的事
    你先買固定的虛擬伺服器 滿足你的low time
    然後隨之 使用者變多時 多的虛擬機會加入服務 然後你付額外的錢這樣
    然後當peak hour 過了之後 他會幫你減少伺服器

    這在以前沒有雲端是不能做的

  • Pingback: Autodesk Dragonfly 好玩好用室內演示軟件()

  • Pingback: Chessboard » Blog Archive » 名詞解釋: 雲端運算(Cloud Computing)()

  • Pingback: Autodesk Dragonfly 好玩好用室內演示軟件 | itAcademia()