• 沒有找到結果。

蒐集最新雲端服務開發技術文獻

第三章、 蒐集之資料、文獻分析

第二節、 蒐集最新雲端服務開發技術文獻

「雲端運算」是最近非常流行的一個術語,各家資訊大廠也競相推出自家 的相關產品。但是,什麼是雲端運算?卻一直沒有很確定的答案。但整體而言,

我們必須要有一個認知,「雲端運算」不是一項全新的技術,而是一個概念(楊 文誌, 2010)[23]。早在 1990 年代末期就曾提出「網路運算」的構想,只可惜當 時並沒有足以實現這個概念的網路頻寛。因此,部份企業採用「網格運算(Grid Computing)」轉而將企業內部的電腦連接起來,讓運算資源得以更有效的運 用。但是當時的運用,也僅止於將電腦透過網路連接起來,彼此共享計算資源 而已。

雲端運算源自於分散式運算及網格運算,同屬於分散式平行運算概念的衍 生。三者之間非常類似,都是將大型的運算工作區分成小塊,交由眾多的電腦 各自進行運算後,再予以彙整,以完成單一電腦無法於時限內完成的工作。而 今隨著技術的提升,網路頻寛有了相當的突破,應用的程度與普及率與1990 年代相比更有著相當大的進步。因此,雲端運算也可以算是網路運用的一種自 然演化成熟的結果。對網路的運用也不再只是將電腦連接起來,彼此分享運算 及儲存資源而已,而是各式各樣的『服務』。在說明雲端運算之前,我們先就 分散式運算及網格運算進行說明:

 分散式運算:把需要進行大量計算的工程資料分割成小塊,由多台計算機分 別計算,在上傳運算結果後,將結果統一合併得出資料結論的科學。

 網格運算:所謂的「網格」指的則是以公開的標準處理分散各處的資料。是 分散式運算的一種延伸。其主要特點在於將各種不同平台、不同架構、不 同等級的電腦透過分散式運算的方式做整合運用。

就三者的關係上而言網格運算是分散式運算的衍生,而雲端運算則是網格 運算的一個子集合。雲端運算與網格運算同源自於分散式運算,但卻比網格運 算更擅長於資料運算(王宏仁, 2008)(中研院網格計算團隊主持人林誠謙, 2008, ITHome)。就定義上而言,雲端運算和網格運算的目的相同。都是要將系統的

複雜性隱藏起來,也就是將之視為一個虛擬的資源,使用者只需要知道如何使 Yahoo、IBM、Amazon 等)

