摘 要: 在分析現(xiàn)有定義的基礎(chǔ)上對云計算提出了較全面的參考性定義,并給出了云計算的六大特征、四種部署模式和三種服務(wù)模式。此外,通過對云環(huán)境中三種角色的責(zé)任分析和對主流云計算產(chǎn)品的研究,抽象出了支撐云計算的關(guān)鍵技術(shù),最后指出云計算對未來軟件市場發(fā)展的影響。
關(guān)鍵詞: 云計算;云服務(wù);云部署
作為一種IT基礎(chǔ)設(shè)施交付和使用模式、一種信息服務(wù)交付和使用模式、一種基于互聯(lián)網(wǎng)通過虛擬化方式共享信息資源的新型計算模式,云計算為數(shù)據(jù)計算、存儲和管理提供了虛擬資源空間和超強(qiáng)計算能力,可使用戶低成本、高效率、靈活地分享信息技術(shù)的發(fā)展成果,更好地獲取和使用知識,減少數(shù)字鴻溝,加強(qiáng)科技創(chuàng)新,提高公共服務(wù)水平。
20世紀(jì)60年代John McCarthy提出“計算能力在未來將成為公共設(shè)施”,這是云計算概念的起源[1]。20世紀(jì)80年代末誕生了網(wǎng)格計算,將大量的異構(gòu)計算機(jī)集成起來進(jìn)行復(fù)雜問題(通常是科學(xué)問題)的求解。20世紀(jì)90年代,虛擬化的概念已經(jīng)從虛擬服務(wù)器發(fā)展到更高層次的抽象,從虛擬平臺到虛擬應(yīng)用程序。20世紀(jì)末21世紀(jì)初,Web Service和SOA等面向服務(wù)的概念和技術(shù)迅速發(fā)展。云計算正是在上述各項技術(shù)的基礎(chǔ)上,經(jīng)過數(shù)十載的發(fā)展演化逐漸成熟起來。
1 云計算概念
美國加州大學(xué)伯克利分校在指出云計算既指在互聯(lián)網(wǎng)上以服務(wù)形式提供的應(yīng)用,也指在數(shù)據(jù)中心中提供這些服務(wù)的硬件和軟件,而這些數(shù)據(jù)中心中的硬件和軟件則被稱為云[2]。美國國家標(biāo)準(zhǔn)與技術(shù)研究院指出云計算由一個可配置的共享資源池組成,該資源池提供網(wǎng)絡(luò)、服務(wù)器、存儲、應(yīng)用和服務(wù)等多種硬件和軟件資源[3]。資源池具備自我管理能力,用戶只需少量參與就可以方便快捷地按需獲取資源。云計算提高了資源可用性。
Wikipedia和NIST都強(qiáng)調(diào)云計算中資源的按需提供。在對云計算范圍的界定上, UCB認(rèn)為云計算不包括私有云,而NIST則認(rèn)為云計算包括私有云。本文認(rèn)為NIST的定義主要從云計算提供者的角度出發(fā),比較全面地涵蓋了云計算的本質(zhì)特征,但是缺乏對云計算使用者和云計算開發(fā)者的闡述。
綜上所述,本文提出自己的參考性定義:云計算是一種以提高資源利用率、降低IT成本為驅(qū)動的計算模式,在云計算中包括云服務(wù)使用者、云服務(wù)提供者和云服務(wù)開發(fā)者三類角色。
云服務(wù)使用者可在不具備專業(yè)知識的情況下利用網(wǎng)絡(luò)通過交互技術(shù)以自服務(wù)的方式訪問云端資源。
云服務(wù)提供者作為聯(lián)系服務(wù)使用者和服務(wù)開發(fā)者的橋梁,以按需使用、按量計費(fèi)的方式通過網(wǎng)絡(luò)提供動態(tài)可伸縮資源,云服務(wù)提供者負(fù)責(zé)安全管理、運(yùn)營支撐管理、服務(wù)平臺以及資源平臺,其中服務(wù)平臺包括軟件即服務(wù)SaaS(Software as a Service)、平臺即服務(wù)PaaS(Platform as a Service)、基礎(chǔ)設(shè)施即服務(wù)IaaS(Infrastructure as a Service)以及這三種服務(wù)的組合和管理。資源平臺包括資源池、虛擬資源管理、物理資源管理等。
云服務(wù)開發(fā)者負(fù)責(zé)將各種軟硬件資源封裝成服務(wù),并負(fù)責(zé)服務(wù)的創(chuàng)建、發(fā)布和維護(hù)。
2 云計算特征
為了全面理解云計算,本文進(jìn)一步分析云計算的關(guān)鍵特征,具體如下:
(1)網(wǎng)絡(luò)接入。云計算通過網(wǎng)絡(luò)提供服務(wù)能力,支持各種標(biāo)準(zhǔn)設(shè)備接口。
(2)按需提供。云計算可以根據(jù)用戶需求的改變,快速動態(tài)地分配和回收資源,既保證忙時用戶需求的及時滿足,又保證閑時資源的及時回收。
(3)按量計費(fèi)。云計算提供對計算、存儲、網(wǎng)絡(luò)和其他各類資源的測量能力,能夠統(tǒng)計某個用戶在某段時間對某類資源或者服務(wù)的使用情況。
(4)用戶自服務(wù)。用戶可以自服務(wù)的方式配置和調(diào)用云服務(wù)。例如,配置服務(wù)器時間和網(wǎng)絡(luò)存儲容量。
(5)多租戶。云計算提供者可以同時為多個使用者提供服務(wù),利用規(guī)模經(jīng)濟(jì)提高資源利用率。
(6)可靠性。云計算通過異地備份、多副本備份等策略增強(qiáng)服務(wù)可靠性。
這些關(guān)鍵特征一方面可以幫助理解云計算的內(nèi)涵和外延,另一方面可以作為區(qū)別云計算和其他各類計算模式的依據(jù)。
3 云計算的服務(wù)模式
云服務(wù)[3]主要包括SaaS、PaaS、IaaS以及三種服務(wù)的組合。如圖1所示。
(1) SaaS是指將某些特定應(yīng)用軟件功能封裝成服務(wù),對于服務(wù)使用者而言購買的是軟件的使用權(quán)而不是其所有權(quán)。如Salesforce公司提供的在線客戶關(guān)系管理CRM服務(wù)。
(2) PaaS是指將一個完整的應(yīng)用開發(fā)平臺,包括應(yīng)用設(shè)計、應(yīng)用開發(fā)、應(yīng)用測試和應(yīng)用托管都作為一種服務(wù)提供給客戶。典型的PaaS包括Google App Engine[4]、Microsoft Windows Azure。
(3) IaaS將硬件設(shè)備等基礎(chǔ)資源,包括計算、存儲和網(wǎng)絡(luò)等,封裝成服務(wù)供用戶使用,典型的如亞馬遜的彈性計算云EC2和簡單存儲服務(wù)S3[6]。
4 云計算的部署模式
云計算有四類典型的部署模式(如圖2所示):“公共云”、“私有云”、“社區(qū)云”和“混合云”。具體描述如下:
(1) 公共云。云基礎(chǔ)設(shè)施對公眾或某個很大的業(yè)界群組提供云服務(wù)。
(2) 私有云。云基礎(chǔ)設(shè)施特定為某個組織運(yùn)行服務(wù),可以是該組織或某個第三方負(fù)責(zé)管理。
(3) 社區(qū)云。云基礎(chǔ)設(shè)施由若干個組織分享,以支持某個特定的社區(qū)。
(4) 混合云。云基礎(chǔ)設(shè)施由兩個或多個云組成,獨(dú)立存在,但是通過標(biāo)準(zhǔn)的或私有的技術(shù)綁定在一起,這些技術(shù)可促成數(shù)據(jù)和應(yīng)用的可移植性。
5 云計算關(guān)鍵技術(shù)
本文通過對云計算三種角色的責(zé)任研究和典型云計算產(chǎn)品的分析,抽象出了支撐云計算的七大關(guān)鍵技術(shù)。
5.1 系統(tǒng)虛擬化
系統(tǒng)虛擬化[5]是指將一臺物理計算機(jī)系統(tǒng)虛擬化為一臺或多臺虛擬計算機(jī)系統(tǒng)。通過虛擬化層的模擬,虛擬機(jī)中的操作系統(tǒng)認(rèn)為自己仍然是獨(dú)占一個系統(tǒng)在運(yùn)行。這個虛擬化層被稱為虛擬機(jī)監(jiān)控器。
5.2 虛擬化資源管理
虛擬化資源是云計算中最重要的組成部分之一,它對虛擬化資源的管理水平直接影響著云計算的可用性、可靠性和安全性。云資源池中應(yīng)用的需求不斷改變,在線服務(wù)的請求經(jīng)常不可預(yù)測,這種動態(tài)的環(huán)境要求云計算的數(shù)據(jù)中心或計算中心能夠?qū)Ω黝愘Y源靈活、快速、動態(tài)地按需進(jìn)行調(diào)度。云計算中的虛擬化資源與以往的網(wǎng)絡(luò)資源相比,具有數(shù)量更為巨大、數(shù)據(jù)分布更為離散、數(shù)據(jù)調(diào)度更為頻繁的特征[6]。
5.3 分布式數(shù)據(jù)存儲
分布式數(shù)據(jù)存儲技術(shù)包含分布式文件存儲系統(tǒng)、分布式對象存儲系統(tǒng)和分布式數(shù)據(jù)庫技術(shù)。下面分別闡述這三方面的技術(shù):
(1) 分布式文件存儲系統(tǒng)
為了存儲和管理云計算中的海量數(shù)據(jù),Google提出分布式文件系統(tǒng)GFS[7](Google File System)。Google GFS的結(jié)點(diǎn)由廉價不可靠PC構(gòu)建,因而硬件失敗是一種常態(tài)而非特例。
(2) 分布式對象存儲系統(tǒng)
對象存儲系統(tǒng)是傳統(tǒng)的塊設(shè)備的延伸,具有更高的“智能”:上層通過對象ID來訪問對象,而不需要了解對象的具體空間分布情況。Amazon的S3就屬于對象存儲服務(wù)。
(3) 分布式數(shù)據(jù)庫技術(shù)
云計算環(huán)境下,大部分應(yīng)用不需要支持完整的SQL語義,而只需要Key-Value形式或略復(fù)雜的查詢語義。Google的BigTable[8]是一個典型的分布式結(jié)構(gòu)化數(shù)據(jù)存儲系統(tǒng)。
5.4 海量數(shù)據(jù)處理
并行計算模型是提高海量數(shù)據(jù)處理效率的常用方法。云計算環(huán)境下的并行計算模型屬于面向互聯(lián)網(wǎng)數(shù)據(jù)密集型應(yīng)用的并行編程模型,云計算下把海量數(shù)據(jù)分布到多個結(jié)點(diǎn)(通常是廉價不可靠的PC機(jī))上,將計算并行化,利用多機(jī)的計算資源,加快數(shù)據(jù)處理的速度[9]。如Google的MapReduce模型、微軟的Dryad模型。
5.5 用戶交互技術(shù)
隨著云計算的逐步普及,瀏覽器已經(jīng)不僅僅是一個客戶端的軟件,而逐步演變?yōu)槌休d著互聯(lián)網(wǎng)的平臺。瀏覽器與云計算的整合技術(shù)主要體現(xiàn)在兩個方面:瀏覽器網(wǎng)絡(luò)化與瀏覽器云服務(wù)。瀏覽器都將網(wǎng)絡(luò)化作為其功能的標(biāo)配之一,主要功能體現(xiàn)在用戶可以登錄瀏覽器,并通過自己的帳號將個性化數(shù)據(jù)同步到服務(wù)端。而目前的云端服務(wù),主要體現(xiàn)在P2P下載、視頻加速等單獨(dú)的客戶端軟件中。
5.6 安全管理
安全問題是用戶是否選擇云計算的主要顧慮之一。傳統(tǒng)集中式管理方式下也有安全問題,云計算的多租戶、分布性、對網(wǎng)絡(luò)和服務(wù)提供者的依賴性,為安全問題帶來新的挑戰(zhàn)[10]。主要的數(shù)據(jù)安全問題和風(fēng)險包括:數(shù)據(jù)存儲及訪問控制、數(shù)據(jù)傳輸保護(hù)、數(shù)據(jù)隱私及敏感信息保護(hù)、數(shù)據(jù)可用性、依從性管理;相應(yīng)的數(shù)據(jù)安全管理技術(shù)包括:數(shù)據(jù)保護(hù)及隱私、身份及訪問管理、可用性管理、日志管理、審計管理、依從性管理等。
5.7 運(yùn)營支撐管理
為了支持規(guī)模巨大的云計算環(huán)境,需要成千上萬臺服務(wù)器來支撐。如何對數(shù)以萬計的服務(wù)器進(jìn)行穩(wěn)定高效的運(yùn)營管理,成為云服務(wù)被用戶認(rèn)可的關(guān)鍵因素之一。 下面從云的部署、負(fù)載管理和監(jiān)控、計量計費(fèi)、SLA服務(wù)水平協(xié)議(Service Level Agreement)、能效評測五個方面分別闡述云的運(yùn)營管理。
(1) 云計算的部署
云計算的部署是一個系統(tǒng)工程,涉及到從機(jī)房建設(shè)、網(wǎng)絡(luò)優(yōu)化、硬件選型、軟件系統(tǒng)開發(fā)和測試到運(yùn)維等各方面的技術(shù)。為了保證服務(wù)的健壯性,需要將云計算以一定冗余部署在不同地域的若干機(jī)房。為了應(yīng)對規(guī)模的不斷增長,云計算要具備便利的、近乎無限的擴(kuò)展能力,因而從數(shù)據(jù)存儲層、應(yīng)用業(yè)務(wù)層到接入層都需要采用相應(yīng)的措施。為了保護(hù)云計算及其應(yīng)用的安全,需要建立起各個層次的信息安全機(jī)制。除此之外,還需要部署一些輔助的子系統(tǒng),如管理信息系統(tǒng)、安全系統(tǒng)、監(jiān)控和計費(fèi)系統(tǒng)等,使云計算的部署和運(yùn)營管理達(dá)到高度自動化和智能化的程度。
(2) 負(fù)載管理和監(jiān)控
云計算的負(fù)載管理和監(jiān)控是一種大規(guī)模集群的負(fù)載管理和監(jiān)控技術(shù)[11]。對于結(jié)點(diǎn)粒度,它需要能夠?qū)崟r地監(jiān)控集群中每個結(jié)點(diǎn)的負(fù)載狀態(tài),報告負(fù)載的異常和結(jié)點(diǎn)故障,對出現(xiàn)過載或故障的結(jié)點(diǎn)采取既定的預(yù)案。對于集群整體粒度,通過對單個結(jié)點(diǎn)、單個子系統(tǒng)的信息進(jìn)行匯總和計算,近乎實時地得到集群的整體負(fù)載和監(jiān)控信息,為運(yùn)維、調(diào)度和成本提供決策。
(3) 計量計費(fèi)
云計算的主要商業(yè)運(yùn)營模式是采取按量計費(fèi)(pay-as-go)的收費(fèi)方式[3]。為了精確地度量“用了多少”,就需要準(zhǔn)確、及時計算云計算上的每一個應(yīng)用服務(wù)使用了多少資源,這稱為服務(wù)計量。在計量的基礎(chǔ)上,選取若干合適的維度組合,制定相應(yīng)的計費(fèi)策略并進(jìn)行計費(fèi)。
(4) SLA
SLA是在一定開銷下為保障服務(wù)的性能和可靠性,服務(wù)提供商與用戶間定義的一種雙方認(rèn)可的協(xié)定。對于云服務(wù)而言,SLA是必不可少的,因為用戶對云服務(wù)的性能和可靠性有不同的要求。從用戶的角度而言,也需要從云服務(wù)提供商處得到具有法律效力的承諾,來保證支付費(fèi)用之后得到應(yīng)有的服務(wù)質(zhì)量。
(5) 能效評測
云計算提出的初衷是將資源和數(shù)據(jù)盡可能放在云端,降低能源消耗。但是在實際應(yīng)用中,為解決大型數(shù)據(jù)中心的散熱問題造成了大量的能源消耗。如何有效降低能源消耗構(gòu)建綠色數(shù)據(jù)中心成為云服務(wù)提供商迫切需要解決的問題之一。顯性的能耗測試評價可以參照傳統(tǒng)
數(shù)據(jù)中心的評價體系,具體包括:能源效率指標(biāo)、IT設(shè)備的能效比、IT設(shè)備的工作溫度和濕度范圍、機(jī)房基礎(chǔ)設(shè)施的利用率指標(biāo)。隱性能耗測試評價包括云計算服務(wù)模式節(jié)省了多少社會資源,由于客戶需求的不同,云計算系統(tǒng)吞吐量的變化節(jié)省了IT設(shè)備的投資和資源的重復(fù)建設(shè)。
亞馬遜、谷歌、雅虎、IBM和微軟等跨國公司紛紛開展云計算研究,并在相關(guān)領(lǐng)域開展部署,部分應(yīng)用已取得成功。我國華為、中興、浪潮等網(wǎng)絡(luò)設(shè)備提供商也積極投入相關(guān)設(shè)備研發(fā)。在電信領(lǐng)域、基礎(chǔ)運(yùn)營商和增值服務(wù)商也相繼開展了相關(guān)的嘗試,啟動了相關(guān)研究工作,這些都為我國云計算產(chǎn)業(yè)的創(chuàng)新發(fā)展提供了眾多有利的探索經(jīng)驗。伴隨著云計算產(chǎn)業(yè)的發(fā)展,云計算將為信息產(chǎn)業(yè)帶來廣闊的市場空間,催生大量的市場發(fā)展新機(jī)遇,對IT產(chǎn)業(yè)鏈更是影響重大。
參考文獻(xiàn)
[1] Wikipedia. Cloud Computing [EB/OL]. [2010-07-16].http://en.wikipedia.org/wiki/Cloudcomputing
[2] ARMBRUST M, FOX A. Above the clouds: a berkeley view of cloud computing[R/OL]. (2009-02-10)[2009-05-15].http://www.grid.pku.edu.cn/cloud/Berkeley-abovethe-clouds.pdf
[3] MELL P, GRANCE T. The NIST definition of cloud computing. [EB/OL]. (2009-10-7)[2010-4-9]. Http://csrc.nist.gov/groups/SNS/cloud-computing/index.html.
[4] GOOGLE.開發(fā)人員指南. [EB/OL].[2010-05-15]http://code.google.com/intl/zh-CN/appengine/docs/
[5] 金海.計算系統(tǒng)虛擬化:原理與應(yīng)用[M].北京:清華大學(xué)出版社,2008.
[6] PATERSON M. Dynamic resource distribution across clouds.V00214440[R].Victoria, University of Victo-ria Faculty of Engineering Winter 2010 Work Term Re-port. 2010.
[7] GHEMAWAT S, GOBIOFF H, Leung Shuntak. The google file system. In: Proc of the 19th ACM SOSP, New York, 2003.
[8] CHANG F, DEAN J, GHEMAWAT S, et al. Bigtable: a distributed storage system for structured data. In: Procfo the 7th USENIX Symp on OSDI, Berkeley, 2006.
[9] LAMMEL R. Google’s Map Reduce programming model Revisited. [EB/OL]. Http://www.cs.vu.nl/~ralf/Map Reduce/papa.pdf,2007.
[10] Cloud Security Alliance. Top threats cloud computing V1.0.[EB/OL]. http://www.cloudsecurityalliance.org/topthreats/csathreats.v1.0.pdf
[11] RANDLES M, LAMB D, et al. A comparative study into distributed load balancing algorithms for cloud computing. [C].//Proc of IEEE24th International Conference on Advanced Information Networking and Applications Workshops.2010.