矽谷雜誌:展望雲計算的發展趨勢 雲計算研究綜述
來源:互聯網
上載者:User
關鍵字
雲計算
通過
提供
實現
【矽谷網11月4日文】據《矽谷》雜誌2012年第16期刊文稱,採用文獻分析方法簡述雲計算的定義、分類、支撐技術和架構,從計算架構、程式設計模型和平臺研究等方面介紹雲計算的各項相關技術的研究現狀和部分技術方案, 展望雲計算的發展趨勢,可為雲計算相關研究提供參考。
關鍵字:雲計算;平行計算;虛擬化;按需使用
0引言
雲計算(CloudComputing)是在2007年第3季度才誕生的新名詞,它是在資訊技術進步和應用需求拉動兩方面成熟的條件下逐漸演化而來的。 從最基本的層面來說,雲計算是一種資訊服務的交付和使用模式,即通過網路以按需、易擴展的方式獲得所需的服務。 這種服務可以是IT基礎設施(硬體、平臺、軟體),也可以是任意其他的IT服務。 雲計算採用基於資源虛擬化的方式,實現計算與存儲的分散式與並行處理,使使用者能夠按需獲取計算力、存儲空間和資訊服務,是資源優化整合的新境界。 通過對平臺軟硬體資源的共用以及對各類資源在更細細微性上的優化配置與動態調度,雲計算可顯著降低軟硬體成本投入、能耗和管理成本,資料中心的利用率同樣可以被大幅度提高。 因此,與傳統計算模式相比,雲計算模式的整體效益可提高約30倍以上[1]。
1雲計算的定義
維琪百科給雲計算下的定義為:雲計算(cloudcomputing),是一種基於互聯網的計算方式,通過這種方式,共用的軟硬體資源和資訊可以按需提供給電腦和其他設備。 整個運行方式很像電網[2]。
業界和科學家們對雲計算定義的範圍尚存在不少分歧,但基本共識認為雲計算就是基於網路和虛擬化技術的,優化集中系統計算能力以滿足多終端並行多工需求的,達到特定服務水準協定的,即時彈性的計算處理執行環境, 是虛擬化的IT資源服務集合。
2研究進展
2.1雲計算的架構
一般來說,雲計算環境的體系結構可以分為三層:基礎設施層,平台層和應用程式層,如圖1所示。
基礎架構層:也稱為虛擬化層,通過使用虛擬化技術(如Xen,KVM和Vmware)劃分物理資源,基礎設施層創建計算資源的存儲池。 基礎設施層是雲計算的重要組成部分,很多關鍵功能(例如動態資源配置)只是通過虛擬化技術實現。 這層的作用是將各種底層的計算和存儲等資源作為服務提供給使用者。
平台層:構建在基礎設施層之上,由作業系統和應用程式框架組成。 平台層的目的是儘量減少直接部署應用程式到虛擬機器的負擔。 例如,谷歌應用程式引擎運行在平台層,提供API支援實現資料存儲、資料庫和典型的web應用程式。 這層的作用是將一個應用的開發和部署平臺作為服務提供給使用者。
圖1雲計算的架構
Fig.1ArchitectureofCloudComputing
應用程式層:在層次結構的最上層,部署實際的雲應用程式。 不同于傳統的應用程式,雲應用程式可以利用良好的伸縮性實現更好的性能、可用性、低運營成本等優點。 這層的作用是將應用主要以基於Web的方式提供給客戶。
雲計算的物理實體是資料中心,由「雲」的基礎單元(雲元)和「雲」作業系統,以及連接雲元的資料中心網路等組成。 按照雲計算服務提供的資源所在的層次,可以分為IaaS(基礎設施即服務)、PaaS(平臺即服務)和SaaS(軟體即服務)等。 雲計算又可分為面向機構內部提供服務的私有雲,面向公眾使用的公共雲,以及二者相結合的混合雲等。
2.2程式設計模型
雲計算程式設計模型以MapReduce[3]和Dryad為代表,其他的大體上是這兩種方式的變種。
MapReduce是Google提出的一個支援平行計算的軟體架構,適用于對大規模資料集的並行處理。 其核心思想是引入了「Map(映射)」和「Reduce(化簡)」概念和處理機制。
MapReduce的主要思想是將要執行的問題分解成兩個並行階段,Map階段和Reduce階段:先通過Map函數將問題分解,並將資料分割成不相關的區塊,分配給伺服器並行處理;再通過Reduce函數將結果歸約匯總輸出。 在這種分散式處理系統的可靠性支援方面,利用工作節點週期性和主控節點報告其自身活動狀態,實現對異常節點(保持沉默超過一個預設的時間間隔)的識別、監控與隔離,並將分配給相應工作節點處理的資料移轉至其它活動節點, 利用原子操作保證機制,防治平行線程間的衝突。
Dryad[4]是微軟提出的針對資料並行的簡單程式設計模型。 具體而言,Dryad將任務抽象為圖中結點,而由運行環境將這些結點映射到可用的計算結點中去。 在Dryad模型中,任務節點的劃分非常靈活,並通過支援多核和集群進一步提高了並行處理能力。 相對於MapReduce模型,Dryad不足在於由於採用任務節點的劃分機制,增加了資料分類的複雜性,資料描述的簡潔性較MapReduce差。 目前,改進的Dryad模型可完全相容MapReduce模型,逐漸成為通用性更強的資料並行處理模型。 DryadLINQ[5]將Dryad與微軟的.Net語言級集成查詢(. NetLanguageIntegratedQuery)進行整合,從而使用者只需編寫類似SQL之類的查詢語言就可實現對大規模資料的操作。
2.3雲計算平臺研究的現狀
由於雲計算是多種技術混合演進的結果,其成熟度較高,又有大公司推動,發展極為迅速。 亞馬遜、Google、IBM、微軟和Yahoo等是雲計算的先行者。 VMware、Facebook和YouTube等在雲計算不同領域都極具特色。 對於學術界來說,目前研究中用到的比較成熟的開源雲計算平臺有Hadoop、Enomalism、Eucalyptus、Nimbus、10Gen等。
Google是雲計算最初的提出者和消費者,也是目前雲計算最大的實踐者。 Google雲計算的快速發展得益于構成其基礎架構的的三個系統,包括Google分散式檔案系統(GFS)[6]、大規模分散式資料庫BigTable[7]以及針對Google應用檔的特點提出的MapReduee。 通過使用這些技術,Google佈置了大量雲服務,比如:GoogleMap,Gmail,GoogleDocs等。 此外,Google還提供了雲開發服務,這些服務通過GoogleAppEngine運行大型並行應用程式的形式提供,使得開發者能夠利用Google強大的應用所依託的相同基礎設施來構建他們自己的應用。
由Amazon提出的雲計算架構基於大規模集群之上,由核心由4類服務組成:簡單存儲服務(SimpleStorageService);彈性計算雲(ElasticComputeCloud,EC2)[8];簡單佇列服務( SimpleQueuingService)以及尚處於測試階段的SimpleDB。 在Amazon雲計算環境中,使用者僅需運行自己的服務實例,即可獲得平臺提供的計算、存儲等雲服務,服務實例虛擬機器的創建、維護及登出均對使用者透明,使用者按使用實例的方式付費。
IBM基於其在大規模資料計算和超級電腦領域的技術優勢,提出了BlueCloud[9]架構。 「藍雲」平臺的核心是虛擬化技術和存儲技術。 「藍雲」中的虛擬化是通過硬體和軟體兩級虛擬化來實現。 IBM雲平臺的存儲架構支援Google檔案系統和存放區域網路(SAN)兩種模式,並且這兩種模型可單獨使用也可以合二為一使用。
Hadoop是一種開源且基於MapReduce並行程式設計模型的集群實現,也是目前最具代表性的雲計算平臺架構方案[10]。 在Hadoop中,底層資料管理是採用與GFS的檔案系統類似的(HadoopDistributedFileSystem,HDFS)分散式資料管理技術,其功能與GFS的檔案系統類似, 但是Hadoop的這種分散式檔案系統還具備自動容錯的功能。 Hadoop是基於MapReduce的程式設計模型實現的並行系統,所以具備MapReduce的優點,對於大規模資料的並行訪問處理具有較高效率,由於使用JAVA語言實現,具備很好的跨平臺特性,因為目前應用也最為廣泛。
4結束語
雲計算並不是從無到有的全新概念,是在應用需求拉動和技術進步兩方面成熟的條件下逐漸演化而來的。 雲計算的本質,是在軟硬體技術發展到一定階段後,必然要出現的一種計算資源整合模式。 雲計算應用是趨勢,但尚處培育發展期,現階段已經提出了很多好的商業模式和技術實現設想,但技術上還有很多的問題和挑戰。 今後無論雲計算演化成其他形式的「X計算」,仍有推進此產業發展的必要。 本文介紹了雲計算系統的基本概念、架構和相關技術,介紹了雲計算領域的研究現狀並展望了雲計算的發展趨勢。