學術機構(如歐洲粒子研究中心 Hadoop 框架,但 Google 的 GFS 及BigTable 則未開源

 維基百科:「雲端運算」(英語:Cloud Computing),是一種基於網際網路的 運算方式,透過這種方式,共享的軟硬體資源和資訊可以按需提供給電腦 和其他裝置。整個執行方式很像電力網。

 Whatis.com:「雲端運算」是種能夠將動態伸縮的虛擬化資源,透過網路以服 53

雲端運算的基礎設施。

 Salesforce:「雲端運算」是業務營運的最佳方式。您不必自己執行應用程式,

它們會在共用資料中心上執行。當您使用雲端中執行的任何應用程式時,

只要登入、自訂,就可以開始使用。這就是雲端運算的強大能力。

 IBM:「雲端運算」是種是種分享的網路資訊服務模式,使用者看到的只有 服務本身,不用關心相關的基礎建置。

 IDC:「雲端運算」是一種即時的IT 能力運算網路平台,可被請求、被供應、

被傳遞、以及被消費。

 Google:應用程式和資料在雲端,可以透過任何裝置存取,使用瀏覽器在網 雲中互相連通。

 Gartner:「雲端運算」是一種具備大量且可擴充之 IT 相關能力的運算,透過 網際網路技術並服務的方式(as a service)提供給外部的使用者。

 Forrester:「雲端運算」是一種具有高度彈性、抽象的運算中心,可以提供使 用者所需要的應用程式,並可依據資源使用多寡來收費。

 Mircosoft:一種由微軟資料中心供應的網路雲端服務平台,可提供一套作業 系統和一組程式開發者服務,可供個人或群體操作。

 中研院網格運算團隊:網格運算能夠管理網域聯合運算的特性,可以解決更 大更複雜的問題。「雲端運算」只是網格運算下的一個子集合。

 資策會:「雲端運算」是網際網路的一個重要演變。它不僅是一種運算模式,

更發展出許多新的商業模式。所以,雲端運算可說是下世代的網際網路。

 美國國家標準技術研究所(NIST):「雲端運算」是一種提供便利、能由客戶 透過網路連接並自由設定其組態的運算資源(如網路、伺服器、儲存、應用 程式與服務)與隨選化的網路存取服務,並能夠在最小的管理成本或服務供 應商互動下快速提供與釋出的一種模式。雲端模式提升資源可用性,並且 由五個基本特性、三個服務模式以及四種部署模式組成(NIST, 2010)[25]。

總之,「雲端運算」可以說是一種資訊應用的模式,它結合了網路及連接

 按需自助服務( On-demand Self-Service):可在客戶需要時配置運算能力,如 伺服器時間和網絡存儲空間,無需供應商服務人員介入即可自動依需求提 供服務。

 廣泛的網絡存取(Broad Network Access):通過網絡提供服務,可支援各種標 準的連線機制,包括各種精簡或厚實的客戶端(thin or thick client) 平台(如 行動電話、行動電腦或PDA),存取其他傳統或以雲為基礎的軟體服務。

 資源池(Resource Pooling):運算資源彙集皆以資源池概念集中管理,使用多 55

分配給多個用戶使用。使用者不需知道資源所在地或來源。資源池範圍包 括存儲、處理、記憶體、網路頻寬以及虛擬機等。

 快速與彈性的佈署(Rapidly and Elasticity):服務能力可以自動快速、彈性地供應,

實現快速擴容、快速上線。對於使用者來說,可供應的服務能力近乎無限,可 以隨時按需要購買。

 被量測監控的服務(Measured Services):服務可以被監視、控制資源使用、並產生 報表,報表可以對提供商和用戶雙方都全然透明的提供。

根據提供服務的模式不同,雲端運算可以被區分三種服務模式,這三種服 務模式分別為:

 SaaS (Software as a Service):軟體即服務,亦即以軟體形式呈現的雲端服務模式。

主張使用者端不用再安裝軟體,所有的軟體都以雲端服務的方式提供服務。典 型的廠商有Salesforce.com、Google、Yahoo、趨勢…。

 PaaS (Platform as a Service):平台即服務,亦即以提供軟體開發平台或作業系統 平台方式呈現的雲端服務模式。典型的廠商有Microsoft Azure 及 Google App Engine…。

 IaaS (Infrastructure as a Service):基礎設施即服務,是整個雲端運算概念的骨幹,

提供雲端軟體及平台底層的硬體設施。典型的廠商有Amazom (AWS)、 IBM GO GRID、EMC XenServer…。

圖3-6 為三種服務模式供應商的分佈情形:

圖 3-6 三種服務模式供應商的分佈情形

(資料來源:Alex Williams, 2011)[41]

而依據部署的方式、服務的對象、與規模的不同,雲端運算又可以被區分 為下列四種部署模式,分別為[26]:

 公有雲(Public Cloud):指在網際網路上公開提供的雲端服務。如 Google 57

 私有雲(Private Cloud):指提供企業內部使用的雲端服務,即透過虛擬化技術將 企業原有的系統虛擬化,或以雲端概念另行開發新的雲端應用程式。目前發展 上最大的問題在於安全性議題。

 混合雲(Hybrid Cloud):結合公有雲與私有雲的特性,發展上最大的問題仍然在 於安全性議題。

 社群雲(Community Cloud):提供社群服務的雲端服務,通常是建置在公有雲 上。如Facebook、Twitter…。

基於上面的說明,可以了解到「雲端運算」的內涵及現況。而這五大特性、

壹、 雲端運算的關鍵技術

提到雲端的關鍵技術,幾乎一定會提到 Google 著名的三項關鍵技術,這 三項關鍵技術依序為Google File System(GFS)、MapReduce、及 BigTable。這 三大關鍵技術起源於 2003 年 10 月 Google 在 ACE 協會所舉辦的第 19 屆 SOSP(Symposium on Operating Ststems Principles)作業系統原理學術研討會中 所發表的Google File System(GFS)開始。GFS 是一個由 Google 開發的分散式檔 案系統,具備容錯功能,且能運行於一般商用電腦上。目前已經應用於Google 內部的儲存系統之上,用以處理Google 龐大的資料處理需求(Sanjay Ghemawat, 2003)。

繼GFS 之後,Google 再於 2004 年於 OSDI(Operating Systems Design and Implementation)國際會議上發表最重要的 MapReduce 分散式運算技術論文 (MapReduce: Simplified Data Processing on Large Clusters)。MapReduce 的概念 源自於LISP 語言中的 Map 與 Reduce 兩個函數。Map()映射函數有映射(Mapping) 之意,而 Reduce()函數則有將資料化簡的含意。當程式輸入大量的 Key/Value 鍵值對時,Map 函數可以自動將原本的鍵值對拆分為許多組中間值的配對。再 由Reduce 函數合併具有相同 Key 的中間值配對,化簡為最後輸出的結果(Dean, J., 2004)[27]。其運作方式如圖 3-8 所示:

59

圖 3-8 MapReduce 函數運作概念圖 (資料來源:Dean, J. and S. Ghemawat (2004)[27]

而每一個Map 或 Reduce 函數都是運作在不同的主機或執行緒上,透過大 量的主機協同運算,以快速的分析大量的資料。更棒的是隨著運算量的增加,

Google 所要做的只需要增加電腦數量即可,而不用去擔心當中複雜的運作機 制。MapReduce 可以說最大程度的簡化了平行運算中龐大而複雜的實作問題,

開發人員可以很簡單的調用Map 及 Reduce 函數,即可進行複雜的平行運算程 式設計。利用此技術,即使沒有大型分散式程式設計經驗的工程師,也可以輕 鬆地自動處理存在於龐大伺服器群間,高達TB 等級的資料。且於該論文中已 宣稱,該技術已經使用於Google 的伺服器群中,每日進行龐大的搜尋作業。

有了優秀的GFS 檔案系統及 MapReduce 分散式處理技術之後,Google 獨 缺的,就是用以儲存結構化資料的大型分散式的資料庫。是故於2006 年 Google 繼續於 OSDI 國際會議上發表 BigTable: A Distributed Storage System for Structured Data.的論文。該論文指出 BigTable 是專門用以管理大型分散式儲存

系統的結構化資料。該系統可以輕易的擴充到PB 等級。目前正應用於 Google 搜尋的Web Indexing、Google Earth、及 Google Finance 之上(Fay Chang, 2006)。

雖然 Google 發表了這三項重要的關鍵論文,但是實際的運作情形及原始碼,

仍然是 Google 最高的商業機密,Google 所提供的只是對外最終的服務。但是 也因為 Google 的這三篇重要的核心論文,使得雲端運算的概念得以不斷的發 展下去。其中最重要的莫過於Hadoop 專案的產生。Hadoop 是由 Apache Open

仍然是 Google 最高的商業機密,Google 所提供的只是對外最終的服務。但是 也因為 Google 的這三篇重要的核心論文,使得雲端運算的概念得以不斷的發 展下去。其中最重要的莫過於Hadoop 專案的產生。Hadoop 是由 Apache Open