2006年谷歌推出了“Google 101計(jì)劃”,并正式提出“云”的概念和理論。隨后亞馬遜、微軟、惠普、雅虎、英特爾、IBM等公司都宣布了自己的“云計(jì)劃”,云安全、云存儲、內(nèi)部云、外部云、公共云、私有云……一堆讓人眼花繚亂的概念在不斷沖擊人們的神經(jīng)。那么到底什么是云計(jì)算技術(shù)呢?對云計(jì)算技術(shù)的產(chǎn)生、概念、原理、應(yīng)用和前景又在哪里?
一、云計(jì)算思想的產(chǎn)生
傳統(tǒng)模式下,企業(yè)建立一套IT系統(tǒng)不僅僅需要購買硬件等基礎(chǔ)設(shè)施,還有買軟件的許可證,需要專門的人員維護(hù)。當(dāng)企業(yè)的規(guī)模擴(kuò)大時還要繼續(xù)升級各種軟硬件設(shè)施以滿足需要。對于企業(yè)來說,計(jì)算機(jī)等硬件和軟件本身并非他們真正需要的,它們僅僅是完成工作、提供效率的工具而已。對個人來說,我們想正常使用電腦需要安裝許多軟件,而許多軟件是收費(fèi)的,對不經(jīng)常使用該軟件的用戶來說購買是非常不劃算的?刹豢梢杂羞@樣的服務(wù),能夠提供我們需要的所有軟件供我們租用?這樣我們只需要在用時付少量“租金”即可“租用”到這些軟件服務(wù),為我們節(jié)省許多購買軟硬件的資金。
我們每天都要用電,但我們不是每家自備發(fā)電機(jī),它由電廠集中提供;我們每天都要用自來水,但我們不是每家都有井,它由自來水廠集中提供。這種模式極大得節(jié)約了資源,方便了我們的生活。面對計(jì)算機(jī)給我們帶來的困擾,我們可不可以像使用水和電一樣使用計(jì)算機(jī)資源?這些想法終導(dǎo)致了云計(jì)算的產(chǎn)生。
云計(jì)算的終目標(biāo)是將計(jì)算、服務(wù)和應(yīng)用作為一種公共設(shè)施提供給公眾,使人們能夠像使用水、電、煤氣和電話那樣使用計(jì)算機(jī)資源。
云計(jì)算模式即為電廠集中供電模式。在云計(jì)算模式下,用戶的計(jì)算機(jī)會變的十分簡單,或許不大的內(nèi)存、不需要硬盤和各種應(yīng)用軟件,就可以滿足我們的需求,因?yàn)橛脩舻挠?jì)算機(jī)除了通過瀏覽器給“云”發(fā)送指令和接受數(shù)據(jù)外基本上什么都不用做便可以使用云服務(wù)提供商的計(jì)算資源、存儲空間和各種應(yīng)用軟件。這就像連接“顯示器” 和“主機(jī)”的電線無限長,從而可以把顯示器放在使用者的面前,而主機(jī)放在遠(yuǎn)到甚至計(jì)算機(jī)使用者本人也不知道的地方。云計(jì)算把連接“顯示器”和“主機(jī)”的電線變成了網(wǎng)絡(luò),把“主機(jī)”變成云服務(wù)提供商的服務(wù)器集群。
在云計(jì)算環(huán)境下,用戶的使用觀念也會發(fā)生徹底的變化:從“購買產(chǎn)品”到“購買服務(wù)”轉(zhuǎn)變,因?yàn)樗麄冎苯用鎸Φ膶⒉辉偈菑?fù)雜的硬件和軟件,而是終的服務(wù)。用戶不需要擁有看得見、摸得著的硬件設(shè)施,也不需要為機(jī)房支付設(shè)備供電、空調(diào)制冷、專人維護(hù)等等費(fèi)用,并且不需要等待漫長的供貨周期、項(xiàng)目實(shí)施等冗長的時間,只需要把錢匯給云計(jì)算服務(wù)提供商,我們將會馬上得到需要的服務(wù)。
二、云計(jì)算的概念
云計(jì)算(Cloud Computing)是由分布式計(jì)算(Distributed Computing)、并行處理(Parallel Computing)、網(wǎng)格計(jì)算(Grid Computing)發(fā)展來的,是一種新興的商業(yè)計(jì)算模型。目前,對于云計(jì)算的認(rèn)識在不斷的發(fā)展變化,云計(jì)算沒仍沒有普遍一致的定義。
中國網(wǎng)格計(jì)算、云計(jì)算專家劉鵬給出如下定義:“云計(jì)算將計(jì)算任務(wù)分布在大量計(jì)算機(jī)構(gòu)成的資源池上,使各種應(yīng)用系統(tǒng)能夠根據(jù)需要獲取計(jì)算力、存儲空間和各種軟件服務(wù)”。
狹義的云計(jì)算指的是廠商通過分布式計(jì)算和虛擬化技術(shù)搭建數(shù)據(jù)中心或超級計(jì)算機(jī),以免費(fèi)或按需租用方式向技術(shù)開發(fā)者或者企業(yè)客戶提供數(shù)據(jù)存儲、分析以及科學(xué)計(jì)算等服務(wù),比如亞馬遜數(shù)據(jù)倉庫出租生意。
廣義的云計(jì)算指廠商通過建立網(wǎng)絡(luò)服務(wù)器集群,向各種不同類型客戶提供在線軟件服務(wù)、硬件租借、數(shù)據(jù)存儲、計(jì)算分析等不同類型的服務(wù)。廣義的云計(jì)算包括了更多的廠商和服務(wù)類型,例如國內(nèi)用友、金蝶等管理軟件廠商推出的在線財(cái)務(wù)軟件,谷歌發(fā)布的Google應(yīng)用程序套裝等。
通俗的理解是,云計(jì)算的“云“就是存在于互聯(lián)網(wǎng)上的服務(wù)器集群上的資源,它包括硬件資源(服務(wù)器、存儲器、CPU等)和軟件資源(如應(yīng)用軟件、集成開發(fā)環(huán)境等),本地計(jì)算機(jī)只需要通過互聯(lián)網(wǎng)發(fā)送一個需求信息,遠(yuǎn)端就會有成千上萬的計(jì)算機(jī)為你提供需要的資源并將結(jié)果返回到本地計(jì)算機(jī),這樣,本地計(jì)算機(jī)幾乎不需要做什么,所有的處理都在云計(jì)算提供商所提供的計(jì)算機(jī)群來完成。
三、典型云計(jì)算平臺介紹
由于云計(jì)算技術(shù)范圍很廣,目前各大IT企業(yè)提供的云計(jì)算服務(wù)主要根據(jù)自身的特點(diǎn)和優(yōu)勢實(shí)現(xiàn)的。下面以Google、IBM、Amazon為例說明:
(1)Google 的云計(jì)算平臺
Google的硬件條件優(yōu)勢,大型的數(shù)據(jù)中心、搜索引擎的支柱應(yīng)用,促進(jìn)Google云計(jì)算迅速發(fā)展。Google的云計(jì)算主要由MapReduce、Google文件系統(tǒng)(GFS)、BigTable組成。它們是Google內(nèi)部云計(jì)算基礎(chǔ)平臺的3個主要部分。Google 還構(gòu)建其他云計(jì)算組件,包括一個領(lǐng)域描述語言以及分布式鎖服務(wù)機(jī)制等。Sawzall是一種建立在MapReduce基礎(chǔ)上的領(lǐng)域語言,專門用于大規(guī)模的信息處理。Chubby是一個高可用、分布式數(shù)據(jù)鎖服務(wù),當(dāng)有機(jī)器失效時,Chubby使用Paxos算法來保證備份。
(2)IBM“藍(lán)云”計(jì)算平臺
“藍(lán)云”解決方案是由IBM云計(jì)算中心開發(fā)的企業(yè)級云計(jì)算解決方案。該解決方案可以對企業(yè)現(xiàn)有的基礎(chǔ)架構(gòu)進(jìn)行整合,通過虛擬化技術(shù)和自動化技術(shù),構(gòu)建企業(yè)自己擁有的云計(jì)算中心,實(shí)現(xiàn)企業(yè)硬件資源和軟件資源的統(tǒng)一管理、統(tǒng)一分配、統(tǒng)一部署、統(tǒng)一監(jiān)控和統(tǒng)一備份,打破應(yīng)用對資源的獨(dú)占,從而幫助企業(yè)實(shí)現(xiàn)云計(jì)算理念。
IBM 的“藍(lán)云”計(jì)算平臺是一套軟、硬件平臺,將Internet上使用的技術(shù)擴(kuò)展到企業(yè)平臺上,使得數(shù)據(jù)中心使用類似于互聯(lián)網(wǎng)的計(jì)算環(huán)境!八{(lán)云”大量使用了IBM先進(jìn)的大規(guī)模計(jì)算技術(shù),結(jié)合了IBM自身的軟、硬件系統(tǒng)以及服務(wù)技術(shù),支持開放標(biāo)準(zhǔn)與開放源代碼軟件。
“藍(lán)云”基于IBM Almaden研究中心的云基礎(chǔ)架構(gòu),采用了Xen和PowerVM虛擬化軟件,Linux操作系統(tǒng)映像以及Hadoop軟件(Google File System以及MapReduce的開源實(shí)現(xiàn))。IBM已經(jīng)正式推出了基于x86芯片服務(wù)器系統(tǒng)的“藍(lán)云”產(chǎn)品。下圖為IBM “藍(lán)云”的架構(gòu):
由圖可知,“藍(lán)云”計(jì)算平臺由一個數(shù)據(jù)中心、IBM Tivoli部署管理軟件(Tivoli provisioning manager)、IBM Tivoli監(jiān)控軟件(IBM Tivoli monitoring)、IBM WebSphere應(yīng)用服務(wù)器、IBM DB2數(shù)據(jù)庫以及一些開源信息處理軟件和開源虛擬化軟件共同組成!八{(lán)云”的硬件平臺環(huán)境與一般的x86服務(wù)器集群類似,使用刀片的方式增加了計(jì)算密度。“藍(lán)云”軟件平臺的特點(diǎn)主要體現(xiàn)在虛擬機(jī)以及對于大規(guī)模數(shù)據(jù)處理軟件Apache Hadoop的使用。
“藍(lán)云”平臺的一個重要特點(diǎn)是虛擬化技術(shù)的使用。虛擬化的方式在“藍(lán)云”中有兩個級別,一個是在硬件級別上實(shí)現(xiàn)虛擬化,另一個是通過開源軟件實(shí)現(xiàn)虛擬化。硬件級別的虛擬化可以使用IBM p系列的服務(wù)器,獲得硬件的邏輯分區(qū)LPAR(logic partition)。邏輯分區(qū)的CPU資源能夠通過IBM Enterprise Workload Manager來管理。通過這樣的方式加上在實(shí)際使用過程中的資源分配策略,能夠使相應(yīng)的資源合理地分配到各個邏輯分區(qū)。p系列系統(tǒng)的邏輯分區(qū)小粒度是1/10顆CPU。Xen則是軟件級別上的虛擬化,能夠在Linux基礎(chǔ)上運(yùn)行另外一個操作系統(tǒng)。
虛擬機(jī)是一類特殊的軟件,能夠完全模擬硬件的執(zhí)行,運(yùn)行不經(jīng)修改的完整的操作系統(tǒng),保留了一整套運(yùn)行環(huán)境語義。通過虛擬機(jī)的方式,在云計(jì)算平臺上獲得如下一些優(yōu)點(diǎn):
1)云計(jì)算的管理平臺能夠動態(tài)地將計(jì)算平臺定位到所需要的物理節(jié)點(diǎn)上,而無須停止運(yùn)行在虛擬機(jī)平臺上的應(yīng)用程序,進(jìn)程遷移方法更加靈活;
2)降低集群電能消耗,將多個負(fù)載不是很重的虛擬機(jī)計(jì)算節(jié)點(diǎn)合并到同一個物理節(jié)點(diǎn)上,從而能夠關(guān)閉空閑的物理節(jié)點(diǎn),達(dá)到節(jié)約電能的目的;
3)通過虛擬機(jī)在不同物理節(jié)點(diǎn)上的動態(tài)遷移,遷移了整體的虛擬運(yùn)行環(huán)境,能夠獲得與應(yīng)用無關(guān)的負(fù)載平衡性能;
4)在部署上也更加靈活,即可以將虛擬機(jī)直接部署到物理計(jì)算平臺上,而虛擬機(jī)本身就包括了相應(yīng)的操作系統(tǒng)以及相應(yīng)的應(yīng)用軟件,直接將大量的虛擬機(jī)映像復(fù)制到對應(yīng)的物理節(jié)點(diǎn)即可。
“藍(lán)云”計(jì)算平臺中的存儲體系結(jié)構(gòu):“藍(lán)云”計(jì)算平臺中的存儲體系結(jié)構(gòu)對于云計(jì)算來說也是非常重要的,無論是操作系統(tǒng)、服務(wù)程序還是用戶的應(yīng)用程序的數(shù)據(jù)都保存在存儲體系中!八{(lán)云”存儲體系結(jié)構(gòu)包含類似于Google File System 的集群文件系統(tǒng)以及基于塊設(shè)備方式的存儲區(qū)域網(wǎng)絡(luò)SAN。
在設(shè)計(jì)云計(jì)算平臺的存儲體系結(jié)構(gòu)時,可以通過組合多個磁盤獲得很大的磁盤容量。相對于磁盤的容量,在云計(jì)算平臺的存儲中,磁盤數(shù)據(jù)的讀寫速度是一個更重要的問題,因此需要對多個磁盤進(jìn)行同時讀寫。這種方式要求將數(shù)據(jù)分配到多個節(jié)點(diǎn)的多個磁盤當(dāng)中。為達(dá)到這一目的,存儲技術(shù)有兩個選擇,一個是使用類似于Google File System的集群文件系統(tǒng),另一個是基于塊設(shè)備的存儲區(qū)域網(wǎng)絡(luò)SAN系統(tǒng)。
在藍(lán)云計(jì)算平臺上,SAN 系統(tǒng)與分布式文件系統(tǒng)(例如Google File System)并不是相互對立的系統(tǒng),SAN提供的是塊設(shè)備接口,需要在此基礎(chǔ)上構(gòu)建文件系統(tǒng),才能被上層應(yīng)用程序所使用。而Google File System正好是一個分布式的文件系統(tǒng),能夠建立在SAN之上。兩者都能提供可靠性、可擴(kuò)展性,至于如何使用還需要由建立在云計(jì)算平臺上的應(yīng)用程序來決定,這也體現(xiàn)了計(jì)算平臺與上層應(yīng)用相互協(xié)作的關(guān)系。
(3)Amazon的彈性計(jì)算云
Amazon是互聯(lián)網(wǎng)上大的在線零售商,為了應(yīng)付交易高峰,不得不購買了大量的服務(wù)器。而在大多數(shù)時間,大部分服務(wù)器閑置,造成了很大的浪費(fèi),為了合理利用空閑服務(wù)器,Amazon建立了自己的云計(jì)算平臺彈性計(jì)算云EC2(elastic compute cloud),并且是第一家將基礎(chǔ)設(shè)施作為服務(wù)出售的公司。
Amazon將自己的彈性計(jì)算云建立在公司內(nèi)部的大規(guī)模集群計(jì)算的平臺上,而用戶可以通過彈性計(jì)算云的網(wǎng)絡(luò)界面去操作在云計(jì)算平臺上運(yùn)行的各個實(shí)例(instance)。用戶使用實(shí)例的付費(fèi)方式由用戶的使用狀況決定,即用戶只需為自己所使用的計(jì)算平臺實(shí)例付費(fèi),運(yùn)行結(jié)束后計(jì)費(fèi)也隨之結(jié)束。這里所說的實(shí)例即是由用戶控制的完整的虛擬機(jī)運(yùn)行實(shí)例。通過這種方式,用戶不必自己去建立云計(jì)算平臺,節(jié)省了設(shè)備與維護(hù)費(fèi)用。
上圖為EC2系統(tǒng)的使用模式。從圖中可以看出,彈性計(jì)算云用戶使用客戶端通過SOAP over HTTPS協(xié)議與Amazon彈性計(jì)算云內(nèi)部的實(shí)例進(jìn)行交互。這樣,彈性計(jì)算云平臺為用戶或者開發(fā)人員提供了一個虛擬的集群環(huán)境,在用戶具有充分靈活性的同時,也減輕了云計(jì)算平臺擁有者(Amazon公司)的管理負(fù)擔(dān)。彈性計(jì)算云中的每一個實(shí)例代表一個運(yùn)行中的虛擬機(jī)。用戶對自己的虛擬機(jī)具有完整的訪問權(quán)限,包括針對此虛擬機(jī)操作系統(tǒng)的管理員權(quán)限。虛擬機(jī)的收費(fèi)也是根據(jù)虛擬機(jī)的能力進(jìn)行費(fèi)用計(jì)算的,實(shí)際上,用戶租用的是虛擬的計(jì)算能力。
總而言之,Amazon通過提供彈性計(jì)算云,滿足了小規(guī)模軟件開發(fā)人員對集群系統(tǒng)的需求,減小了維護(hù)負(fù)擔(dān)。其收費(fèi)方式相對簡單明了:用戶使用多少資源,只需為這一部分資源付費(fèi)即可。
為了彈性計(jì)算云的進(jìn)一步發(fā)展,Amazon規(guī)劃了如何在云計(jì)算平臺基礎(chǔ)上幫助用戶開發(fā)網(wǎng)絡(luò)化的應(yīng)用程序。除了網(wǎng)絡(luò)零售業(yè)務(wù)以外,云計(jì)算也是Amazon公司的核心價值所在。Amazon將來會在彈性計(jì)算云的平臺基礎(chǔ)上添加更多的網(wǎng)絡(luò)服務(wù)組件模塊,為用戶構(gòu)建云計(jì)算應(yīng)用提供方便。