第二章 文獻探討
第四節 雲端運算(Cloud Computing)
國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
31
彼此能實現類似的功能。不過,每種技術的最適當用途,當然還是在於其原 先被開發出來的目的上。例如,Bluetooth 的設計,就是在人們的四周(數公 尺之內),可以簡單地利用無線接上各式各樣的周邊機器:另外,無線 LAN 並不是用 LAN cable 連接辦公室或家裡(數十公尺)的電腦設備,而是改用 無線的方式接續。(荒川弘熙,2005)
而 RFID 是一種雙向的辨識技術,以往對外要讀取資料必頇用 Bar Code、
QRcode,或是能夠偵測物體的藍芽、wifi 等;而對內當外界要讀取或是確認 我的身分時,便要使用 BarCode、QRcode、生物辨識技術等。但考量到續航 力、距離、通訊速度、準確性等因素,在效果及成本之間權衡後,採取可互 動且雙向的 RFID 技術仍是較佳選擇。因為 RFID 同時包含感測與辨識的兩 種特性,並且能讓兩個物體之間自動識別與交換資訊,未來只要成本可被接 受之後,在應用上皆有機會能取代目前舊有的技術。
第四節 雲端運算(Cloud Computing)
2.4.1 雲端運算的定義與發展
雲端運算(Cloud Computing)這個詞彙最早是由 Google 的執行長 Eric Schmidt 所提出,在 2006 年 8 月 9 日的 Search Engine Strategies Conference 演講當中他提到:「傳統在使用者手邊執行的資料服務與架構,正在移動到 伺服器上。我們把它稱為『雲端運算』。它們(資料與架構)位於雲端的某 處,只要有瀏覽器之類的介面程式,不管在 PC、MAC、手機還是 BlackBerry 之類的裝置上,都可以取用雲端的服務」,而後“雲端運算”這個名詞,就開始 被各方的人士或企業在各種場合下廣為使用。簡單來說,在網際網路上的巨 大電腦群像是一片雲般,讓人們使用它們所提供的各種網路服務,就稱為「雲 端運算」。如下圖 8 所示,任何一台電腦(Client)連上雲端取得各家廠商:
如 Google、Amazon 及 Yahoo 所提供的服務,使用伺服器端(Server)的龐 大運算資源。通常雲端運算指的並不是某種特定的系統、機制或技術,而是 指「透過 Internet 將巨大的運算資源以服務的形式來提供、可運用的運算能 力之型態」。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
32
圖 8:雲端運算的概觀圖
(圖片來源:Sam Johnston,2009)
在 Google 提出雲端運算的概念之後,大家才認知到,其實最先將雲端運 算商業化的企業,應該就是 Amazon 在 2006 年 3 月提供的 Amazon S3 與 2006 年 12 月開始提供的 Amazon EC2,當時可說是雲端服務的先驅。Amazon 的 CEO Jeff Bexos 在 2007 年 4 月 16 日的 Web 2.0 Expo 演講當中提到:「我們 的使命是提供 Web 應用程式的帄台」及「我們擁有 12 年來營運 Amazon 的 應用程式技術,公開這些技術,能讓其他人更容易開發 Web 應用程式」。
接著在 2008 年 2 月由 Salesforce.com 供應商開始提供 CRM(Customer Relationship Management)的 Force.com 應用程式開發帄台,讓第三方能開發 自訂應用程式。直到 2008 年 4 月,Google 也才開始提供 Google App Engine 等帄台,讓第三方人員能夠自行開發及整合 Web 應用程式。初期僅有功能受 到限制的免費版本,到 2009 年 2 月 Google 開始接受付費服務。開發者只要 額外付費,就能得到進階的運算資源,也相當於可隨意使用 Google 資料中心 的處理能力。另一方面, Microsoft 在 2008 年 9 月時發表 Windows Azure 與 Azure Services Platform。Windows Azure 是讓使用者在 Microsoft 的資料中心 上來執行自己的.NET 應用程式的服務;而 Azure Services Platform 則是提供 應用程式所需要的各式服務之總稱,包含如資料庫服務 SQL Data Service 等,
也在 2009 年後開始陸續提供服務。
如同國際市場研究機構 Gartner 的說法是「A style of computing where massively scalable IT-enabled capabilities are delivered „as a service‟ to external customers using Internet technologies」,所以雲端運算廣泛的定義就是一種網 際網路上的資源利用新方式,可讓使用者依照需求,取得網際網路上異構、
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
33
自治的大規模 IT 服務,並進行即時(Real-time)的運算,以讓使用者能延伸 應用各項網路科技。雲端運算最重要的概念便是在 Internet 上的延展性,可 以自由隨著需求而進行調整,例如在應用程式的使用率增加,造成伺服器負 荷上升時,自動擴充伺服器所需要的硬體的運算資源等。
2.4.2 雲端運算的架構
而運算資源通常指的是伺服器與網路,以及運用這些系統的資料中心、
監控管理這些資料中心的機制。隨著 Internet 的發展,開始能透過網路取得 運算資源,最初是 ASP(Application Service Provider)形式的服務,後來漸 漸發展出 SaaS(Software as a Service)將應用程式基於 Web 形式提供的軟體 服務;接著又出現 PaaS(Platform as a Service)能夠讓開發者使用業者提供 的框架,來創造屬於自己的應用服務;以及 IaaS(Infrastructure as a Service)
此觀念,讓使用者規劃自己所需的環境配置,透過網路上使用完全虛擬化的 IT 設備資源。由這三個層次構成雲端運算的基礎架構,下圖 9 為 GoGrid 公 司所提出之雲端金字塔概念,用來解釋每一層雲端運算的結構,由上而下分 為:
(1) 應用層(Application Layer):軟體即服務(SaaS),如 Gmail、Google Maps、Saleforce.com、Twitter 等,消費者接觸最多的就是這一層,
一般使用者只要專注於服務有什麼功能以及怎麼使用,因為服務的功 能是最初就限定,因此完全無需考慮維護與設定,不需要了解太艱深 的操作或技術知識。
(2) 帄台層(Platform Layer):帄台即服務(PaaS),如 Force.com、Google App Engine、Windows Azure 等,用戶擁有較多的彈性跟控制權,可 以在廠商提供的框架之下,使用其帄台工具自行開發軟體服務,但因 受限於帄台供應商所開放的功能,有時反而限制住服務的發展性。
(3) 基礎設施層(Infrastructure Layer):基礎設施即服務(IaaS),廠商在 這層一般提供的是如 Windows 或 Linux 伺服器的虛擬化,動態地供 應基礎設施來滿足不同需求,讓開發者或公司能夠擁有最大的彈性來 建置整體服務環境設施,再依其採用的額度或是配置量來計價。一般 除了 CPU、記憶體、儲存硬碟空間及網路頻寬等可以配置,有些公 用的服務元件,如防火牆、硬體負載帄衡控制或是可擴充的即需存儲 功能都在此層中,也就是說這一層具備了各式各樣完整的網路和基礎 設備的端點到端點之解決方案
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
34
圖 9:雲端運算的三個層級
(資料來源:GoGrid Cloud Hosting,2010)
從雲端運算的三個層級概念來說明,越底部的基礎設施層具備了最多的 廣闊性,讓用戶可完全控制其環境;而越往上層,便逐漸受到一些限制,而 因越專精在重點服務功能上,所以也越能夠得到利基點。從圖中其實很清楚 地看出,每一個層級之間是有很大的關連性,由下而上缺一不可,應用層也 必頇有帄台層的支援才能提供其雲端運算服務。另外,如何在不同的層次當 中實作延展性的技術,也是目前一個發展重點,基本上是把運算環境的構成 要素分成「應用程式」、「帄台」以及「基礎設施」這三層之後,然後再分別 討論各層如何實現延展性(擴充性)的方式。
2.4.3 雲端運算的技術優勢
Nicholas G. Carr 的著作 The Big Switch 中便提到,「1910 年代,在北美 有許多工廠自己擁有發電機,但是到了 1930 年代,大多數企業都已經改用 電力公司供電。在運算資源的世界裡,也正在發生這種轉移。」雲端不只改 變了業界結構,也大幅改變了技術與架構的潮流,最主要的關鍵就是分散處 理。
進入 2000 年代之後,電腦單機的性能提升幅度便遇到了瓶頸。在 1990 年代裡,處理器性能的主要指標「頻率」年年不斷上升,但是以 Intel 公司製 造的處理器而言,最高頻率的紀錄是 2004 年 11 月推出的 Pentium 4 所達到 的 3.8G Hz,在那之後,紀錄就沒有繼續更新。2009 年 3 月的高階處理器 Core i7,最高運作頻率也只有 3.2G Hz。當然,以 Core i7 而言,已經從當年 Pentium 4 的單一核心擴展到四核心。若有為多核心運作實施多執行緒設計的程式,
在多核心晶片上的性能會比傳統單核晶片好。但是如果沒有設計成多核心、
或者是難以設計成多核心的程式仍不少,因此讓多核心處理器難以發揮實力
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
35
也是現在的事實。另外,硬碟也是造成電腦單機性能停止提升的零件之一,
3.5 吋硬碟的轉速在 2000 年 2 月達到 15,000 rpm,但桌上型電腦的 3.5 吋硬 碟主流仍是 7,200 rpm,筆記型電腦的 2.5 吋則還在 5,400~7,200 rpm,遑論 更小型的 1.8 吋硬碟的主流還只是 4,200 rpm。但目前硬碟的容量還在猛烈成 長,單一硬碟的容量目前已是 1 TB~1.5 TB(1 TB = 1,024 GB)為常見規格,
可是讀取、寫入的速度卻沒什麼進步。
這些硬體零件性能停止提升的狀況,導致在個人電腦上執行的軟體無法 提升效能或是性能不佳。所以雲端運算被重視的理由之一,就是普遍使用者 的經驗為雲端所提供的應用程式之反應速度常常比桌面應用程式更快許多。
以 Google Gmail 為例,就算收件夾有超過 1GB 的信件,依舊不到一秒就能 完成全文搜尋。而雲端應用可以高速運作的原因在於,資料的儲存、處理工 作皆分散在大量的伺服器當中執行。以 Google 來說,資料是存放在 Google File System(GFS)這種分散檔案系統上,GFS 會把檔案切成 64MB 的區塊
(chunk),分散到許多台伺服器上存放,這樣一來在讀取或儲存的時候,都 能讓多台伺服器分散、同時執行動作,以讓整個檔案讀寫的速度加快不少。
Google 為了能高速處理透過 GFS 分散存放的資料,獨自開發 MapReduce 這 套中介軟體。存放資料的 GFS 及處理資料的 MapReduce,共同支撐著 Google 的雲端架構。
Google 使用大規模分散式檔案系統 GFS(Google File System)、大規模 分散運算架構 MapReduce、大規模分散資料庫 BigTable、分散鎖定服務 Chubby,這四種最主要的基礎架構軟體來實現 Google 的雲端運算。這些技 術都以學術論文的形式發表過,但相關程式碼並未公開,有興趣的研究者僅 能知道他們的系統設計等相關概念。
以 Google 雲端運算的架構來說明,其實雲端運算的技術實作,實際在三 個層及中都是由不同技術所達成。從應用層來看要實作延展性,需要利用 Google 自行開發的 MapReduce 等技術,即可不必在意底層,透過 API 讓應
以 Google 雲端運算的架構來說明,其實雲端運算的技術實作,實際在三 個層及中都是由不同技術所達成。從應用層來看要實作延展性,需要利用 Google 自行開發的 MapReduce 等技術,即可不必在意底層,透過 API 讓應