一、云計(jì)算思想的產(chǎn)生
傳統(tǒng)模式下,企業(yè)建立一套IT系統(tǒng)不僅僅需要購(gòu)買(mǎi)硬件等基礎(chǔ)設(shè)施,還有買(mǎi)軟件的許可證,需要專門(mén)的人員維護(hù)。當(dāng)企業(yè)的規(guī)模擴(kuò)大時(shí)還要繼續(xù)升級(jí)各種軟硬件設(shè)施以滿足需要。對(duì)于企業(yè)來(lái)說(shuō),計(jì)算機(jī)等硬件和軟件本身并非他們真正需要的,它們僅僅是完成工作、提供效率的工具而已。對(duì)個(gè)人來(lái)說(shuō),我們想正常使用電腦需要安裝許多軟件,而許多軟件是收費(fèi)的,對(duì)不經(jīng)常使用該軟件的用戶來(lái)說(shuō)購(gòu)買(mǎi)是非常不劃算的??刹豢梢杂羞@樣的服務(wù),能夠提供我們需要的所有軟件供我們租用?這樣我們只需要在用時(shí)付少量“租金”即可“租用”到這些軟件服務(wù),為我們節(jié)省許多購(gòu)買(mǎi)軟硬件的資金。
我們每天都要用電,但我們不是每家自備發(fā)電機(jī),它由電廠集中提供;我們每天都要用自來(lái)水,但我們不是每家都有井,它由自來(lái)水廠集中提供。這種模式極大得節(jié)約了資源,方便了我們的生活。面對(duì)計(jì)算機(jī)給我們帶來(lái)的困擾,我們可不可以像使用水和電一樣使用計(jì)算機(jī)資源?這些想法最終導(dǎo)致了云計(jì)算的產(chǎn)生。
云計(jì)算的最終目標(biāo)是將計(jì)算、服務(wù)和應(yīng)用作為一種公共設(shè)施提供給公眾,使人們能夠像使用水、電、煤氣和電話那樣使用計(jì)算機(jī)資源。
云計(jì)算模式即為電廠集中供電模式。在云計(jì)算模式下,用戶的計(jì)算機(jī)會(huì)變的十分簡(jiǎn)單,或許不大的內(nèi)存、不需要硬盤(pán)和各種應(yīng)用軟件,就可以滿足我們的需求,因?yàn)橛脩舻挠?jì)算機(jī)除了通過(guò)瀏覽器給“云”發(fā)送指令和接受數(shù)據(jù)外基本上什么都不用做便可以使用云服務(wù)提供商的計(jì)算資源、存儲(chǔ)空間和各種應(yīng)用軟件。這就像連接“顯示器” 和“主機(jī)”的電線無(wú)限長(zhǎng),從而可以把顯示器放在使用者的面前,而主機(jī)放在遠(yuǎn)到甚至計(jì)算機(jī)使用者本人也不知道的地方。云計(jì)算把連接“顯示器”和“主機(jī)”的電線變成了網(wǎng)絡(luò),把“主機(jī)”變成云服務(wù)提供商的服務(wù)器集群。
在云計(jì)算環(huán)境下,用戶的使用觀念也會(huì)發(fā)生徹底的變化:從“購(gòu)買(mǎi)產(chǎn)品”到“購(gòu)買(mǎi)服務(wù)”轉(zhuǎn)變,因?yàn)樗麄冎苯用鎸?duì)的將不再是復(fù)雜的硬件和軟件,而是最終的服務(wù)。用戶不需要擁有看得見(jiàn)、摸得著的硬件設(shè)施,也不需要為機(jī)房支付設(shè)備供電、空調(diào)制冷、專人維護(hù)等等費(fèi)用,并且不需要等待漫長(zhǎng)的供貨周期、項(xiàng)目實(shí)施等冗長(zhǎng)的時(shí)間,只需要把錢(qián)匯給云計(jì)算服務(wù)提供商,我們將會(huì)馬上得到需要的服務(wù)。
二、云計(jì)算的概念
云計(jì)算(Cloud Computing)是由分布式計(jì)算(Distributed Computing)、并行處理(Parallel Computing)、網(wǎng)格計(jì)算(Grid Computing)發(fā)展來(lái)的,是一種新興的商業(yè)計(jì)算模型。目前,對(duì)于云計(jì)算的認(rèn)識(shí)在不斷的發(fā)展變化,云計(jì)算沒(méi)仍沒(méi)有普遍一致的定義。
中國(guó)網(wǎng)格計(jì)算、云計(jì)算專家劉鵬給出如下定義 :“云計(jì)算將計(jì)算任務(wù)分布在大量計(jì)算機(jī)構(gòu)成的資源池上,使各種應(yīng)用系統(tǒng)能夠根據(jù)需要獲取計(jì)算力、存儲(chǔ)空間和各種軟件服務(wù)”。
狹義的云計(jì)算指的是廠商通過(guò)分布式計(jì)算和虛擬化技術(shù)搭建數(shù)據(jù)中心或超級(jí)計(jì)算機(jī),以免費(fèi)或按需租用方式向技術(shù)開(kāi)發(fā)者或者企業(yè)客戶提供數(shù)據(jù)存儲(chǔ)、分析以及科學(xué)計(jì)算等服務(wù),比如亞馬遜數(shù)據(jù)倉(cāng)庫(kù)出租生意。
廣義的云計(jì)算指廠商通過(guò)建立網(wǎng)絡(luò)服務(wù)器集群,向各種不同類(lèi)型客戶提供在線軟件服務(wù)、硬件租借、數(shù)據(jù)存儲(chǔ)、計(jì)算分析等不同類(lèi)型的服務(wù)。廣義的云計(jì)算包括了更多的廠商和服務(wù)類(lèi)型,例如國(guó)內(nèi)用友、金蝶等管理軟件廠商推出的在線財(cái)務(wù)軟件,谷歌發(fā)布的Google應(yīng)用程序套裝等。
通俗的理解是,云計(jì)算的“云“就是存在于互聯(lián)網(wǎng)上的服務(wù)器集群上的資源,它包括硬件資源(服務(wù)器、存儲(chǔ)器、CPU等)和軟件資源(如應(yīng)用軟件、集成開(kāi)發(fā)環(huán)境等),本地計(jì)算機(jī)只需要通過(guò)互聯(lián)網(wǎng)發(fā)送一個(gè)需求信息,遠(yuǎn)端就會(huì)有成千上萬(wàn)的計(jì)算機(jī)為你提供需要的資源并將結(jié)果返回到本地計(jì)算機(jī),這樣,本地計(jì)算機(jī)幾乎不需要做什么,所有的處理都在云計(jì)算提供商所提供的計(jì)算機(jī)群來(lái)完成。
三、云計(jì)算的主要服務(wù)形式和典型應(yīng)用
云計(jì)算還處于萌芽階段,有龐雜的各類(lèi)廠商在開(kāi)發(fā)不同的云計(jì)算服務(wù)。云計(jì)算的表現(xiàn)形式多種多樣,簡(jiǎn)單的云計(jì)算在人們?nèi)粘>W(wǎng)絡(luò)應(yīng)用中隨處可見(jiàn),比如騰訊QQ空間提供的在線制作Flash圖片,Google的搜索服務(wù),Google Doc, Google Apps等。目前,云計(jì)算的主要服務(wù)形式有:SaaS(Software as a Service), PaaS(Platform as a Service), IaaS(Infrastructure as a Service)。
(1)軟件即服務(wù)(SaaS)
SaaS服務(wù)提供商將應(yīng)用軟件統(tǒng)一部署在自己的服務(wù)器上,用戶根據(jù)需求通過(guò)互聯(lián)網(wǎng)向廠商訂購(gòu)應(yīng)用軟件服務(wù),服務(wù)提供商根據(jù)客戶所定軟件的數(shù)量、時(shí)間的長(zhǎng)短等因素收費(fèi),并且通過(guò)瀏覽器向客戶提供軟件的模式。這種服務(wù)模式的優(yōu)勢(shì)是,由服務(wù)提供商維護(hù)和管理軟件、提供軟件運(yùn)行的硬件設(shè)施,用戶只需擁有能夠接入互聯(lián)網(wǎng)的終端,即可隨時(shí)隨地使用軟件。這種模式下,客戶不再像傳統(tǒng)模式那樣花費(fèi)大量資金在硬件、軟件、維護(hù)人員,只需要支出一定的租賃服務(wù)費(fèi)用,通過(guò)互聯(lián)網(wǎng)就可以享受到相應(yīng)的硬件、軟件和維護(hù)服務(wù),這是網(wǎng)絡(luò)應(yīng)用最具效益的營(yíng)運(yùn)模式。對(duì)于小型企業(yè)來(lái)說(shuō),SaaS是采用先進(jìn)技術(shù)的最好途徑。
以企業(yè)管理軟件來(lái)說(shuō),SaaS模式的云計(jì)算ERP可以讓客戶根據(jù)并發(fā)用戶數(shù)量、所用功能多少、數(shù)據(jù)存儲(chǔ)容量、使用時(shí)間長(zhǎng)短等因素不同組合按需支付服務(wù)費(fèi)用,既不用支付軟件許可費(fèi)用,也不需要支付采購(gòu)服務(wù)器等硬件設(shè)備費(fèi)用,也不需要支付購(gòu)買(mǎi)操作系統(tǒng)、數(shù)據(jù)庫(kù)等平臺(tái)軟件費(fèi)用,也不用承擔(dān)軟件項(xiàng)目定制、開(kāi)發(fā)、實(shí)施費(fèi)用,也不需要承擔(dān)IT維護(hù)部門(mén)開(kāi)支費(fèi)用,實(shí)際上云計(jì)算ERP正是繼承了開(kāi)源ERP免許可費(fèi)用只收服務(wù)費(fèi)用的最重要特征,是突出了服務(wù)的ERP產(chǎn)品。
目前,Salesforce.com是提供這類(lèi)服務(wù)最有名的公司,Google Doc, Google Apps和Zoho Office也屬于這類(lèi)服務(wù)。
(2)平臺(tái)即服務(wù)(PaaS)
把開(kāi)發(fā)環(huán)境作為一種服務(wù)來(lái)提供。這是一種分布式平臺(tái)服務(wù),廠商提供開(kāi)發(fā)環(huán)境、服務(wù)器平臺(tái)、硬件資源等服務(wù)給客戶,用戶在其平臺(tái)基礎(chǔ)上定制開(kāi)發(fā)自己的應(yīng)用程序并通過(guò)其服務(wù)器和互聯(lián)網(wǎng)傳遞給其他客戶。PaaS能夠給企業(yè)或個(gè)人提供研發(fā)的中間件平臺(tái),提供應(yīng)用程序開(kāi)發(fā)、數(shù)據(jù)庫(kù)、應(yīng)用服務(wù)器、試驗(yàn)、托管及應(yīng)用服務(wù)。
Google App Engine, Salesforce的force.com平臺(tái),八百客的800APP是PaaS的代表產(chǎn)品。以Google App Engine為例,它是一個(gè)由python應(yīng)用服務(wù)器群、BigTable數(shù)據(jù)庫(kù)及GFS組成的平臺(tái),為開(kāi)發(fā)者提供一體化主機(jī)服務(wù)器及可自動(dòng)升級(jí)的在線應(yīng)用服務(wù)。用戶編寫(xiě)應(yīng)用程序并在Google的基礎(chǔ)架構(gòu)上運(yùn)行就可以為互聯(lián)網(wǎng)用戶提供服務(wù),Google提供應(yīng)用運(yùn)行及維護(hù)所需要的平臺(tái)資源。
(3)基礎(chǔ)設(shè)施服務(wù)(IaaS)
IaaS即把廠商的由多臺(tái)服務(wù)器組成的“云端”基礎(chǔ)設(shè)施,作為計(jì)量服務(wù)提供給客戶。它將內(nèi)存、I/O設(shè)備、存儲(chǔ)和計(jì)算能力整合成一個(gè)虛擬的資源池為整個(gè)業(yè)界提供所需要的存儲(chǔ)資源和虛擬化服務(wù)器等服務(wù)。這是一種托管型硬件方式,用戶付費(fèi)使用廠商的硬件設(shè)施。例如Amazon Web服務(wù)(AWS), IBM的BlueCloud等均是將基礎(chǔ)設(shè)施作為服務(wù)出租。
IaaS的優(yōu)點(diǎn)是用戶只需低成本硬件,按需租用相應(yīng)計(jì)算能力和存儲(chǔ)能力,大大降低了用戶在硬件上的開(kāi)銷(xiāo)。
目前,以Google云應(yīng)用最具代表性,例如GoogleDocs、GoogleApps、Googlesites,云計(jì)算應(yīng)用平臺(tái)GoogleApp Engine。
GoogleDocs是最早推出的云計(jì)算應(yīng)用,是軟件即服務(wù)思想的典型應(yīng)用。它是類(lèi)似于微軟的Office的在線辦公軟件。它可以處理和搜索文檔、表格、幻燈片,并可以通過(guò)網(wǎng)絡(luò)和他人分享并設(shè)置共享權(quán)限。Google文件是基于網(wǎng)絡(luò)的文字處理和電子表格程序,可提高協(xié)作效率,多名用戶可同時(shí)在線更改文件,并可以實(shí)時(shí)看到其他成員所作的編輯。用戶只需一臺(tái)接入互聯(lián)網(wǎng)的計(jì)算機(jī)和可以使用Google文件的標(biāo)準(zhǔn)瀏覽器即可在線創(chuàng)建和管理、實(shí)時(shí)協(xié)作、權(quán)限管理、共享、搜索能力、修訂歷史記錄功能,以及隨時(shí)隨地訪問(wèn)的特性,大大提高了文件操作的共享和協(xié)同能力。
GoogleAPPs是Google企業(yè)應(yīng)用套件,使用戶能夠處理日漸龐大的信息量,隨時(shí)隨地保持聯(lián)系,并可與其他同事、客戶和合作伙伴進(jìn)行溝通、共享和協(xié)作。它集成了Cmail、GoogleTalk、Google日歷、GoogleDocs、以及最新推出的云應(yīng)用GoogleSites、API擴(kuò)展以及一些管理功能,包含了通信、協(xié)作與發(fā)布、管理服務(wù)三方面的應(yīng)用,并且擁有著云計(jì)算的特性,能夠更好的實(shí)現(xiàn)隨時(shí)隨地協(xié)同共享。另外,它還具有低成本的優(yōu)勢(shì)和托管的便捷,用戶無(wú)需自己維護(hù)和管理搭建的協(xié)同共享平臺(tái)。
Googlesites是Google最新發(fā)布的云計(jì)算應(yīng)用,作為GoogleApps的一個(gè)組件出現(xiàn)。它是一個(gè)側(cè)重于團(tuán)隊(duì)協(xié)作的網(wǎng)站編輯工具,可利用它創(chuàng)建一個(gè)各種類(lèi)型的團(tuán)隊(duì)網(wǎng)站,通過(guò)Googlesites可將所有類(lèi)型的文件包括文檔、視頻、相片、日歷及附件等與好友、團(tuán)隊(duì)或整個(gè)網(wǎng)絡(luò)分享。
Google AppEngine是Google在2008年4月發(fā)布的一個(gè)平臺(tái),使用戶可以在Google的基礎(chǔ)架構(gòu)上開(kāi)發(fā)和部署運(yùn)行自己的應(yīng)用程序。目前,Google AppEngine支持Python語(yǔ)言和Java語(yǔ)言,每個(gè)Google AppEngine應(yīng)用程序可以使用達(dá)到500MB的持久存儲(chǔ)空間及可支持每月500萬(wàn)綜合瀏覽量的帶寬和CPU。并且,Google AppEngine應(yīng)用程序易于構(gòu)建和維護(hù),并可根據(jù)用戶的訪問(wèn)量和數(shù)據(jù)存儲(chǔ)需要的增長(zhǎng)輕松擴(kuò)展。同時(shí),用戶的應(yīng)用可以和Google的應(yīng)用程序集成,Google AppEngine還推出了軟件開(kāi)發(fā)套件(SDK),包括可以在用戶本地計(jì)算機(jī)上模擬所有Google AppEngine服務(wù)的網(wǎng)絡(luò)服務(wù)器應(yīng)用程序。
四、云計(jì)算的核心技術(shù)
云計(jì)算系統(tǒng)運(yùn)用了許多技術(shù),其中以編程模型、數(shù)據(jù)管理技術(shù)、數(shù)據(jù)存儲(chǔ)技術(shù)、虛擬化技術(shù)、云計(jì)算平臺(tái)管理技術(shù)最為關(guān)鍵。
(1)編程模型
MapReduce是Google開(kāi)發(fā)的java、Python、C++編程模型,它是一種簡(jiǎn)化的分布式編程模型和高效的任務(wù)調(diào)度模型,用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行運(yùn)算。嚴(yán)格的編程模型使云計(jì)算環(huán)境下的編程十分簡(jiǎn)單。MapReduce模式的思想是將要執(zhí)行的問(wèn)題分解成Map(映射)和Reduce(化簡(jiǎn))的方式,先通過(guò)Map程序?qū)?shù)據(jù)切割成不相關(guān)的區(qū)塊,分配(調(diào)度)給大量計(jì)算機(jī)處理,達(dá)到分布式運(yùn)算的效果,再通過(guò)Reduce程序?qū)⒔Y(jié)果匯整輸出。
(2) 海量數(shù)據(jù)分布存儲(chǔ)技術(shù)
云計(jì)算系統(tǒng)由大量服務(wù)器組成,同時(shí)為大量用戶服務(wù),因此云計(jì)算系統(tǒng)采用分布式存儲(chǔ)的方式存儲(chǔ)數(shù)據(jù),用冗余存儲(chǔ)的方式保證數(shù)據(jù)的可靠性。云計(jì)算系統(tǒng)中廣泛使用的數(shù)據(jù)存儲(chǔ)系統(tǒng)是Google的GFS和Hadoop團(tuán)隊(duì)開(kāi)發(fā)的GFS的開(kāi)源實(shí)現(xiàn)HDFS。
GFS即Google文件系統(tǒng)(Google File System),是一個(gè)可擴(kuò)展的分布式文件系統(tǒng),用于大型的、分布式的、對(duì)大量數(shù)據(jù)進(jìn)行訪問(wèn)的應(yīng)用。GFS的設(shè)計(jì)思想不同于傳統(tǒng)的文件系統(tǒng),是針對(duì)大規(guī)模數(shù)據(jù)處理和Google應(yīng)用特性而設(shè)計(jì)的。它運(yùn)行于廉價(jià)的普通硬件上,但可以提供容錯(cuò)功能。它可以給大量的用戶提供總體性能較高的服務(wù)。
一個(gè)GFS集群由一個(gè)主服務(wù)器(master)和大量的塊服務(wù)器(chunkserver)構(gòu)成,并被許多客戶(Client)訪問(wèn)。主服務(wù)器存儲(chǔ)文件系統(tǒng)所以的元數(shù)據(jù),包括名字空間、訪問(wèn)控制信息、從文件到塊的映射以及塊的當(dāng)前位置。它也控制系統(tǒng)范圍的活動(dòng),如塊租約(lease)管理,孤兒塊的垃圾收集,塊服務(wù)器間的塊遷移。主服務(wù)器定期通過(guò)HeartBeat消息與每一個(gè)塊服務(wù)器通信,給塊服務(wù)器傳遞指令并收集它的狀態(tài)。GFS中的文件被切分為64MB的塊并以冗余存儲(chǔ),每份數(shù)據(jù)在系統(tǒng)中保存3個(gè)以上備份。
客戶與主服務(wù)器的交換只限于對(duì)元數(shù)據(jù)的操作,所有數(shù)據(jù)方面的通信都直接和塊服務(wù)器聯(lián)系,這大大提高了系統(tǒng)的效率,防止主服務(wù)器負(fù)載過(guò)重。
(3) 海量數(shù)據(jù)管理技術(shù)
云計(jì)算需要對(duì)分布的、海量的數(shù)據(jù)進(jìn)行處理、分析,因此,數(shù)據(jù)管理技術(shù)必需能夠高效的管理大量的數(shù)據(jù)。云計(jì)算系統(tǒng)中的數(shù)據(jù)管理技術(shù)主要是Google的BT(BigTable)數(shù)據(jù)管理技術(shù)和Hadoop團(tuán)隊(duì)開(kāi)發(fā)的開(kāi)源數(shù)據(jù)管理模塊HBase。
BT是建立在GFS, Scheduler, Lock Service和MapReduce之上的一個(gè)大型的分布式數(shù)據(jù)庫(kù),與傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)不同,它把所有數(shù)據(jù)都作為對(duì)象來(lái)處理,形成一個(gè)巨大的表格,用來(lái)分布存儲(chǔ)大規(guī)模結(jié)構(gòu)化數(shù)據(jù)。
Google的很多項(xiàng)目使用BT來(lái)存儲(chǔ)數(shù)據(jù),包括網(wǎng)頁(yè)查詢,Google earth和Google金融。這些應(yīng)用程序?qū)T的要求各不相同:數(shù)據(jù)大小(從URL到網(wǎng)頁(yè)到衛(wèi)星圖象)不同,反應(yīng)速度不同(從后端的大批處理到實(shí)時(shí)數(shù)據(jù)服務(wù))。對(duì)于不同的要求,BT都成功的提供了靈活高效的服務(wù)。
(4)虛擬化技術(shù)
通過(guò)虛擬化技術(shù)可實(shí)現(xiàn)軟件應(yīng)用與底層硬件相隔離,它包括將單個(gè)資源劃分成多個(gè)虛擬資源的裂分模式,也包括將多個(gè)資源整合成一個(gè)虛擬資源的聚合模式。虛擬化技術(shù)根據(jù)對(duì)象可分成存儲(chǔ)虛擬化、計(jì)算虛擬化、網(wǎng)絡(luò)虛擬化等,計(jì)算虛擬化又分為系統(tǒng)級(jí)虛擬化、應(yīng)用級(jí)虛擬化和桌面虛擬化。
(5)云計(jì)算平臺(tái)管理技術(shù)
云計(jì)算資源規(guī)模龐大,服務(wù)器數(shù)量眾多并分布在不同的地點(diǎn),同時(shí)運(yùn)行著數(shù)百種應(yīng)用,如何有效的管理這些服務(wù)器,保證整個(gè)系統(tǒng)提供不間斷的服務(wù)是巨大的挑戰(zhàn)。
云計(jì)算系統(tǒng)的平臺(tái)管理技術(shù)能夠使大量的服務(wù)器協(xié)同工作,方便的進(jìn)行業(yè)務(wù)部署和開(kāi)通,快速發(fā)現(xiàn)和恢復(fù)系統(tǒng)故障,通過(guò)自動(dòng)化、智能化的手段實(shí)現(xiàn)大規(guī)模系統(tǒng)的可靠運(yùn)營(yíng)。