2010年10月10日 星期日

雲端運算(Cloud Computing)

近來雲端運算(Cloud Computing)成為科技顯學,促使我開始思考我的既有研究方向與雲端運算的關連;加上近來有演講邀約要談雲端運算在影像辨識的應用,因此促成我撰寫本篇文章的動機。

先談雲端運算的定義

美國的NIST(Natioal Institute of Standards and Technology)將Cloud Computing定義[1]為:

Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. This cloud model promotes availability and is composed of five essential characteristics, three service models, and four deployment models.

其中最常被引用的定義是3個Service Model與4個Deployment models。3個服務模式為:Software as a Service(SaaS), Platform as a Service(PaaS), Infrastructure as a Service(IaaS)。4個營運模式為:Private cloud, Community cloud, Public cloud, Hybrid cloud。[2]則對此有更清楚的描述。

後來科技業界對雲端運算的定義,大致都以此為依歸。舉個例子而言,一般人用Google mail, Google Apps等都算是SaaS;Google App Engine則屬於PaaS,IaaS則可以傳統IDC機房的Web hosting/Virtual Hosting主機代管來當例子。

在學界而言,尤其是資訊科技的研究者而言,雲端運算包含了許多的研究題目與方向。R. Buyya在2009年的一篇論文[3]則將雲端運算定義如下:


``A Cloud is a type of parallel and distributed system consisting of a collection of inter-connected and virtualized computers that are dynamically provisioned and presented as one or
more unified computing resource(s) based on service-level agreements established through negotiation between the service provider and consumers.''


以我個人的瞭解而言,雲端運算的研究方向可以MapReduce分散式運算技術與虛擬技術(Virtualization)為代表。




我對雲端運算的瞭解與看法

自2009年我開始接觸雲端運算(明年十大科技趨勢雲端大紅,工商時報),我對雲端運算認知的歷程經過了3個層次:1. 既有IDC技術舊瓶裝新酒,2.既有許多技術的大整合,3. 逐步往SaaS與HPC(High Performance Computing)邁進。

1.既有IDC技術舊瓶裝新酒

    初瞭解雲端運算,以為就是十餘年前 Dot Net (Internet剛竄起來時的俗稱)大紅大紫時,與朋友一起玩過的IDC機房(Internet Data Center):不過就是放一堆Server在一個集中式的房間,以提供上網、網站伺服器等服務。
     曾經我也認為Google Search不過是Search技術配上大筆錢建置的IDC機房所建構而成的。

2.既有許多技術的大整合

        接著在今年初接觸MapReduce,Hadoop,Windows Azure,Google Apps,Google App Engine等,才開始瞭解原來雲端運算是IDC純硬體觀念的再進化,必須運算很多的軟硬體觀念。包括有虛擬化(Virtualization)、Grid/Cluster/Distributed Computing、Web 2.0等。

       在軟體上,首先是虛擬化這個創新的技術推動了雲端運算往前邁進。雲端運算在IDC機房概念時,每台硬體各自為政,硬體資源互不通用,造成資源浪費外;通常系統管理者也無法將各種儲存設備、網路設備、記憶體資源與CPU運算資源互相混搭使用。但是在虛擬化技術下,這一切都變的簡單。
       更有趣的一點,是透過虛擬化技術,可以達到Utility Computing,即每項運算需求,都可以透過虛擬化客製化並計量化,造成在產業上有可行的商業模式:IDC機房有充足的各種網路運算資源,顧客可以用「租用」的方式來租用運算資源,有如租用水電、瓦斯、第四台、電話等,每月按照使用量來付租金。要用時就租用,不用時就停租,使用者也不用花錢購置水電瓦斯第四台語通訊設備,因此也不用再購置大型電腦等運算設備,簡易租用即可。

       而當有些運算的租用超過一台大型主機的負荷時,就需要再整合Grid/Cluster/Distributed Computing技術。透過多台主機以網路共同進行一項大量運算。例如Google Search,就是用其MapReduce技術來達到快速的搜尋運算。因此近幾年來有許多人研究Cloud Computing,其實是在研究MapReduce技術的改良與應用。由於MapReduce其實可看成是一種Parallel Computing的新程式設計方法(Parallel Programming),因此Parallel Computing研究者對於MapReduce有著極高的興趣。目前關於MapReduce實做的Open Source以Hadoop為代表,透過Hadoop來研究Cloud Computing可說是一個極方便的入門方法。

       至於台灣在雲端研究方面的活動,則由國家高速網路與計算中心(NCHC)多年前開始進行基礎研究,除成立一個「雲端運算技術與應用聯盟」外,也舉辦非常多的課程與演講,並設置一個NCHC Wiki網站放置有關雲端運算與Hadoop的資源。資策會與工研院除分別成立運端運算中心外,也組成一個「台灣雲端運算產業聯盟」。至於學術研究方面,國科會則預計在2011年新成立資訊學門三,以雲端運算為重點。此外,原「台灣格網計算學會」也從2010年更名為「台灣雲端計算學會」。

3. 逐步往SaaS與HPC(High Performance Computing)邁進

         在Cloud Computing Continuum的延續性觀念上,Cloud Computing其實是從IaaS演化到Paas,接著再演化到SaaS[4,5]。根據Gartner 2009年的市場預估,SaaS年成長率22%,到2011將有25%的軟體是以SaaS方式提供服務。另外Gartner在2008年的市場調查則指出SaaS發展可能的障礙來自於效能、客戶服務、穩定度與風險管理等4大因素。2009年底的調查顯示目前美國對於SaaS的接受度高於英國。
Cloud-continuum1
        在SaaS的應用上,雲端運算開始變得應用化,也多元化。例如Saleforce.com的CRM;也有一些公司以雲端運算技術提供更簡單好用的網路硬碟(http://syncplicity.com/http://www.sugarsync.com)。
         影像辨識的系統對於雲端運算而言可視為SaaS。例如以雲端運算技術來提供簡單使用的視訊監控功能,就稱之為VSaaS(Video Surveillance as a Service)
         但是在雲端進行影像辨識的運算,需要大量的資料運算,又稱之為數位訊號處理(DSP),由於影像與視訊的訊號量非常龐大,因此需要平行運算,也需要高性能的運算技術(High Performance Computing)。
          雲端運算朝向多媒體的應用提供簡易的雲端服務,並且透過HPC來達成,此結合的趨勢看來將是未來雲端運算的研究重點。


本文先簡單談談雲端運算的概念,後續另外闢文再詳談影像辨識與雲端運算的關連。


[1] NIST Definition of Cloud Computing, see http://csrc.nist.gov/groups/SNS/cloud-computing/cloud-def-v15.doc.
[2] Understanding Public Clouds, by Keith Pijanowski, 2009.
[3]  Cloud computing and emerging IT platforms: vision, hype, and reality for delivering computing as the 5th utility, by R. Buyya, C. S. Yeo, S. Venugopal, J. Broberg, I. Brandic, Future Generation Computer Systems, vol. 25, 2009.
[4] The Cloud Computing Continuum – Sometimes Simple Explanations Are Best, by B. Kepes, 2009.
[5] Paas and Cloud Continuum, by G. Davis, 2009.



本網誌相關文章 :

沒有留言:

張貼留言