國際知名的《經濟學人》(The Economist)以「雲端上的戰爭」為題,點出Google、微軟(Microsoft)、蘋果(Apple)三巨頭在爭搶雲端運算商機的激烈程度。以目前的態勢來看,以搜尋引擎起家的網路巨擘Google居於領先地位,但過去沉溺於壟斷個人電腦(PC)作業平台甜頭的微軟,也意識到這樣的改變,正投入大量的資源準備急起直追;雲端運算儼然成為超越web2.0與P2P運算科技的發展方向。2010年行政院第3193次院會核定通過「雲端運算產業發展方案」,規劃以5年共240億經費達成雲端運算1兆產值,創造智慧好生活,朝科技強國之路邁開大步[1]。 但何謂雲端運算?又包含那些發展重點?卻十分模糊。本文特別介紹雲端運算之主流概念,並以相關計畫執行成果加以舉例說明。
「雲端運算」不是新技術
雲端運算一詞最早是在1997年由南加州大學教授 Ramnath K. Chellappa 所提出。雲端運算並不是一個全新的技術,嚴格說來只是一個簡單的概念,即讓運算能力可以和水電一樣,即時取得,用多少付多少,好比早期以低運算能力之終端機連結主電腦進行運算。隨著無所不在、高速、行動化網路的持續發展,雲端運算其實是一條必然的道路-將運算、儲存放在遠端,以彌補終端設備能力不足。
在開始說明雲端運算以前,讓我們先來回顧計算機網路與雲端運算有關之重要發展歷史[2]:
• 1959年6月,Christopher Strachey發表虛擬化論文;虛擬化即雲端運算基礎架構之基石。
• 1961年,John McCarthy提出電腦運算能力應該與公用事業(水電)一樣,可以隨時取得、用多少付多少的想法。
• 1984年,Sun公司創始人之一John Gage說出了「網路就是電腦」的名言,強調分散式運算技術的可能性,雲端運算就是要此一理念變成現實[3]。
• 1996年,格網運算Globus開放程式碼之格網平台開始起步。
• 1997年,南加州大學教授Ramnath K. Chellappa提出雲端運算的第一個學術定義。
• 1998年,VMware成立並首次引入X86的虛擬技術。
• 1999年,Marc Andreessen創建LoudCloud,這是第一個商業化的IaaS(虛擬主機)平台。
• 2000年,SaaS(ASP)興起。
• 2004年,Google發布MapReduce論文。
• 2004年,Doug Cutting 和 Mike Cafarella依據Google公開之MapReduce論文發展了Hadoop計畫。Hadoop主要由HDFS、MapReduce和Hbase組成,其中HDFS對應到Google File System(GFS);MapReduce對應到Google MapReduce;HBase對應到Google BigTable。自此Hadoop成為Yahoo、學術界廣泛使用之雲端運算平台。
• 2006年,Amazon相繼推出線上存儲服務S3和動態運算雲端EC2等雲端服務。
• 2008年1月,Salesforce.com推出了DevForce,Force.com平台是世界上第一個平台即服務(PaaS)的應用。
• 2008年4月,Google App Engine發布。
• 2008年10月,微軟發布其公共雲端運算平台-Windows Azure Platform,並開始籌建雲端運算中心。
• 2008年,亞馬遜、Google和Flexiscale的雲端運算服務相繼發生當機故障,引發業界對雲端運算安全的討論。
• 2010年,行政院正式推動雲端運算產業發展方案,將雲端運算列為國家重要科技政策。
「雲端運算」即網路運算
所以說,「雲端運算」不是「新技術」或「技術」。「雲端運算」是一種概念,代表的是利用網路使電腦能夠彼此合作或使服務更無遠弗屆。在實現「概念」的過程中,產生出相應的「技術」。所謂「雲端」其實就是泛指「網路」,名稱來自工程師在繪製示意圖時,常以一朵雲來代表「網路」。因此,「雲端運算」用白話講就是「網路運算」。舉凡運用網路溝通多台電腦的運算工作,或是透過網路連線取得由遠端主機提供的服務等,都可以算是一種「雲端運算」。
雲端網路服務有三層
現在我們來介紹雲端網路中主要的三層:基礎設施即服務(Infrastructure as a Service, IaaS)、平台即服務(Platform as a Service, PaaS)、軟體即服務(Software as a Service, SaaS)。
在《電腦世界》(Computer World)一篇題為<雲端運算的過度混淆>(Cloud computing hype spurs confusion)文章中,引述了知名分析公司Gartner對「雲端運算」的分類方式,即「雲端服務」(Cloud Computing Services)與「雲端科技」(Cloud Computing Technologies)兩大類。雲端服務通常是指軟體即服務(Software as a Service, SaaS),雲端科技則是基礎設施即服務(Infrastructure as a Service, IaaS)、平台即服務(Platform as a Service, PaaS)。
服務使用者(一般使用者、程式開發者、伺服器管理員)不需要了解「雲端」中基礎設施的細節,不必具有相應的專業知識,也無需直接進行控制,只關注自己真正需要什麼樣的資源以及如何透過網路來得到相應的服務。
基礎設施即服務(Infrastructure as a Service, IaaS)通常代表了虛擬主機,你所需要的虛擬主機運算能力、網路頻寬、記憶體大小都可以動態調配,並依照使用量計算。此外分散式運算、負載平衡、系統備援等也透過IaaS廠商建構大型的IDC達到市場規模而降低服務的價格。在雲端時代,伺服器硬體環境可配合爆發性的服務需求動態租用。
而平台即服務(Platform as a Service, PaaS)可定義為:提供應用程式發展、布署、執行的平台。舉例來說Google application engine或Google map提供了雲端上的應用程式介面(API)、程式語言、函式庫讓企業可以在該平台上開發程式。某些人將Google map的API用於部落格上,在網頁提供Google map就是一個最好的範例。對於網路程式設計師來說,網頁設置於哪一台主機或平台並沒有差異,地圖的服務元件來自於Google的網路服務主機。而Google更新地圖功能時,程式設計師不需要修改程式碼或更新伺服器平台就可以即時享受到新的地圖功能[4]。
軟體即服務(Software as a Service, SaaS)的定義是:應用服務不需要安裝特殊軟體於電腦,當你開啟瀏覽器就能享受到服務,最常見的例子就是webmail。從早年的openwebmail到現在的gmail,透過網頁介面,使用者不需要再執行軟體安裝及設定,網管更新伺服器上的軟體界面後,下次登入時即可享受到新的功能。
在看完以上歷史後,或許你會回想起幾年前的ASP(applications service provider)、虛擬主機、虛擬網頁空間租借,其實這代表了資訊產業的環境與解決方案成熟;使用者開始思考將非核心業務外包,而服務業者開始以量來提供價格合理的服務。
Facebook & 開心農場
而在整個產業中,Facebook正迅速超越Google成為網路明日之星。目前全球已超過5億個使用者,而這個數字正呈等比級數快速膨脹當中。在臺灣,最保守的統計,至少每8個人中就有1人是Facebook的註冊使用者。Facebook的臺灣網友超過572萬人,與2009年1月僅50餘萬人相比,成長幅度高達近10倍。4年前在美國創立的「臉書」,直到去年才有中文介面,但會員數成長不快,直到當紅網頁遊戲「開心農場」中文化後,7月起會員數快速成長。
開心農場在臺灣的玩家超過350萬人,設在香港的主機系統,還接受臺灣玩家刷卡購買遊戲裡的「農民幣」以升級其虛擬裝備。但2009年接連發生當機事件,造成玩家的農民幣、金幣流失,被網友批評有「詐財」之嫌。還有網友發現,開心農場疑似在前一晚系統重整時,將系統種植紀錄回溯至少20天,導致許多使用者的耕種紀錄都被歸零回到20天前,討論區遂湧入大批玩家要求系統業者出面解決[5]。
由以上案例可知,雲端並非系統穩定的萬靈丹。當一家網路服務商運用了雲端不代表不需要網路管理技術,網路管理技術只是被包裹在雲端的虛擬API之下,由雲端系統平台服務商提供。而隨著雲端環境的大量採用,臺灣雲端產業將不能只著重在硬體或服務上,也必須針對大型系統之管理進行努力及人才培育準備。
臺大雲端平台團隊
目前本人與國內學者共組一雲端平台團隊,研究訴求為提供雲端遊戲所需之動態計算、儲存資源、系統最佳化配置,已獲得國科會3年計畫支持,題目為「具高效率資源與服務管理之高可信度遊戲雲端計算」(NSC 99-2221-E-002-106-MY3),計畫團隊成員及研究焦點詳如表1。
表1:臺大「雲端運算」計畫團隊
計畫名稱 |
計畫主持人 |
計畫重心 |
子計畫一 Fault tolerance technologies for cloud-based MMOG |
淡江大學 林其誼教授 |
提供各雲端元件之自動附載備援控制 |
子計畫二 Overlay network based technologies for managing gaming cloud storage |
輔仁大學 林振緯教授 |
提供適用性最佳化之雲端儲存 |
子計畫三 Efficient Cloud Service Gateway for Gaming Cloud |
臺北科技大學 陳英一教授 |
動態平衡之使用者入口閘道界面 |
子計畫四 Resource allocation for MMOG in cloud computing environments. |
交通大學 王國禎教授 |
依據環境及需求搜尋特定資源 |
子計畫五 Efficient and privacy-preserving protocols for gaming cloud |
臺灣大學 雷欽隆教授 |
提供各雲端元件溝通之驗證及安全 |
子計畫六 Service oriented distributed network management system for the cloud computing |
臺灣大學 郭斯彥教授 |
自動組建並蒐集服務品質狀態 |
當使用者嘗試連接一個線上多人網路遊戲時,子計畫三能夠透過子計畫二及四取得最佳化後的儲存與運算資源,同時子計畫二、四平時透過子計畫六取得網路與伺服器環境狀態,並經由子計畫一的輔助、解決錯誤備援問題,而子計畫之間的訊令控制都將透過子計畫五加以加密及認證。(本專題策畫/電機系林茂昭教授&郭斯彥教授)
參考文獻:
[1] http://www.cepd.gov.tw/m1.aspx?sNo=0013629
[2] http://wo.techrepublic.com.cn/space-476979-do-blog-id-3371.html
[3] http://www.ibm.com/developerworks/linux/library/l-thin-client-cloud/
[4] http://www.itis.org.tw/rptDetailFreeEPaper.screen?rptidno=789668890
[5] http://tw.myblog.yahoo.com/air-kuo/article?mid=3711&prev=3712&next=-1
郭斯彥小檔案
1979臺大電機系畢業,1987美國伊利諾大學香檳校區計算機科學博士,現任臺大電機系特聘教授。歷任臺大電機系主任(2001/8-2004/7)、臺科大電資學院院長(借調2006/8-2009/7)、香港中文大學客座教授(2004/8-2005/8)、美國AT&T實驗室訪問學者(1999/7-2000/8)。專長為高可信計算與網路、無線網路、分散式系統、量子計算。1997-2005連續三次獲得國科會傑出獎,以及國科會特約研究計畫(2005/8-2008/7)與傑出學者計畫(2008/8-2011/7)。2001更以在高可信計算之卓越貢獻,榮膺國際電機電子工程師學會會士(IEEE Fellow)。