




已閱讀5頁,還剩174頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第10章云計(jì)算,10.1云計(jì)算概述10.2云計(jì)算系統(tǒng)的組成及其技術(shù)10.3典型云計(jì)算系統(tǒng)簡介10.4云計(jì)算的應(yīng)用示例,10.1云計(jì)算概述,當(dāng)今社會(huì),PC依然是日常工作生活中的核心工具我們用PC處理文檔、存儲(chǔ)資料,通過電子郵件或U盤與他人分享信息。如果PC硬盤壞了,我們會(huì)因?yàn)橘Y料丟失而束手無策。而在“云計(jì)算”時(shí)代,“云”會(huì)替我們做存儲(chǔ)和計(jì)算的工作?!霸啤本褪怯?jì)算機(jī)群,每一群包括了幾十萬臺、甚至上百萬臺計(jì)算機(jī)。“云”的好處還在于,其中的計(jì)算機(jī)可以隨時(shí)更新,保證“云”長生不老。,大約在2007年,包括IBM、Google、亞馬遜等在內(nèi)的知名企業(yè)紛紛提出云計(jì)算的概念。在“2009云計(jì)算中國論壇”上,成都信息工程學(xué)院副教授王鵬(走進(jìn)云計(jì)算的作者)指出,這些企業(yè)在提出云計(jì)算概念的時(shí)候,往往依據(jù)自己已有的技術(shù)基礎(chǔ)和自己商業(yè)的利益,從不同的角度提出了云計(jì)算模型。盡管如此,這些知名企業(yè)的推動(dòng),促使了整個(gè)云計(jì)算的概念明確和出現(xiàn)。,在云計(jì)算市場,Google的應(yīng)用引擎(GoogleAppEngine)和微軟的LiveMesh為開發(fā)云計(jì)算應(yīng)用提供了截然不同的平臺。LiveMesh是微軟推出的基于云計(jì)算的數(shù)據(jù)同步和設(shè)備管理平臺。LiveMesh把用戶數(shù)據(jù)的原版拷貝保留在自己的服務(wù)器上,這樣用戶就能從與互聯(lián)網(wǎng)相連的任何設(shè)備訪問最新版本的文件。在傳統(tǒng)的計(jì)算模式中,使用應(yīng)用程序來創(chuàng)建文檔(無論是打字稿、電子表格、數(shù)據(jù)庫還是其他文檔),當(dāng)需要保存文檔時(shí),應(yīng)用程序就把它交給操作系統(tǒng),操作系統(tǒng)會(huì)在本地存儲(chǔ)設(shè)備中以文件的形式保留一份文檔拷貝。,Google的模式卻截然不同。在這種模式中,云計(jì)算是多計(jì)算機(jī)環(huán)境下的計(jì)算。用戶不需要維護(hù)任何磁盤,也不需要“文件”或者用來保存文件的文件系統(tǒng)這種人工概念。Google的云計(jì)算還有其他優(yōu)勢,Google免費(fèi)提供應(yīng)用程序。由于這些應(yīng)用程序存在于云計(jì)算環(huán)境中,所以用戶不需要安裝軟件,也不需要管理程序升級或者安全補(bǔ)丁。實(shí)際上,用戶完全擺脫了與操作系統(tǒng)之間的所有日常交互。當(dāng)然,服務(wù)器底層運(yùn)行著某種操作系統(tǒng),負(fù)責(zé)運(yùn)行Google的諸多應(yīng)用程序;還有某種有組織的存儲(chǔ)系統(tǒng)。但這些僅僅是技術(shù)細(xì)節(jié),不需要用戶操心。,雖然Google基于互聯(lián)網(wǎng)的應(yīng)用程序確實(shí)給人留下了深刻印象,但其中缺乏像微軟Office這類桌面軟件的高級功能。正由于如此,這種方式很難讓習(xí)慣于Office的忠實(shí)用戶改變立場,轉(zhuǎn)身投向Google。另外,在云計(jì)算環(huán)境中,而不是在本地驅(qū)動(dòng)器上保存及管理文檔這種方式也可能讓企業(yè)客戶心生疑慮。比較而言,Google的云計(jì)算方案是革命性的,微軟的云計(jì)算方案卻是演進(jìn)性的。LiveMesh迎合的是現(xiàn)有用戶,這比較容易打動(dòng)人心。不過,Google的發(fā)展勢頭又是不可阻擋的。,10.1.1云計(jì)算的定義云計(jì)算(CloudComputing)是一種新提出的計(jì)算模式。維基百科給云計(jì)算下的定義為:云計(jì)算將IT相關(guān)的能力以服務(wù)的方式提供給用戶,允許用戶在不了解提供服務(wù)的技術(shù)、沒有相關(guān)知識以及設(shè)備操作能力的情況下,通過Internet獲取需要服務(wù)。中國云計(jì)算網(wǎng)將云計(jì)算定義為:云計(jì)算是分布式計(jì)算(DistributedComputing)、并行計(jì)算(ParallelComputing)和網(wǎng)格計(jì)算(GridComputing)的發(fā)展,或者說是這些科學(xué)概念的商業(yè)實(shí)現(xiàn)。,ForresterResearch的分析師JamesStaten將云計(jì)算定義為:云計(jì)算是一個(gè)具備高度擴(kuò)展性和管理性并能夠勝任終端用戶應(yīng)用軟件計(jì)算基礎(chǔ)架構(gòu)的系統(tǒng)池。,1狹義云計(jì)算狹義云計(jì)算是指IT基礎(chǔ)設(shè)施的交付和使用模式,即通過網(wǎng)絡(luò)以按需、易擴(kuò)展的方式獲得所需的資源(硬件、平臺、軟件)。提供資源的網(wǎng)絡(luò)被稱為“云”。“云”中的資源在使用者看來是可以無限擴(kuò)展的,并且可以隨時(shí)獲取,按需使用,隨時(shí)擴(kuò)展,按使用付費(fèi)。日常生活的供水、供電系統(tǒng)就具有這樣的特性,故狹義云計(jì)算也就意味著像使用水電一樣使用IT基礎(chǔ)設(shè)施。,2廣義云計(jì)算廣義云計(jì)算是指服務(wù)的交付和使用模式,即通過網(wǎng)絡(luò)以按需、易擴(kuò)展的方式獲得所需的服務(wù)。這種服務(wù)可以是IT和軟件、互聯(lián)網(wǎng)相關(guān)的,也可以是任意其他的服務(wù)。在廣義云計(jì)算意義上,“云”是一些可以自我維護(hù)和管理的虛擬計(jì)算資源,通常為一些大型服務(wù)器集群,包括計(jì)算服務(wù)器、存儲(chǔ)服務(wù)器、寬帶資源等。云計(jì)算將所有的計(jì)算資源集中起來,并由軟件實(shí)現(xiàn)自動(dòng)管理,無需人為參與。這使得應(yīng)用提供者無需為繁瑣的細(xì)節(jié)而煩惱,能夠更加專注于自己的業(yè)務(wù),有利于創(chuàng)新和降低成本。,有人打了個(gè)比方:這就好比是從古老的單臺發(fā)電機(jī)模式轉(zhuǎn)向了電廠集中供電的模式。它意味著計(jì)算能力也可以作為一種商品進(jìn)行流通,就像煤氣、水電一樣,取用方便,費(fèi)用低廉。最大的不同在于,它是通過互聯(lián)網(wǎng)進(jìn)行傳輸?shù)?。云?jì)算是并行計(jì)算(ParallelComputing)、分布式計(jì)算(DistributedComputing)和網(wǎng)格計(jì)算(GridComputing)的發(fā)展,或者說是這些計(jì)算機(jī)科學(xué)概念的商業(yè)實(shí)現(xiàn)。云計(jì)算是虛擬化(Virtualization)、效用計(jì)算(UtilityComputing)、IaaS(基礎(chǔ)設(shè)施即服務(wù))、PaaS(平臺即服務(wù))、SaaS(軟件即服務(wù))等概念混合演進(jìn)并躍升的結(jié)果。,雖然目前云計(jì)算沒有統(tǒng)一的定義,但結(jié)合上述定義,可以總結(jié)出云計(jì)算的一些本質(zhì)特征,即分布式計(jì)算和存儲(chǔ)特性、高擴(kuò)展性、用戶友好性和良好的管理性。云計(jì)算具有以下特點(diǎn):(1)超大規(guī)模?!霸啤本哂邢喈?dāng)?shù)囊?guī)模,Google云計(jì)算已經(jīng)擁有100多萬臺服務(wù)器,Amazon、IBM、Microsoft、Yahoo等的“云”均擁有幾十萬臺服務(wù)器。企業(yè)私有云一般擁有數(shù)百上千臺服務(wù)器?!霸啤蹦苜x予用戶前所未有的計(jì)算能力。,(2)虛擬化。云計(jì)算支持用戶在任意位置、使用各種終端獲取應(yīng)用服務(wù)。所請求的資源來自“云”,而不是固定的有形的實(shí)體。應(yīng)用在“云”中某處運(yùn)行,但實(shí)際上用戶無需了解、也不用擔(dān)心應(yīng)用運(yùn)行的具體位置。只需要一臺筆記本或者一部手機(jī),就可以通過網(wǎng)絡(luò)服務(wù)來實(shí)現(xiàn)我們需要的一切,甚至包括超級計(jì)算這樣的任務(wù)。(3)高可靠性?!霸啤笔褂昧藬?shù)據(jù)多副本容錯(cuò)、計(jì)算節(jié)點(diǎn)同構(gòu)可互換等措施來保障服務(wù)的高可靠性,使用云計(jì)算比使用本地計(jì)算機(jī)可靠。,(4)通用性。云計(jì)算不針對特定的應(yīng)用,在“云”的支撐下可以構(gòu)造出千變?nèi)f化的應(yīng)用,同一個(gè)“云”可以同時(shí)支撐不同的應(yīng)用運(yùn)行。(5)高可擴(kuò)展性?!霸啤钡囊?guī)??梢詣?dòng)態(tài)伸縮,滿足應(yīng)用和用戶規(guī)模增長的需要。(6)按需服務(wù)?!霸啤笔且粋€(gè)龐大的資源池,可按需購買;“云”可以像自來水、電、煤氣那樣計(jì)費(fèi)。,(7)極其廉價(jià)。由于“云”的特殊容錯(cuò)措施可以采用極其廉價(jià)的節(jié)點(diǎn)來構(gòu)成云,“云”的自動(dòng)化集中式管理使大量企業(yè)無需負(fù)擔(dān)日益高昂的數(shù)據(jù)中心管理成本,“云”的通用性使資源的利用率較之傳統(tǒng)系統(tǒng)大幅提升,用戶可以充分享受“云”的低成本優(yōu)勢,經(jīng)常只要花費(fèi)幾百美元、幾天時(shí)間就能完成以前需要數(shù)萬美元、數(shù)月時(shí)間才能完成的任務(wù)。,10.1.2云計(jì)算的類型谷歌和雅虎提供的基于Web的電子郵件服務(wù),Carbonite或MozyHome提供的備份服務(wù),S提供的客戶資源管理應(yīng)用軟件,以及美國在線(AOL)、谷歌、Skype、Vonage及其他公司提供的即時(shí)通信和VoIP服務(wù),這些都是云計(jì)算服務(wù)。云計(jì)算服務(wù)隱藏在另一個(gè)抽象層后面,可使最終用戶原本需要復(fù)雜計(jì)算架構(gòu)才能提供的那種功能變得更為簡單。下面主要從服務(wù)類型和服務(wù)方式的角度介紹云計(jì)算的類型。,1按服務(wù)類型分類從服務(wù)類型方面可把云計(jì)算分為基礎(chǔ)設(shè)施云、平臺云和應(yīng)用云。(1)基礎(chǔ)設(shè)施云:基礎(chǔ)架構(gòu)服務(wù)(InfrastructureasaService),提供網(wǎng)格或集群形式的虛擬化服務(wù)器、網(wǎng)絡(luò)、存儲(chǔ)和系統(tǒng)軟件,旨在補(bǔ)充或更換整個(gè)數(shù)據(jù)中心的功能。這些云為用戶提供底層的接近于直接操作硬件資源的服務(wù)。這方面最顯著的例子有亞馬遜的彈性計(jì)算云(EC2)和簡單存儲(chǔ)服務(wù)(SimpleStorageService)。,(2)平臺云:亦稱平臺即服務(wù)(PlatformasaService),提供虛擬化服務(wù)器,用戶可以在虛擬化服務(wù)器上運(yùn)行現(xiàn)有的應(yīng)用程序,或者開發(fā)新的應(yīng)用程序,不必為維護(hù)操作系統(tǒng)、服務(wù)器硬件、負(fù)載均衡或計(jì)算容量而操心。平臺可為開發(fā)人員提供應(yīng)用程序的托管,一旦開發(fā)人員開發(fā)出滿足平臺運(yùn)行的應(yīng)用程序且成功部署后,運(yùn)行過程中的資源分配和其他的管理工作等將由平臺云自行管理。這方面最顯著的例子有微軟的Azure和Salesforce的F。,(3)應(yīng)用云:又稱軟件即服務(wù)(SoftwareasaService),作為知名度最高、應(yīng)用最廣泛的一種云計(jì)算,SaaS提供了復(fù)雜的傳統(tǒng)應(yīng)用程序的所有功能,這些功能通過Web瀏覽器而不是安裝在本地的應(yīng)用程序來使用。SaaS消除了應(yīng)用服務(wù)器、存儲(chǔ)、應(yīng)用程序開發(fā)及相關(guān)的常見IT問題方面的擔(dān)憂。這方面最顯著的例子是S、谷歌的Gmail和Apps、美國在線、雅虎和谷歌的即時(shí)通信,以及Vonage和Skype的VoIP。,2按服務(wù)方式分類從服務(wù)方式方面可把云計(jì)算分為公有云、私有云和混合云。(1)公有云:就是有若干企業(yè)和若干客戶使用的形式。在公有云中,用戶使用的服務(wù)都是由第三方云服務(wù)提供商提供的,該提供商也為其他的客戶提供服務(wù),所有的用戶共享云服務(wù)提供商提供的所有資源。,(2)私有云:就是只在某個(gè)企業(yè)內(nèi)部獨(dú)立建立的云環(huán)境。私有云是專門為企業(yè)提供服務(wù)的專有云計(jì)算服務(wù),企業(yè)內(nèi)部的員工都可以訪問這個(gè)私有云內(nèi)部的所有服務(wù)資源,當(dāng)然這也類似我們平時(shí)構(gòu)建的管理系統(tǒng),可以設(shè)置相應(yīng)的權(quán)限,公司或者組織以外的用戶無法訪問這個(gè)云環(huán)境中的資源。(3)混合云:就是公有云和私有云相結(jié)合的形式。,10.1.3云計(jì)算與物聯(lián)網(wǎng)每當(dāng)人們談及互聯(lián)網(wǎng),聯(lián)想到的不只是物理設(shè)備構(gòu)成的網(wǎng),還有一個(gè)巨大的信息系統(tǒng)。物聯(lián)網(wǎng)的情況也與之類似。物聯(lián)網(wǎng)多被看做是互聯(lián)網(wǎng)通過各種信息感應(yīng)、探測、識別、定位、跟蹤和監(jiān)控等手段和設(shè)備向物理世界的延伸。對客觀世界的感應(yīng)、探測、監(jiān)控等,只是人類社會(huì)對物理世界實(shí)現(xiàn)“感、知、控”的第一個(gè)環(huán)節(jié),即為物聯(lián)網(wǎng)“前端”?;诨ヂ?lián)網(wǎng)計(jì)算的涌現(xiàn)智能以及對物理世界的反饋和控制是另外兩個(gè)環(huán)節(jié),即為物聯(lián)網(wǎng)“后端”。當(dāng)前,無論是學(xué)術(shù)界還是工業(yè)界,目光普遍聚焦在物聯(lián)網(wǎng)“前端”。本節(jié)將從物聯(lián)網(wǎng)“后端”來說明物聯(lián)網(wǎng)與云計(jì)算的關(guān)系。,1從“后端”看物聯(lián)網(wǎng)如前面所述,物聯(lián)網(wǎng)可以看做是互聯(lián)網(wǎng)通過傳感器網(wǎng)絡(luò)向物理世界的延伸,其最終目標(biāo)是實(shí)現(xiàn)對物理世界的智能化管理。在邏輯上,物聯(lián)網(wǎng)包括如圖10.1所示的三個(gè)層次,其中:(1)物理世界感知是物聯(lián)網(wǎng)的基礎(chǔ),基于傳感技術(shù)和網(wǎng)絡(luò)通信技術(shù),實(shí)現(xiàn)對物理世界的探測、識別、定位、跟蹤和監(jiān)控,可以看做是物聯(lián)網(wǎng)的“前端”。,(2)大量獨(dú)立建設(shè)的單一物聯(lián)網(wǎng)應(yīng)用是物聯(lián)網(wǎng)建設(shè)的起點(diǎn)與基本元素,該類應(yīng)用往往局限于對單一物品的感應(yīng)與智能管理,每個(gè)物聯(lián)網(wǎng)應(yīng)用都是物聯(lián)網(wǎng)上的一個(gè)邏輯節(jié)點(diǎn)。(3)通過對眾多單一物聯(lián)網(wǎng)應(yīng)用的深度互聯(lián)和跨域協(xié)作,物聯(lián)網(wǎng)可以形成一個(gè)多層嵌套的“網(wǎng)中網(wǎng)”,這是實(shí)現(xiàn)物聯(lián)網(wǎng)智能化管理目標(biāo)和價(jià)值追求的關(guān)鍵所在,可以看做是物聯(lián)網(wǎng)的“后端”。,圖10.1物聯(lián)網(wǎng)的三個(gè)層次,從“后端”來看,物聯(lián)網(wǎng)可以看做是一個(gè)基于互聯(lián)網(wǎng)的,以提高物理世界的運(yùn)行、管理、資源使用效率等水平為目標(biāo)的大規(guī)模信息系統(tǒng)。由于物聯(lián)網(wǎng)“前端”在對物理世界感應(yīng)方面具有高度并發(fā)的特性,并將產(chǎn)生大量引發(fā)“后端”深度互聯(lián)和跨域協(xié)作需求的事件,從而使得上述大規(guī)模信息系統(tǒng)表現(xiàn)出以下性質(zhì):,(1)不可預(yù)見性:對物理世界的感知具有實(shí)時(shí)性,會(huì)產(chǎn)生大量不可預(yù)見的事件,從而需要應(yīng)對大量即時(shí)協(xié)同的需求。(2)涌現(xiàn)智能:對諸多單一物聯(lián)網(wǎng)應(yīng)用的集成能夠提升對物理世界綜合管理的水平,物聯(lián)網(wǎng)“后端”是產(chǎn)生放大效應(yīng)的源泉。(3)多維度動(dòng)態(tài)變化:對物理世界的感知往往具有多個(gè)維度,并且是不斷動(dòng)態(tài)變化的,從而要求物聯(lián)網(wǎng)“后端”具有更高的適應(yīng)能力。(4)大數(shù)據(jù)量、實(shí)效性:物聯(lián)網(wǎng)中涉及的傳感信息具有大數(shù)據(jù)量、實(shí)效性等特征,對物聯(lián)網(wǎng)“后端”的信息處理帶來諸多新的挑戰(zhàn)。,綜上所述,實(shí)時(shí)感應(yīng)、高度并發(fā)、自主協(xié)同和涌現(xiàn)效應(yīng)等特征要求從新的角度審視物聯(lián)網(wǎng)“后端”信息基礎(chǔ)設(shè)施,對當(dāng)前互聯(lián)網(wǎng)計(jì)算(包括云計(jì)算、服務(wù)計(jì)算、網(wǎng)格等)的研究提出了新的挑戰(zhàn),需要有針對性地研究物聯(lián)網(wǎng)特定的應(yīng)用集成問題、體系結(jié)構(gòu)及標(biāo)準(zhǔn)規(guī)范,特別是大量高并發(fā)事件驅(qū)動(dòng)的應(yīng)用自動(dòng)關(guān)聯(lián)和智能協(xié)作問題。,2云與物聯(lián)網(wǎng)“后端”認(rèn)為“云”是支撐物聯(lián)網(wǎng)“后端”的認(rèn)識存在著誤區(qū)。云計(jì)算起源于互聯(lián)網(wǎng)公司對特定的大規(guī)模數(shù)據(jù)處理問題解決方案,由于問題和商業(yè)模式明確、產(chǎn)業(yè)界大力推動(dòng)以及已有網(wǎng)格等相關(guān)前期研究基礎(chǔ)等原因,而迅速被熱捧和泛化,但其本身遠(yuǎn)未成熟。即使在不考慮標(biāo)準(zhǔn)化過渡和互操作性等因素的情況下,基本實(shí)現(xiàn)云計(jì)算愿景恐怕也還要經(jīng)過一到數(shù)個(gè)創(chuàng)新周期。因此,我們不能簡單地設(shè)想和推斷云計(jì)算便可應(yīng)對物聯(lián)網(wǎng)“后端”的需求。,當(dāng)前所謂的軟件即服務(wù)(SaaS)、平臺即服務(wù)(PaaS)和基礎(chǔ)設(shè)施即服務(wù)(IaaS)三個(gè)層次的劃分也只是對現(xiàn)有云計(jì)算的初級認(rèn)識,并未全面體現(xiàn)云計(jì)算的內(nèi)涵、外延和發(fā)展。“云”的發(fā)展大體分為三個(gè)階段:第一階段,網(wǎng)格從科學(xué)領(lǐng)域需求出發(fā),云計(jì)算從互聯(lián)網(wǎng)特定的大規(guī)模數(shù)據(jù)處理需求出發(fā),Web2.0從用戶參與的角度出發(fā),盡管各自的應(yīng)用領(lǐng)域、視角和側(cè)重不同,但都取得了明顯的進(jìn)步,出現(xiàn)了一些令人鼓舞的典型應(yīng)用;第二階段,技術(shù)體系將互相滲透,會(huì)出現(xiàn)統(tǒng)一運(yùn)營的“行業(yè)云”、第三方運(yùn)營中心等;第三階段也是互聯(lián)網(wǎng)計(jì)算的愿景:客戶通過基于標(biāo)準(zhǔn)的服務(wù)交互方式,以極低的成本按需從基礎(chǔ)設(shè)施獲取高質(zhì)量的計(jì)算、存儲(chǔ)、數(shù)據(jù)、平臺和應(yīng)用等服務(wù),客戶無需關(guān)心服務(wù)是由什么“云”提供的。,在早期的客戶/服務(wù)器模式下,應(yīng)用服務(wù)器由各組織機(jī)構(gòu)自行運(yùn)營維護(hù),服務(wù)體現(xiàn)為緊耦合的對應(yīng)程序調(diào)用結(jié)果的消息。隨著以CORBA(CommonObjectRequestBrokerArchitecture,公用對象請求代理(調(diào)度)程序體系結(jié)構(gòu))、J2EE(Java2Platform,EnterpriseEdition)等分布式對象系統(tǒng)的發(fā)展,服務(wù)也升級為分布式平臺為客戶端提供價(jià)值的紐帶;隨著互聯(lián)網(wǎng)的發(fā)展,原來屬于應(yīng)用系統(tǒng)的共性功能逐漸下沉至基礎(chǔ)設(shè)施,越來越多的應(yīng)用服務(wù)器交給“云”上的運(yùn)營者運(yùn)營維護(hù),客戶端則基于服務(wù)中間件(如ESB(EnterpriseServiceBus)、ServiceRegistry等)享受云端提供的萬維網(wǎng)服務(wù)(WebService)和REST(REpresentationalStateTransfer,表述性狀態(tài)轉(zhuǎn)變)服務(wù)形式的松耦合的服務(wù)。,未來,“云”提供的服務(wù)將從多個(gè)層面、不同視角在“服務(wù)空間”中進(jìn)行一體化管理和組織,服務(wù)不再是一維的抽象,將覆蓋業(yè)務(wù)牽引的角度、以用戶為中心的角度、層次的角度等各個(gè)視角。CSI將云體系結(jié)構(gòu)歸納為用戶端和基礎(chǔ)設(shè)施,服務(wù)是其紐帶,也是構(gòu)造基于互聯(lián)網(wǎng)的應(yīng)用系統(tǒng)的第一元素(First-ClassEntity)。隨著以“云”為標(biāo)識的互聯(lián)網(wǎng)信息處理基礎(chǔ)設(shè)施的發(fā)展,服務(wù)計(jì)算的重要性將更加凸顯。針對物聯(lián)網(wǎng)需求特征的優(yōu)化策略、優(yōu)化方法和涌現(xiàn)智能也將更多地以服務(wù)組合的形式體現(xiàn),并出現(xiàn)物聯(lián)網(wǎng)服務(wù)新形態(tài),進(jìn)一步推動(dòng)服務(wù)計(jì)算相關(guān)學(xué)科的發(fā)展。,人類基礎(chǔ)設(shè)施的發(fā)展經(jīng)過上百年還未完善,同樣可以斷定,物聯(lián)網(wǎng)“后端”的發(fā)展完善也是一個(gè)長遠(yuǎn)的事情。因此,人們不能把云計(jì)算的愿景當(dāng)做現(xiàn)實(shí)。我們應(yīng)在考慮長期戰(zhàn)略目標(biāo)的同時(shí),以價(jià)值和典型應(yīng)用為牽引,先建立特定領(lǐng)域中統(tǒng)一運(yùn)營的“行業(yè)云”和第三方運(yùn)營中心,以實(shí)現(xiàn)資源優(yōu)化利用以及跨域的資源共享和應(yīng)用集成。同時(shí),需要充分考慮到物聯(lián)網(wǎng)上的信息具有多元、多源、多級過濾和分析、動(dòng)態(tài)變化、數(shù)據(jù)量巨大等特點(diǎn)。,10.2云計(jì)算系統(tǒng)的組成及其技術(shù),10.2.1云計(jì)算系統(tǒng)的組成云計(jì)算的體系結(jié)構(gòu)由五部分組成,分別為資源層、平臺層、應(yīng)用層、用戶訪問層和管理層,如圖10.2所示。云計(jì)算的本質(zhì)是通過網(wǎng)絡(luò)提供服務(wù),所以其體系結(jié)構(gòu)以服務(wù)為核心。,1資源層資源層是指基礎(chǔ)架構(gòu)層面的云計(jì)算服務(wù),這些服務(wù)可以提供虛擬化的資源,從而隱藏物理資源的復(fù)雜性。資源層包括物理資源、服務(wù)器服務(wù)、網(wǎng)絡(luò)服務(wù)和存儲(chǔ)服務(wù)。(1)物理資源指的是物理設(shè)備,如服務(wù)器等。(2)服務(wù)器服務(wù)指的是操作系統(tǒng)的環(huán)境,如Linux集群等。(3)網(wǎng)絡(luò)服務(wù)指的是提供的網(wǎng)絡(luò)處理能力,如防火墻、VLAN、負(fù)載等。(4)存儲(chǔ)服務(wù)為用戶提供存儲(chǔ)能力。,圖10.2云計(jì)算的體系結(jié)構(gòu),2平臺層平臺層為用戶提供對資源層服務(wù)的封裝,使用戶可以構(gòu)建自己的應(yīng)用。平臺層包括數(shù)據(jù)庫服務(wù)和中間件服務(wù)。(1)數(shù)據(jù)庫服務(wù)提供可擴(kuò)展的數(shù)據(jù)庫處理的能力。(2)中間件服務(wù)為用戶提供可擴(kuò)展的消息中間件或事務(wù)處理中間件等服務(wù)。,3應(yīng)用層應(yīng)用層提供軟件服務(wù),包括企業(yè)應(yīng)用服務(wù)和個(gè)人應(yīng)用服務(wù)。(1)企業(yè)應(yīng)用是指面向企業(yè)的用戶,如財(cái)務(wù)管理、客戶關(guān)系管理、商業(yè)智能等。(2)個(gè)人應(yīng)用是指面向個(gè)人用戶的服務(wù),如電子郵件、文本處理、個(gè)人信息存儲(chǔ)等。,4用戶訪問層用戶訪問層是方便用戶使用云計(jì)算服務(wù)所需的各種支撐服務(wù),針對每個(gè)層次的云計(jì)算服務(wù)都需要提供相應(yīng)的訪問接口。它包括服務(wù)目錄、訂閱管理和服務(wù)訪問。(1)服務(wù)目錄是一個(gè)服務(wù)列表,用戶可以從中選擇需要使用的云計(jì)算服務(wù)。(2)訂閱管理是提供給用戶的管理功能,用戶可以查閱自己訂閱的服務(wù),或者終止訂閱的服務(wù)。(3)服務(wù)訪問是針對每種層次的云計(jì)算服務(wù)提供的訪問接口。針對資源層的訪問可能是遠(yuǎn)程桌面或者XWindows;針對應(yīng)用層的訪問,提供的接口可能是Web。,5管理層管理層提供對所有層次云計(jì)算服務(wù)的管理功能,包括安全管理、服務(wù)組合、服務(wù)目錄管理、服務(wù)使用計(jì)量、服務(wù)質(zhì)量管理、部署管理和服務(wù)監(jiān)控。(1)安全管理:提供對服務(wù)的授權(quán)控制、用戶認(rèn)證、審計(jì)、一致性檢查等功能。(2)服務(wù)組合:提供對自己有云計(jì)算服務(wù)進(jìn)行組合的功能,使得新的服務(wù)可以基于已有服務(wù)創(chuàng)建時(shí)間。,(3)服務(wù)目錄管理服務(wù):提供服務(wù)目錄和服務(wù)本身的管理功能,管理員可以增加新的服務(wù),或者從服務(wù)目錄中除去服務(wù)。(4)服務(wù)使用計(jì)量:對用戶的使用情況進(jìn)行統(tǒng)計(jì),并以此為依據(jù)對用戶進(jìn)行計(jì)費(fèi)。(5)服務(wù)質(zhì)量管理:提供對服務(wù)的性能、可靠性、可擴(kuò)展性進(jìn)行管理的功能。(6)部署管理:提供對服務(wù)實(shí)例的自動(dòng)化部署和配置功能。當(dāng)用戶通過訂閱管理增加新的服務(wù)訂閱后,部署管理模塊自動(dòng)為用戶準(zhǔn)備服務(wù)實(shí)例。(7)服務(wù)監(jiān)控:提供對服務(wù)的健康狀態(tài)的記錄功能。,10.2.2云計(jì)算系統(tǒng)的服務(wù)層次1云計(jì)算的服務(wù)層次在云計(jì)算中,根據(jù)其服務(wù)集合所提供的服務(wù)類型,整個(gè)云計(jì)算服務(wù)集合被劃分成應(yīng)用層、平臺層、基礎(chǔ)設(shè)施層和虛擬化層四個(gè)層次,每一層都對應(yīng)著一個(gè)子服務(wù)集合。云計(jì)算的服務(wù)層次如圖10.3所示。,圖10.3云計(jì)算的服務(wù)層次,云計(jì)算的服務(wù)層次是根據(jù)服務(wù)類型即服務(wù)集合來劃分的,與大家熟悉的計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)中層次的劃分不同。在計(jì)算機(jī)網(wǎng)絡(luò)中,每個(gè)層次都實(shí)現(xiàn)一定的功能,層與層之間有一定關(guān)聯(lián)。而云計(jì)算體系結(jié)構(gòu)中的層次是可以分割的,即某一層次可以單獨(dú)完成一項(xiàng)用戶的請求而不需要其他層次為其提供必要的服務(wù)和支持。在云計(jì)算服務(wù)體系結(jié)構(gòu)中,各層次與相關(guān)云產(chǎn)品對應(yīng)如下:,(1)應(yīng)用層對應(yīng)SaaS(軟件即服務(wù)),如GoogleAPPS、SoftWare+Services。(2)平臺層對應(yīng)PaaS(平臺即服務(wù)),如IBMITFactory、GoogleAPPEngine、F。(3)基礎(chǔ)設(shè)施層對應(yīng)IaaS(基礎(chǔ)設(shè)施即服務(wù)),如AmazonEc2、IBMBlueCloud、SunGrid。(4)虛擬化層對應(yīng)硬件即服務(wù)結(jié)合Paas提供硬件服務(wù),包括服務(wù)器集群及硬件檢測等服務(wù)。,2云計(jì)算的技術(shù)層次云計(jì)算的技術(shù)層次和云計(jì)算的服務(wù)層次不是一個(gè)概念,后者從服務(wù)的角度來劃分云的層次,主要突出了云服務(wù)能給我們帶來什么。而云計(jì)算的技術(shù)層次主要從系統(tǒng)屬性和設(shè)計(jì)思想角度來說明云,是對軟、硬件資源在云計(jì)算技術(shù)中所充當(dāng)角色的說明。從云計(jì)算技術(shù)角度來分,云計(jì)算大約由服務(wù)接口、服務(wù)管理中間件、虛擬化資源、物理資源四部分構(gòu)成,如圖10.4所示。,圖10.4云計(jì)算技術(shù)結(jié)構(gòu),(1)服務(wù)接口:統(tǒng)一規(guī)定了在云計(jì)算時(shí)代使用計(jì)算機(jī)的各種規(guī)范、云計(jì)算服務(wù)的各種標(biāo)準(zhǔn)等,用戶端與云端交互操作的入口,可完成用戶或服務(wù)注冊,對服務(wù)進(jìn)行定制和使用等。,(2)服務(wù)管理中間件:在云計(jì)算技術(shù)中,中間件位于服務(wù)和服務(wù)器集群之間,提供管理和服務(wù)即云計(jì)算體系結(jié)構(gòu)中的管理系統(tǒng)。對標(biāo)識、認(rèn)證、授權(quán)、目錄、安全性等服務(wù)進(jìn)行標(biāo)準(zhǔn)化和操作,為應(yīng)用提供統(tǒng)一的標(biāo)準(zhǔn)化程序接口和協(xié)議,隱藏底層硬件、操作系統(tǒng)和網(wǎng)絡(luò)的異構(gòu)性,統(tǒng)一管理網(wǎng)絡(luò)資源。其用戶管理包括用戶身份驗(yàn)證、用戶許可、用戶定制管理;資源管理包括負(fù)載均衡、資源監(jiān)控、故障檢測等;安全管理包括身份驗(yàn)證、訪問授權(quán)、安全審計(jì)、綜合防護(hù)等;映像管理包括映像創(chuàng)建、部署、管理等。,(3)虛擬化資源:指一些可以實(shí)現(xiàn)一定操作、具有一定功能,但其本身是虛擬而不是真實(shí)的資源,如計(jì)算池、存儲(chǔ)池和網(wǎng)絡(luò)池、數(shù)據(jù)庫資源等,通過軟件技術(shù)來實(shí)現(xiàn)相關(guān)的虛擬化功能,如虛擬環(huán)境、虛擬系統(tǒng)、虛擬平臺。,(4)物理資源:主要指能支持計(jì)算機(jī)正常運(yùn)行的一些硬件設(shè)備及技術(shù),可以是價(jià)格低廉的PC,也可以是價(jià)格昂貴的服務(wù)器及磁盤陣列等設(shè)備,可以通過現(xiàn)有網(wǎng)絡(luò)技術(shù)和并行技術(shù)、分布式技術(shù)將分散的計(jì)算機(jī)組成一個(gè)能提供超強(qiáng)功能的集群用于計(jì)算和存儲(chǔ)等云計(jì)算操作。在云計(jì)算時(shí)代,本地計(jì)算機(jī)可能不再像傳統(tǒng)計(jì)算機(jī)那樣需要空間足夠的硬盤、大功率的處理器和大容量的內(nèi)存,只需要一些必要的硬件設(shè)備,如網(wǎng)絡(luò)設(shè)備和基本的輸入/輸出設(shè)備等。,10.2.3云計(jì)算的關(guān)鍵技術(shù)云計(jì)算是分布式處理、并行計(jì)算和網(wǎng)格計(jì)算等概念的發(fā)展和商業(yè)實(shí)現(xiàn),其技術(shù)實(shí)質(zhì)是計(jì)算、存儲(chǔ)、服務(wù)器、應(yīng)用軟件等IT軟、硬件資源的虛擬化。云計(jì)算在虛擬化、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)管理、編程模式等方面具有自身獨(dú)特的技術(shù)。云計(jì)算的關(guān)鍵技術(shù)包括以下幾個(gè)方面。,1虛擬機(jī)技術(shù)虛擬機(jī)即服務(wù)器虛擬化,是云計(jì)算底層架構(gòu)的重要基石。在服務(wù)器虛擬化中,虛擬化軟件需要實(shí)現(xiàn)對硬件的抽象,資源的分配、調(diào)度和管理,虛擬機(jī)與宿主操作系統(tǒng)及多個(gè)虛擬機(jī)間的隔離等功能,目前典型的實(shí)現(xiàn)(基本成為事實(shí)標(biāo)準(zhǔn))有CitrixXen、VMwareESXServer和MicrosoftHype-V等。,2數(shù)據(jù)存儲(chǔ)技術(shù)云計(jì)算系統(tǒng)需要同時(shí)滿足大量用戶的需求,并行地為大量用戶提供服務(wù)。因此,云計(jì)算的數(shù)據(jù)存儲(chǔ)技術(shù)必須具有分布式、高吞吐率和高傳輸率的特點(diǎn)。目前數(shù)據(jù)存儲(chǔ)技術(shù)主要有Google的GFS(GoogleFileSystem,非開源)以及HDFS(HadoopDistributedFileSystem,開源),這兩種技術(shù)已經(jīng)成為事實(shí)標(biāo)準(zhǔn)。,3數(shù)據(jù)管理技術(shù)云計(jì)算的特點(diǎn)是對海量的數(shù)據(jù)存儲(chǔ)、讀取后進(jìn)行大量的分析,如何提高數(shù)據(jù)的更新速率以及進(jìn)一步提高隨機(jī)讀速率是未來數(shù)據(jù)管理技術(shù)必須解決的問題。云計(jì)算的數(shù)據(jù)管理技術(shù)最著名的是谷歌的BigTable數(shù)據(jù)管理技術(shù),同時(shí)Hadoop開發(fā)團(tuán)隊(duì)已開發(fā)出類似BigTable的開源數(shù)據(jù)管理模塊。,4分布式編程與計(jì)算為了使用戶能更輕松的享受云計(jì)算帶來的服務(wù),讓用戶能利用該編程模型編寫簡單的程序來實(shí)現(xiàn)特定的目的,云計(jì)算上的編程模型必須十分簡單。必須保證后臺復(fù)雜的并行執(zhí)行和任務(wù)調(diào)度向用戶和編程人員透明。當(dāng)前各IT廠商提出的“云”計(jì)劃的編程工具均基于Map-Reduce的編程模型。,10.3典型云計(jì)算系統(tǒng)簡介,10.3.1Amazon云計(jì)算基礎(chǔ)架構(gòu)平臺目前,最受歡迎的云計(jì)算平臺是AmazonWebServices(AWS),在云上最受歡迎的數(shù)據(jù)庫是MySQL。盡管Amazon在2002年就已經(jīng)開始著手AWS,并從那時(shí)已使許多新的計(jì)算服務(wù),包括基礎(chǔ)架構(gòu)、電子商務(wù)和Web信息服務(wù)變得可用,然而我們希望繼續(xù)集中部署這些與MySQL最相關(guān)的內(nèi)容,如ElasticComputingCloud(EC2,彈性計(jì)算云),SimpleStorageService(S3,簡便存儲(chǔ)服務(wù))和ElasticBlockStore(EBS,持久存儲(chǔ))。針對這些服務(wù),開發(fā)人員可以使用Web服務(wù)、具體的REST和SOAP協(xié)議訪問。,AmazonEC2和MySQL,對于一個(gè)想減少資金花費(fèi)和運(yùn)營成本,同時(shí)以最小的成本和投入來動(dòng)態(tài)擴(kuò)展其應(yīng)用的機(jī)構(gòu)來說,是相當(dāng)適合的。亞馬遜AmazonEC2上訂閱一個(gè)MySQLEnterprise,開發(fā)人員充分依托MySQL數(shù)據(jù)庫專家,可以在云上更具成本效益地交付Web-scale數(shù)據(jù)庫應(yīng)用。,1Amazon彈性計(jì)算云(EC2)AmazonEC2服務(wù)開始于2006年,在2008年變得普遍廣泛可用。EC2使得亞馬遜云能夠動(dòng)態(tài)擴(kuò)展計(jì)算能力。它使開發(fā)人員更容易交付Web-scale應(yīng)用。亞馬遜云計(jì)算能夠忽略硬件,取而代之的是當(dāng)需求增加時(shí),可以使用(或不使用)額外的虛擬硬件。支撐EC2服務(wù)的是Xen虛擬技術(shù)。Xen是開源軟件,它允許操作系統(tǒng)(如Linux、Windows或者Solaris)作為“虛擬機(jī)器”,并同時(shí)運(yùn)行在相同的硬件上。使用Xen時(shí),EC2可以快速提供客戶虛擬服務(wù)器的規(guī)格說明書,定制硬件特性,如CPU數(shù)、內(nèi)存和軟件容錯(cuò)。,2Amazon簡單存儲(chǔ)服務(wù)(S3)Amazon也發(fā)行了S3,它可提供在線存儲(chǔ)Web服務(wù)。S3給開發(fā)人員提供一個(gè)簡單、安全、本質(zhì)上擁有無限能力的連續(xù)在線存儲(chǔ)。S3可以被看成在“云”上的一個(gè)很大的磁盤驅(qū)動(dòng)或一個(gè)SAN。和帶寬的收費(fèi)模式一樣,Amazon對最終用戶按每GB存儲(chǔ)收費(fèi),并且當(dāng)存儲(chǔ)和檢索S3數(shù)據(jù)時(shí)要求收費(fèi)。用S3可以存儲(chǔ)和獲得Amazon認(rèn)為是對象的無組織的數(shù)據(jù)。亞馬遜存儲(chǔ)如圖10.5所示。,圖10.5亞馬遜存儲(chǔ),這些對象可以是擁有2KB相關(guān)元數(shù)據(jù),而這些對象又可以存放在1B到5GB范圍內(nèi)的任何地方。S3里沒有目錄或文件名,對象存儲(chǔ)在“Buckets”當(dāng)中,并由開發(fā)人員通過預(yù)設(shè)的唯一鍵進(jìn)行檢索。Buckets和其內(nèi)部包含的對象存儲(chǔ)在兩個(gè)不同的物理區(qū)域中,但是它們可以從任何地方訪問。使用一個(gè)REST和SOAP接口,開發(fā)人員可以創(chuàng)建、列出和檢索Buckets和對象,同時(shí)可以通過GET接口或者BitTorrent協(xié)議下載亞馬遜WebMySQL。,3Amazon持久存儲(chǔ)(EBS)EBS在2008年開始運(yùn)營時(shí),是AmazonEC2最令人期待的特性之一。在EBS之前,EC2存儲(chǔ)是和本地實(shí)例聯(lián)系在一起的,這就意味著如果EC2實(shí)例被破壞,本地實(shí)例上存儲(chǔ)的數(shù)據(jù)就變得不可用了。為了解決該問題,Amazon創(chuàng)建了EBS,提供塊級水平存儲(chǔ)容量,其可以不考慮EC2實(shí)例的狀態(tài)。對于開發(fā)人員,EBSVolume的出現(xiàn)作為標(biāo)準(zhǔn)的塊機(jī)制,其大小從1GB變化到1TB。指定機(jī)制名稱和塊機(jī)制接口以后,用戶可以配置一個(gè)他們選擇的EBSVolume的文件系統(tǒng)。,1)在AmazonEC2上部署MySQL在EC2上開始MySQL是很簡單的,亞馬遜WebMySQL如圖10.6所示。首先,假定已經(jīng)設(shè)置了Amazon賬號,可以從AmazonAMI目錄使用一個(gè)已存在的AMI預(yù)設(shè)置MySQL,或者使用自己的AmazonSDK創(chuàng)建。用戶還可以從其他的資源獲得可用的“模板化”AMI圖形。其次,一旦做了任何配置,為了再次使用和安全保存,應(yīng)該上傳用戶的AMI到S3。最后,選擇想部署的EC2實(shí)例,配置安全和網(wǎng)絡(luò)控制。,圖10.6亞馬遜WebMySQL,2)亞馬遜WebServer亞馬遜WebServer如圖10.7所示。用于AmazonEC2上的MySQLEnterprise是基于支持而提供的訂閱,使得開發(fā)人員可以低成本地在云上交付Web擴(kuò)展數(shù)據(jù)庫應(yīng)用,在云上使用世界上最受歡迎的開源數(shù)據(jù)庫。在AmazonEC2上使用MySQLEnterprise的好處包括:可利用MySQL的可靠性、高性能和易用性,可在云上交付大量的可擴(kuò)展的Web應(yīng)用;使用MySQLReplication進(jìn)行主從數(shù)據(jù)庫復(fù)制、切換和備份,實(shí)現(xiàn)高可用性應(yīng)用。,圖10.7亞馬遜WebServer,10.3.2Google云計(jì)算應(yīng)用平臺Google的云計(jì)算技術(shù)實(shí)際上是針對Google特定的網(wǎng)絡(luò)應(yīng)用程序而定制的。針對內(nèi)部網(wǎng)絡(luò)數(shù)據(jù)規(guī)模超大的特點(diǎn),Google提出了一整套基于分布式并行集群方式的基礎(chǔ)架構(gòu),利用軟件的能力來處理集群中經(jīng)常發(fā)生的節(jié)點(diǎn)失效問題。,從2003年開始,Google連續(xù)幾年在計(jì)算機(jī)系統(tǒng)研究領(lǐng)域的頂級會(huì)議與雜志上發(fā)表論文,揭示了其內(nèi)部的分布式數(shù)據(jù)處理方法,向外界展示其使用的云計(jì)算核心技術(shù)。從其近幾年發(fā)表的論文來看,Google使用的云計(jì)算基礎(chǔ)架構(gòu)模式包括四個(gè)相互獨(dú)立又緊密結(jié)合在一起的系統(tǒng),即建立在集群之上的Google文件系統(tǒng)(GoogleFileSystem,GFS),針對Google應(yīng)用程序的特點(diǎn)提出的Map/Reduce分布式編程環(huán)境,分布式的鎖機(jī)制Chubby以及Google開發(fā)的模型簡化的大規(guī)模分布式數(shù)據(jù)庫管理系統(tǒng)BigTable。,1Google文件系統(tǒng)為了滿足Google迅速增長的數(shù)據(jù)處理需求,Google設(shè)計(jì)并實(shí)現(xiàn)了Google文件系統(tǒng)(GFS)。GFS與過去的分布式文件系統(tǒng)擁有許多相同的目標(biāo),例如高性能、可伸縮性、可靠性以及可用性。然而,它的設(shè)計(jì)還受到Google應(yīng)用負(fù)載和技術(shù)環(huán)境的影響,主要體現(xiàn)在以下四個(gè)方面:(1)集群中的節(jié)點(diǎn)失效是一種常態(tài),而不是一種異常。由于參與運(yùn)算與處理的節(jié)點(diǎn)數(shù)目非常龐大,通常會(huì)使用上千個(gè)節(jié)點(diǎn)進(jìn)行共同計(jì)算,因此,每時(shí)每刻總會(huì)有節(jié)點(diǎn)處在失效狀態(tài)。需要通過軟件程序模塊,監(jiān)視系統(tǒng)的動(dòng)態(tài)運(yùn)行狀況,偵測錯(cuò)誤,并且將容錯(cuò)以及自動(dòng)恢復(fù)系統(tǒng)集成在系統(tǒng)中。,(2)Google系統(tǒng)中的文件大小與通常文件系統(tǒng)中的文件大小的概念不一樣,文件大小通常以GB計(jì)。另外,文件系統(tǒng)中的文件含義與通常文件的不同,一個(gè)大文件可能包含大量數(shù)目的通常意義上的小文件。所以,設(shè)計(jì)預(yù)期和參數(shù)(例如I/O操作和塊尺寸)都要重新考慮。(3)Google文件系統(tǒng)中的文件讀寫模式和傳統(tǒng)的文件系統(tǒng)不同。在Google應(yīng)用(如搜索)中對大部分文件的修改,不是覆蓋原有數(shù)據(jù),而是在文件尾追加新數(shù)據(jù),對文件的隨機(jī)寫是幾乎不存在的。對于這類巨大文件的訪問模式,客戶端對數(shù)據(jù)塊緩存失去了意義,追加操作成為性能優(yōu)化和原子性(把一個(gè)事務(wù)看做是一個(gè)程序,它要么被完整地執(zhí)行,要么完全不執(zhí)行)保證的焦點(diǎn)。,(4)文件系統(tǒng)的某些具體操作不再透明,而且需要應(yīng)用程序的協(xié)助完成,應(yīng)用程序和文件系統(tǒng)API的協(xié)同設(shè)計(jì)提高了整個(gè)系統(tǒng)的靈活性。例如,放松了對GFS一致性模型的要求,這樣不用加重應(yīng)用程序的負(fù)擔(dān),就大大簡化了文件系統(tǒng)的設(shè)計(jì)。GFS還引入了原子性的追加操作,這樣多個(gè)客戶端同時(shí)進(jìn)行追加的時(shí)候,就不需要額外的同步操作了。總之,GFS是為Google應(yīng)用程序本身而設(shè)計(jì)的。,GoogleFileSystem的系統(tǒng)架構(gòu)如圖10.8所示,一個(gè)GFS集群包含一個(gè)主服務(wù)器和多個(gè)塊服務(wù)器,被多個(gè)客戶端訪問。文件被分割成固定尺寸的塊。在每個(gè)塊創(chuàng)建的時(shí)候,服務(wù)器分配給它一個(gè)不變的、全球唯一的64位塊句柄對它進(jìn)行標(biāo)識。塊服務(wù)器把塊作為Linux文件保存在本地硬盤上,并根據(jù)指定的塊句柄和字節(jié)范圍來讀寫塊數(shù)據(jù)。為了保證可靠性,每個(gè)塊都會(huì)復(fù)制到多個(gè)塊服務(wù)器上,缺省保存三個(gè)備份。主服務(wù)器管理文件系統(tǒng)所有的元數(shù)據(jù),包括名字空間、訪問控制信息和文件到塊的映射信息,以及塊當(dāng)前所在的位置。,GFS客戶端代碼被嵌入到每個(gè)程序里,它實(shí)現(xiàn)了Google文件系統(tǒng)API,幫助應(yīng)用程序與主服務(wù)器和塊服務(wù)器通信,對數(shù)據(jù)進(jìn)行讀寫。客戶端跟主服務(wù)器交互進(jìn)行元數(shù)據(jù)操作,但是所有的數(shù)據(jù)操作的通信都是直接和塊服務(wù)器進(jìn)行的??蛻舳颂峁┑脑L問接口類似于POSIX接口,但有一定的修改,并不完全兼容POSIX標(biāo)準(zhǔn)。通過服務(wù)器端和客戶端的聯(lián)合設(shè)計(jì),GoogleFileSystem能夠針對它本身的應(yīng)用獲得最大的性能以及可用性效果。,2Map/Reduce分布式編程環(huán)境為了讓內(nèi)部非分布式系統(tǒng)方向背景的員工能夠有機(jī)會(huì)將應(yīng)用程序建立在大規(guī)模的集群基礎(chǔ)之上,Google還設(shè)計(jì)并實(shí)現(xiàn)了一套大規(guī)模數(shù)據(jù)處理的編程規(guī)范Map/Reduce系統(tǒng)。這樣,非分布式專業(yè)的程序編寫人員也能夠?yàn)榇笠?guī)模的集群編寫應(yīng)用程序而不用去顧慮集群的可靠性、可擴(kuò)展性等問題。應(yīng)用程序編寫人員只需要將精力放在應(yīng)用程序本身,而關(guān)于集群的處理問題則交由平臺來處理。,Map/Reduce通過“Map(映射)”和“Reduce(化簡)”這樣兩個(gè)簡單的概念來參加運(yùn)算,用戶只需要提供自己的Map函數(shù)以及Reduce函數(shù)就可以在集群上進(jìn)行大規(guī)模的分布式數(shù)據(jù)處理。Google的文本索引方法,即搜索引擎的核心部分,已經(jīng)通過Map/Reduce的方法進(jìn)行了改寫,獲得了更加清晰的程序架構(gòu)。在Google內(nèi)部,每天有上千個(gè)Map/Reduce的應(yīng)用程序在運(yùn)行。,3大規(guī)模分布式數(shù)據(jù)庫管理系統(tǒng)BigTable構(gòu)建于上述兩項(xiàng)基礎(chǔ)之上的第三個(gè)云計(jì)算平臺就是Google將數(shù)據(jù)庫系統(tǒng)擴(kuò)展到分布式平臺上的BigTable系統(tǒng)。很多應(yīng)用程序?qū)τ跀?shù)據(jù)的組織都是非常有規(guī)則的,一般來說,數(shù)據(jù)庫對格式化數(shù)據(jù)的處理也是非常方便的,但是由于關(guān)系數(shù)據(jù)庫很強(qiáng)的一致性要求,很難將其擴(kuò)展到很大的規(guī)模。為了處理Google內(nèi)部大量的格式化以及半格式化數(shù)據(jù),Google構(gòu)建了弱一致性要求的大規(guī)模數(shù)據(jù)庫系統(tǒng)BigTable。,圖10.9給出了在BigTable模型中的數(shù)據(jù)模型。數(shù)據(jù)模型包括行列以及相應(yīng)的時(shí)間戳,所有的數(shù)據(jù)都存放在表格中的單元里。BigTable的內(nèi)容按照行來劃分,將多個(gè)行組成一個(gè)小表,保存到某一個(gè)服務(wù)器節(jié)點(diǎn)中。這一個(gè)小表就被稱為Tablet。以上是Google內(nèi)部云計(jì)算基礎(chǔ)平臺的三個(gè)主要部分,除了這三個(gè)部分之外,Google還建立了分布式的鎖服務(wù)等一系列相關(guān)的云計(jì)算服務(wù)平臺。,圖10.9GoogleBigTable的數(shù)據(jù)模型,4Google的云應(yīng)用除了上述的云計(jì)算基礎(chǔ)設(shè)施之外,Google還在其云計(jì)算基礎(chǔ)設(shè)施之上建立了一系列新型網(wǎng)絡(luò)應(yīng)用程序。由于借鑒了異步網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)腤eb2.0技術(shù),這些應(yīng)用程序給予用戶全新的界面感受以及更加強(qiáng)大的多用戶交互能力。其中典型的Google云計(jì)算應(yīng)用程序就是Google推出的Docs網(wǎng)絡(luò)服務(wù)程序。,GoogleDocs是一個(gè)基于Web的工具,它有跟MicrosoftOffice相近的編輯界面,有一套簡單易用的文檔權(quán)限管理,并能記錄下所有用戶對文檔所做的修改。GoogleDocs的這些功能非常適用于網(wǎng)上共享與協(xié)作編輯文檔。GoogleDocs甚至可以用于監(jiān)控責(zé)任清晰、目標(biāo)明確的項(xiàng)目進(jìn)度。當(dāng)前,GoogleDocs已經(jīng)推出了文檔編輯、電子表格、幻燈片演示、日程管理等多個(gè)功能的編輯模塊,能夠替代MicrosoftOffice相應(yīng)的一部分功能。值得注意的是,通過這種云計(jì)算方式形成的應(yīng)用程序非常適合于多個(gè)用戶進(jìn)行共享以及協(xié)同編輯,為一個(gè)小組的人員進(jìn)行共同創(chuàng)作帶來很大的方便性。,雖然Google可以說是云計(jì)算的最大實(shí)踐者,但是,Google的云計(jì)算平臺是私有的環(huán)境,特別是Google的云計(jì)算基礎(chǔ)設(shè)施還沒有開放。除了開放有限的應(yīng)用程序接口,例如GWT(GoogleWebToolkit)以及GoogleMapAPI等,Google并沒有將云計(jì)算的內(nèi)部基礎(chǔ)設(shè)施共享給外部的用戶使用,上述的所有基礎(chǔ)設(shè)施都是私有的。,幸運(yùn)的是,Google公開了其內(nèi)部集群計(jì)算環(huán)境的一部分技術(shù),使得全球的技術(shù)開發(fā)人員能夠根據(jù)這一部分文檔構(gòu)建開源的大規(guī)模數(shù)據(jù)處理云計(jì)算基礎(chǔ)設(shè)施,其中最有名的項(xiàng)目即Apache旗下的Hadoop項(xiàng)目。而IBM的藍(lán)云計(jì)算和亞馬遜的彈性計(jì)算云的實(shí)現(xiàn)則為外部的開發(fā)人員以及中小公司提供了云計(jì)算的平臺環(huán)境,使得開發(fā)者能夠在云計(jì)算的基礎(chǔ)設(shè)施之上構(gòu)建自己的新型網(wǎng)絡(luò)應(yīng)用。IBM的藍(lán)云計(jì)算平臺是可供銷售的計(jì)算平臺,用戶可以基于這些軟硬件產(chǎn)品自己構(gòu)建云計(jì)算平臺。亞馬遜的彈性計(jì)算云則是托管式的云計(jì)算平臺,用戶可以通過遠(yuǎn)端的操作界面直接使用。,10.3.3Microsoft云計(jì)算服務(wù)對微軟來說,進(jìn)入云計(jì)算的領(lǐng)域不是最早的,但是微軟不乏后發(fā)制人的先例。在三大類云計(jì)算服務(wù)(IaaS、PaaS和SaaS)上,微軟推出了WindowsServerPlatform,同時(shí)也推出了WindowsAzurePlatform解決方案。本節(jié)介紹微軟的WindowsAzurePlatform解決方案的核心技術(shù)。,WindowsAzurePlatform運(yùn)行在微軟數(shù)據(jù)中心的服務(wù)器和網(wǎng)絡(luò)基礎(chǔ)設(shè)施上,通過公共互聯(lián)網(wǎng)對外提供服務(wù)。微軟對云計(jì)算提出一個(gè)公式:云計(jì)算=(數(shù)據(jù)軟件+平臺+基礎(chǔ)設(shè)施)服務(wù)此公式表明了云最重要的是服務(wù)。基于云計(jì)算服務(wù)的三種模式,微軟云計(jì)算采用了“軟件+服務(wù)”,“云+端”的策略。WindowsAzurePlatform正是這一策略的具體實(shí)現(xiàn),它一方面提供了可靠的軟件平臺;另一方面通過提供服務(wù)或者開放的系統(tǒng)運(yùn)營企業(yè)服務(wù)。,1WindowsAzurePlatform的功能WindowsAzurePlatform包括WindowsAzure、SQLAzure、WindowsAzureAppFabric(或WindowsAzurePlatformAppFabric,以下簡稱AppFabric,有的書中把WindowsServerAppFabric也簡稱為AppFabric,除非特別說明,本書中的AppFabric都是指WindowsAzureAppFabric)。WindowsAzure可看成是云計(jì)算服務(wù)的操作系統(tǒng);SQLAzure可看成是云端的關(guān)系型數(shù)據(jù)庫;AppFabric是一個(gè)基于Web的開放服務(wù),可以把現(xiàn)有應(yīng)用和服務(wù)與云平臺的連接和互操作變得更為簡單,如圖10.10所示。,圖10.10WindowsAzurePlatform的組成,1)WindowsAzureWindowsAzure是一個(gè)云服務(wù)的操作系統(tǒng),它提供了一個(gè)可擴(kuò)展的開發(fā)、托管服務(wù)和服務(wù)管理環(huán)境。WindowsAzure主要包括三個(gè)部分:一是運(yùn)營應(yīng)用的計(jì)算服務(wù);二是數(shù)據(jù)存儲(chǔ)服務(wù);三是基于云平臺進(jìn)行管理和動(dòng)態(tài)分配資源的控制器(FabricController)。,WindowsAzure提供了一個(gè)可擴(kuò)展的開發(fā)、托管服務(wù)和服務(wù)管理環(huán)境,這其中包括提供基于虛擬機(jī)的計(jì)算服務(wù)和基于Blobs、Tables、Queues、Drives等的存儲(chǔ)服務(wù)。WindowsAzure是一個(gè)開放的平臺,支持微軟和非微軟的語言和環(huán)境。開發(fā)人員在構(gòu)建WindowsAzure應(yīng)用程序和服務(wù)時(shí),不僅可以使用熟悉的MicrosoftVisualStudio、Eclipse等開發(fā)工具,同時(shí)WindowsAzure還支持各種流行的標(biāo)準(zhǔn)與協(xié)議,包括SOAP、REST、XML和HTTPS等。,2)SQLAzureSQLAzure幫助用戶簡化多數(shù)據(jù)庫的創(chuàng)建和部署,開發(fā)人員無需安裝、設(shè)置數(shù)據(jù)庫軟件,也不必為數(shù)據(jù)庫打補(bǔ)丁或進(jìn)行管理;為用戶提供了內(nèi)置的高可用性和容錯(cuò)能力,且無需客戶進(jìn)行實(shí)際管理;支持TDS和Transact-SQL(T-SQL),客戶可以使用現(xiàn)有技術(shù)在T-SQL上進(jìn)行開發(fā),還可使用與現(xiàn)有的客戶自有數(shù)據(jù)庫軟件相對應(yīng)的關(guān)系型數(shù)據(jù)模型。SQLAzure(之前被稱為SQLServerDataServices)是以SQLServer2008為主,建構(gòu)在WindowsAzure之上,運(yùn)行云計(jì)算的關(guān)系數(shù)據(jù)庫服務(wù),是一種云存儲(chǔ)的實(shí)現(xiàn),并提供網(wǎng)絡(luò)型的應(yīng)用程序數(shù)據(jù)存儲(chǔ)的服務(wù),簡單地說就是SQLServer的云端版本。,SQLAzure是一個(gè)云的關(guān)系型數(shù)據(jù)庫,它可以在任何時(shí)間提供客戶數(shù)據(jù)應(yīng)用。SQLAzure基于SQLServer技術(shù)構(gòu)建,但并非簡簡單單地將SQLServer安裝在微軟的數(shù)據(jù)中心,而是采用了更先進(jìn)的架構(gòu)設(shè)計(jì),由微軟基于云進(jìn)行托管,提供的是可擴(kuò)展、多租戶、高可用的數(shù)據(jù)庫服務(wù)。SQLAzure在架構(gòu)上分成四個(gè)層次,即ClientLayer、ServicesLayer、PlatformLayer和InfrastructureLayer,如圖10.11所示。,圖10.11SQLAzure的架構(gòu),3)AppFabricAppFabric作為中間件層,起著連接非云端程序與云端程序的橋梁的作用,它讓開發(fā)人員可以把精力放在他們的應(yīng)用邏輯上而不是在部署和管理云服務(wù)的基礎(chǔ)架構(gòu)上。AppFabric是基于Web的開放服務(wù),它可以把現(xiàn)有應(yīng)用和服務(wù)與云平臺的連接和互操作變得更為簡單,為本地應(yīng)用和云中應(yīng)用提供了分布式的基礎(chǔ)架構(gòu)服務(wù)。在云計(jì)算中存儲(chǔ)數(shù)據(jù)與運(yùn)行應(yīng)用都很重要,但是我們還需要一個(gè)基于云的基礎(chǔ)架構(gòu)服務(wù)。這個(gè)基礎(chǔ)架構(gòu)服務(wù)應(yīng)該既可以被客戶自有軟件應(yīng)用,又能被云服務(wù)應(yīng)用,AppFabric就是這樣一個(gè)基礎(chǔ)架構(gòu)服務(wù)。,需要說明的是,WindowsServerAppFabric和WindowsAzureAppFabric是不同的,它們之間的關(guān)系類似于SQLServer和SQLAzure之間的關(guān)系,即帶“Server”的是服務(wù)器產(chǎn)品,帶Azure的是云端產(chǎn)品,我們甚至可以把WindowsAzureAppFabric理解為一款主要面向私有云計(jì)算的系統(tǒng)。,WindowsAzure提供了一個(gè)叫做Role的概念,每個(gè)Role可以被認(rèn)為是一段程序,與普通的應(yīng)用程序不同的是這段程序可以同時(shí)在一臺或者多臺機(jī)器上運(yùn)行。每個(gè)Role可以有多個(gè)實(shí)例(Instance),每個(gè)實(shí)例對應(yīng)一臺虛擬機(jī)。對同一個(gè)Role而言,它所有的實(shí)例執(zhí)行的程序都是相同的。現(xiàn)在有兩種類型的Role:WorkerRole(工作者角色)和WebRole(Web角色)。WebRole:是一個(gè)Web應(yīng)用程序,它可以通過HTTP或HTTPS與外界通信。一般來說,Web角色響應(yīng)請求,執(zhí)行一個(gè)動(dòng)作,然后等待下一個(gè)請求的到來。,WorkerRole:是一種后臺執(zhí)行(RunningonBackground)的應(yīng)用程序,運(yùn)行.Net框架代碼的后臺進(jìn)程應(yīng)用程序。AppFabric最常用的一個(gè)場景是:WebRole和WorkerRole之間的通信。不僅如此,AppFabric最強(qiáng)大的地方在于能夠跨平臺。,2微軟云計(jì)算參考架構(gòu)從圖10.12所示的微軟云計(jì)算的參考架構(gòu)可以看到WindowsAzurePlatform是一個(gè)PaaS類和IaaS類的平臺。因?yàn)閃indowsAzure提供了存儲(chǔ)、管理功能,SQLAzure提供了關(guān)系型數(shù)據(jù)的存儲(chǔ),而WindowsAzureAppFabric則是連接了WindowsAzure和SQLAzure的中間件,將安全連接作為一項(xiàng)服務(wù)提供,幫助開發(fā)人員在云部署、內(nèi)部部署和托管部署之間架起橋梁,這座橋梁提供了兩種服務(wù):ServiceBus(服務(wù)總線)和AccessControl(訪問控制),所以WindowsAzurePlatform是一個(gè)PaaS類和IaaS類的平臺。,圖10.12微軟云計(jì)算的參考架構(gòu),WindowsAzurePlatform的基礎(chǔ)是虛擬化,虛擬化架起了硬件資源(主機(jī)、存儲(chǔ)、網(wǎng)絡(luò)、其他硬件)和基礎(chǔ)服務(wù)之間的橋梁。PaaS通過基礎(chǔ)服務(wù)和虛擬化來使用資源層的資源。虛擬化對用戶來說是透明的,同時(shí)虛擬化也是動(dòng)態(tài)數(shù)據(jù)中心的基礎(chǔ)核心層??梢哉f,沒有虛擬化技術(shù),想要實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)中心幾乎是不可能的,但是虛擬化不是云計(jì)算。,10.3.4IBM藍(lán)云計(jì)算平臺IBM在2007年11月15日推出了藍(lán)云計(jì)算平臺,為客戶帶來即買即用的云計(jì)算平臺。它包括一系列的云計(jì)算產(chǎn)品,使得計(jì)算不僅僅局限在本地機(jī)器或遠(yuǎn)程服務(wù)器農(nóng)場(即服務(wù)器集群),通過架構(gòu)一個(gè)分布式、可全球訪問的資源結(jié)構(gòu),使得數(shù)據(jù)中心在類似于互聯(lián)網(wǎng)的環(huán)境下運(yùn)行計(jì)算。,“藍(lán)云”建立在IBM大規(guī)模計(jì)算領(lǐng)域的專業(yè)技術(shù)基礎(chǔ)上
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 花圃養(yǎng)護(hù)及管理制度
- 茶企業(yè)設(shè)備管理制度
- 藥品室安全管理制度
- 大學(xué)生就業(yè)與創(chuàng)業(yè)教育-第十四單元抓住機(jī)遇-離成功更近一步
- 財(cái)務(wù)會(huì)計(jì)與長期股權(quán)投資管理知識分析
- 財(cái)經(jīng)基本技能(第3版)教學(xué)指南+課后習(xí)題答案
- 財(cái)務(wù)基礎(chǔ)會(huì)計(jì)學(xué)知識(一)
- 2025年春季學(xué)期國家開放大學(xué)《毛澤東思想和中國特色社會(huì)主義理論體系概論》終考任務(wù)二:大作業(yè)試卷1參考作答
- 幼兒小班我愛中國教案設(shè)計(jì)意圖
- 大班各領(lǐng)域目標(biāo)解讀與教學(xué)實(shí)踐研究
- 九師聯(lián)盟2024-2025學(xué)年高二下學(xué)期6月摸底聯(lián)考語文試題(含答案)
- 非遺文化掐絲琺瑯景泰藍(lán)
- 電動(dòng)葫蘆考試題及答案
- 2025廣東省勞動(dòng)合同樣本
- 2025餐飲兼職合同樣本
- 2025年甘肅電投集團(tuán)公司招聘筆試參考題庫含答案解析
- 國家開放大學(xué)《Web開發(fā)基礎(chǔ)》形考任務(wù)實(shí)驗(yàn)1-5參考答案
- 中外美術(shù)評析與欣賞智慧樹知到期末考試答案章節(jié)答案2024年湖南大學(xué)
- 固體火箭發(fā)動(dòng)機(jī)制造工藝
- 脈沖震蕩檢測原理及意義
- 預(yù)應(yīng)力錨索專項(xiàng)施工方案
評論
0/150
提交評論