摘 要: 在分析現(xiàn)有定義的基礎上對云計算提出了較全面的參考性定義,并給出了云計算的六大特征、四種部署模式和三種服務模式。此外,通過對云環(huán)境中三種角色的責任分析和對主流云計算產(chǎn)品的研究,抽象出了支撐云計算的關鍵技術,最后指出云計算對未來軟件市場發(fā)展的影響。
關鍵詞: 云計算;云服務;云部署
作為一種IT基礎設施交付和使用模式、一種信息服務交付和使用模式、一種基于互聯(lián)網(wǎng)通過虛擬化方式共享信息資源的新型計算模式,云計算為數(shù)據(jù)計算、存儲和管理提供了虛擬資源空間和超強計算能力,可使用戶低成本、高效率、靈活地分享信息技術的發(fā)展成果,更好地獲取和使用知識,減少數(shù)字鴻溝,加強科技創(chuàng)新,提高公共服務水平。
20世紀60年代John McCarthy提出“計算能力在未來將成為公共設施”,這是云計算概念的起源[1]。20世紀80年代末誕生了網(wǎng)格計算,將大量的異構計算機集成起來進行復雜問題(通常是科學問題)的求解。20世紀90年代,虛擬化的概念已經(jīng)從虛擬服務器發(fā)展到更高層次的抽象,從虛擬平臺到虛擬應用程序。20世紀末21世紀初,Web Service和SOA等面向服務的概念和技術迅速發(fā)展。云計算正是在上述各項技術的基礎上,經(jīng)過數(shù)十載的發(fā)展演化逐漸成熟起來。
1 云計算概念
美國加州大學伯克利分校在指出云計算既指在互聯(lián)網(wǎng)上以服務形式提供的應用,也指在數(shù)據(jù)中心中提供這些服務的硬件和軟件,而這些數(shù)據(jù)中心中的硬件和軟件則被稱為云[2]。美國國家標準與技術研究院指出云計算由一個可配置的共享資源池組成,該資源池提供網(wǎng)絡、服務器、存儲、應用和服務等多種硬件和軟件資源[3]。資源池具備自我管理能力,用戶只需少量參與就可以方便快捷地按需獲取資源。云計算提高了資源可用性。
Wikipedia和NIST都強調(diào)云計算中資源的按需提供。在對云計算范圍的界定上, UCB認為云計算不包括私有云,而NIST則認為云計算包括私有云。本文認為NIST的定義主要從云計算提供者的角度出發(fā),比較全面地涵蓋了云計算的本質(zhì)特征,但是缺乏對云計算使用者和云計算開發(fā)者的闡述。
綜上所述,本文提出自己的參考性定義:云計算是一種以提高資源利用率、降低IT成本為驅動的計算模式,在云計算中包括云服務使用者、云服務提供者和云服務開發(fā)者三類角色。
云服務使用者可在不具備專業(yè)知識的情況下利用網(wǎng)絡通過交互技術以自服務的方式訪問云端資源。
云服務提供者作為聯(lián)系服務使用者和服務開發(fā)者的橋梁,以按需使用、按量計費的方式通過網(wǎng)絡提供動態(tài)可伸縮資源,云服務提供者負責安全管理、運營支撐管理、服務平臺以及資源平臺,其中服務平臺包括軟件即服務SaaS(Software as a Service)、平臺即服務PaaS(Platform as a Service)、基礎設施即服務IaaS(Infrastructure as a Service)以及這三種服務的組合和管理。資源平臺包括資源池、虛擬資源管理、物理資源管理等。
云服務開發(fā)者負責將各種軟硬件資源封裝成服務,并負責服務的創(chuàng)建、發(fā)布和維護。
2 云計算特征
為了全面理解云計算,本文進一步分析云計算的關鍵特征,具體如下:
(1)網(wǎng)絡接入。云計算通過網(wǎng)絡提供服務能力,支持各種標準設備接口。
(2)按需提供。云計算可以根據(jù)用戶需求的改變,快速動態(tài)地分配和回收資源,既保證忙時用戶需求的及時滿足,又保證閑時資源的及時回收。
(3)按量計費。云計算提供對計算、存儲、網(wǎng)絡和其他各類資源的測量能力,能夠統(tǒng)計某個用戶在某段時間對某類資源或者服務的使用情況。
(4)用戶自服務。用戶可以自服務的方式配置和調(diào)用云服務。例如,配置服務器時間和網(wǎng)絡存儲容量。
(5)多租戶。云計算提供者可以同時為多個使用者提供服務,利用規(guī)模經(jīng)濟提高資源利用率。
(6)可靠性。云計算通過異地備份、多副本備份等策略增強服務可靠性。
這些關鍵特征一方面可以幫助理解云計算的內(nèi)涵和外延,另一方面可以作為區(qū)別云計算和其他各類計算模式的依據(jù)。
3 云計算的服務模式
云服務[3]主要包括SaaS、PaaS、IaaS以及三種服務的組合。如圖1所示。
(1) SaaS是指將某些特定應用軟件功能封裝成服務,對于服務使用者而言購買的是軟件的使用權而不是其所有權。如Salesforce公司提供的在線客戶關系管理CRM服務。
(2) PaaS是指將一個完整的應用開發(fā)平臺,包括應用設計、應用開發(fā)、應用測試和應用托管都作為一種服務提供給客戶。典型的PaaS包括Google App Engine[4]、Microsoft Windows Azure。
(3) IaaS將硬件設備等基礎資源,包括計算、存儲和網(wǎng)絡等,封裝成服務供用戶使用,典型的如亞馬遜的彈性計算云EC2和簡單存儲服務S3[6]。
4 云計算的部署模式
云計算有四類典型的部署模式(如圖2所示):“公共云”、“私有云”、“社區(qū)云”和“混合云”。具體描述如下:
(1) 公共云。云基礎設施對公眾或某個很大的業(yè)界群組提供云服務。
(2) 私有云。云基礎設施特定為某個組織運行服務,可以是該組織或某個第三方負責管理。
(3) 社區(qū)云。云基礎設施由若干個組織分享,以支持某個特定的社區(qū)。
(4) 混合云。云基礎設施由兩個或多個云組成,獨立存在,但是通過標準的或私有的技術綁定在一起,這些技術可促成數(shù)據(jù)和應用的可移植性。
5 云計算關鍵技術
本文通過對云計算三種角色的責任研究和典型云計算產(chǎn)品的分析,抽象出了支撐云計算的七大關鍵技術。
5.1 系統(tǒng)虛擬化
系統(tǒng)虛擬化[5]是指將一臺物理計算機系統(tǒng)虛擬化為一臺或多臺虛擬計算機系統(tǒng)。通過虛擬化層的模擬,虛擬機中的操作系統(tǒng)認為自己仍然是獨占一個系統(tǒng)在運行。這個虛擬化層被稱為虛擬機監(jiān)控器。
5.2 虛擬化資源管理
虛擬化資源是云計算中最重要的組成部分之一,它對虛擬化資源的管理水平直接影響著云計算的可用性、可靠性和安全性。云資源池中應用的需求不斷改變,在線服務的請求經(jīng)常不可預測,這種動態(tài)的環(huán)境要求云計算的數(shù)據(jù)中心或計算中心能夠對各類資源靈活、快速、動態(tài)地按需進行調(diào)度。云計算中的虛擬化資源與以往的網(wǎng)絡資源相比,具有數(shù)量更為巨大、數(shù)據(jù)分布更為離散、數(shù)據(jù)調(diào)度更為頻繁的特征[6]。
5.3 分布式數(shù)據(jù)存儲
分布式數(shù)據(jù)存儲技術包含分布式文件存儲系統(tǒng)、分布式對象存儲系統(tǒng)和分布式數(shù)據(jù)庫技術。下面分別闡述這三方面的技術:
(1) 分布式文件存儲系統(tǒng)
為了存儲和管理云計算中的海量數(shù)據(jù),Google提出分布式文件系統(tǒng)GFS[7](Google File System)。Google GFS的結點由廉價不可靠PC構建,因而硬件失敗是一種常態(tài)而非特例。
(2) 分布式對象存儲系統(tǒng)
對象存儲系統(tǒng)是傳統(tǒng)的塊設備的延伸,具有更高的“智能”:上層通過對象ID來訪問對象,而不需要了解對象的具體空間分布情況。Amazon的S3就屬于對象存儲服務。
(3) 分布式數(shù)據(jù)庫技術
云計算環(huán)境下,大部分應用不需要支持完整的SQL語義,而只需要Key-Value形式或略復雜的查詢語義。Google的BigTable[8]是一個典型的分布式結構化數(shù)據(jù)存儲系統(tǒng)。
5.4 海量數(shù)據(jù)處理
并行計算模型是提高海量數(shù)據(jù)處理效率的常用方法。云計算環(huán)境下的并行計算模型屬于面向互聯(lián)網(wǎng)數(shù)據(jù)密集型應用的并行編程模型,云計算下把海量數(shù)據(jù)分布到多個結點(通常是廉價不可靠的PC機)上,將計算并行化,利用多機的計算資源,加快數(shù)據(jù)處理的速度[9]。如Google的MapReduce模型、微軟的Dryad模型。
5.5 用戶交互技術
隨著云計算的逐步普及,瀏覽器已經(jīng)不僅僅是一個客戶端的軟件,而逐步演變?yōu)槌休d著互聯(lián)網(wǎng)的平臺。瀏覽器與云計算的整合技術主要體現(xiàn)在兩個方面:瀏覽器網(wǎng)絡化與瀏覽器云服務。瀏覽器都將網(wǎng)絡化作為其功能的標配之一,主要功能體現(xiàn)在用戶可以登錄瀏覽器,并通過自己的帳號將個性化數(shù)據(jù)同步到服務端。而目前的云端服務,主要體現(xiàn)在P2P下載、視頻加速等單獨的客戶端軟件中。
5.6 安全管理
安全問題是用戶是否選擇云計算的主要顧慮之一。傳統(tǒng)集中式管理方式下也有安全問題,云計算的多租戶、分布性、對網(wǎng)絡和服務提供者的依賴性,為安全問題帶來新的挑戰(zhàn)[10]。主要的數(shù)據(jù)安全問題和風險包括:數(shù)據(jù)存儲及訪問控制、數(shù)據(jù)傳輸保護、數(shù)據(jù)隱私及敏感信息保護、數(shù)據(jù)可用性、依從性管理;相應的數(shù)據(jù)安全管理技術包括:數(shù)據(jù)保護及隱私、身份及訪問管理、可用性管理、日志管理、審計管理、依從性管理等。
5.7 運營支撐管理
為了支持規(guī)模巨大的云計算環(huán)境,需要成千上萬臺服務器來支撐。如何對數(shù)以萬計的服務器進行穩(wěn)定高效的運營管理,成為云服務被用戶認可的關鍵因素之一。 下面從云的部署、負載管理和監(jiān)控、計量計費、SLA服務水平協(xié)議(Service Level Agreement)、能效評測五個方面分別闡述云的運營管理。
(1) 云計算的部署
云計算的部署是一個系統(tǒng)工程,涉及到從機房建設、網(wǎng)絡優(yōu)化、硬件選型、軟件系統(tǒng)開發(fā)和測試到運維等各方面的技術。為了保證服務的健壯性,需要將云計算以一定冗余部署在不同地域的若干機房。為了應對規(guī)模的不斷增長,云計算要具備便利的、近乎無限的擴展能力,因而從數(shù)據(jù)存儲層、應用業(yè)務層到接入層都需要采用相應的措施。為了保護云計算及其應用的安全,需要建立起各個層次的信息安全機制。除此之外,還需要部署一些輔助的子系統(tǒng),如管理信息系統(tǒng)、安全系統(tǒng)、監(jiān)控和計費系統(tǒng)等,使云計算的部署和運營管理達到高度自動化和智能化的程度。
(2) 負載管理和監(jiān)控
云計算的負載管理和監(jiān)控是一種大規(guī)模集群的負載管理和監(jiān)控技術[11]。對于結點粒度,它需要能夠實時地監(jiān)控集群中每個結點的負載狀態(tài),報告負載的異常和結點故障,對出現(xiàn)過載或故障的結點采取既定的預案。對于集群整體粒度,通過對單個結點、單個子系統(tǒng)的信息進行匯總和計算,近乎實時地得到集群的整體負載和監(jiān)控信息,為運維、調(diào)度和成本提供決策。
(3) 計量計費
云計算的主要商業(yè)運營模式是采取按量計費(pay-as-go)的收費方式[3]。為了精確地度量“用了多少”,就需要準確、及時計算云計算上的每一個應用服務使用了多少資源,這稱為服務計量。在計量的基礎上,選取若干合適的維度組合,制定相應的計費策略并進行計費。
(4) SLA
SLA是在一定開銷下為保障服務的性能和可靠性,服務提供商與用戶間定義的一種雙方認可的協(xié)定。對于云服務而言,SLA是必不可少的,因為用戶對云服務的性能和可靠性有不同的要求。從用戶的角度而言,也需要從云服務提供商處得到具有法律效力的承諾,來保證支付費用之后得到應有的服務質(zhì)量。
(5) 能效評測
云計算提出的初衷是將資源和數(shù)據(jù)盡可能放在云端,降低能源消耗。但是在實際應用中,為解決大型數(shù)據(jù)中心的散熱問題造成了大量的能源消耗。如何有效降低能源消耗構建綠色數(shù)據(jù)中心成為云服務提供商迫切需要解決的問題之一。顯性的能耗測試評價可以參照傳統(tǒng)
數(shù)據(jù)中心的評價體系,具體包括:能源效率指標、IT設備的能效比、IT設備的工作溫度和濕度范圍、機房基礎設施的利用率指標。隱性能耗測試評價包括云計算服務模式節(jié)省了多少社會資源,由于客戶需求的不同,云計算系統(tǒng)吞吐量的變化節(jié)省了IT設備的投資和資源的重復建設。
亞馬遜、谷歌、雅虎、IBM和微軟等跨國公司紛紛開展云計算研究,并在相關領域開展部署,部分應用已取得成功。我國華為、中興、浪潮等網(wǎng)絡設備提供商也積極投入相關設備研發(fā)。在電信領域、基礎運營商和增值服務商也相繼開展了相關的嘗試,啟動了相關研究工作,這些都為我國云計算產(chǎn)業(yè)的創(chuàng)新發(fā)展提供了眾多有利的探索經(jīng)驗。伴隨著云計算產(chǎn)業(yè)的發(fā)展,云計算將為信息產(chǎn)業(yè)帶來廣闊的市場空間,催生大量的市場發(fā)展新機遇,對IT產(chǎn)業(yè)鏈更是影響重大。
參考文獻
[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)虛擬化:原理與應用[M].北京:清華大學出版社,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.