物聯(lián)網(wǎng)技術(shù)與應(yīng)用開發(fā)_第1頁
物聯(lián)網(wǎng)技術(shù)與應(yīng)用開發(fā)_第2頁
物聯(lián)網(wǎng)技術(shù)與應(yīng)用開發(fā)_第3頁
物聯(lián)網(wǎng)技術(shù)與應(yīng)用開發(fā)_第4頁
物聯(lián)網(wǎng)技術(shù)與應(yīng)用開發(fā)_第5頁
已閱讀5頁,還剩175頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

物聯(lián)網(wǎng)技術(shù)與應(yīng)用開發(fā)第1頁/共180頁10.1云?計(jì)?算?概?述

當(dāng)今社會(huì),PC依然是日常工作生活中的核心工具—我們用PC處理文檔、存儲(chǔ)資料,通過電子郵件或U盤與他人分享信息。如果PC硬盤壞了,我們會(huì)因?yàn)橘Y料丟失而束手無策。而在“云計(jì)算”時(shí)代,“云”會(huì)替我們做存儲(chǔ)和計(jì)算的工作?!霸啤本褪怯?jì)算機(jī)群,每一群包括了幾十萬臺(tái)、甚至上百萬臺(tái)計(jì)算機(jī)。“云”的好處還在于,其中的計(jì)算機(jī)可以隨時(shí)更新,保證“云”長生不老。第2頁/共180頁大約在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)。第3頁/共180頁在云計(jì)算市場(chǎng),Google的應(yīng)用引擎(GoogleAppEngine)和微軟的LiveMesh為開發(fā)云計(jì)算應(yīng)用提供了截然不同的平臺(tái)。LiveMesh是微軟推出的基于云計(jì)算的數(shù)據(jù)同步和設(shè)備管理平臺(tái)。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è)備中以文件的形式保留一份文檔拷貝。第4頁/共180頁

Google的模式卻截然不同。在這種模式中,云計(jì)算是多計(jì)算機(jī)環(huán)境下的計(jì)算。用戶不需要維護(hù)任何磁盤,也不需要“文件”或者用來保存文件的文件系統(tǒng)這種人工概念。

Google的云計(jì)算還有其他優(yōu)勢(shì),Google免費(fèi)提供應(yīng)用程序。由于這些應(yīng)用程序存在于云計(jì)算環(huán)境中,所以用戶不需要安裝軟件,也不需要管理程序升級(jí)或者安全補(bǔ)丁。實(shí)際上,用戶完全擺脫了與操作系統(tǒng)之間的所有日常交互。當(dāng)然,服務(wù)器底層運(yùn)行著某種操作系統(tǒng),負(fù)責(zé)運(yùn)行Google的諸多應(yīng)用程序;還有某種有組織的存儲(chǔ)系統(tǒng)。但這些僅僅是技術(shù)細(xì)節(jié),不需要用戶操心。第5頁/共180頁雖然Google基于互聯(lián)網(wǎng)的應(yīng)用程序確實(shí)給人留下了深刻印象,但其中缺乏像微軟Office這類桌面軟件的高級(jí)功能。正由于如此,這種方式很難讓習(xí)慣于Office的忠實(shí)用戶改變立場(chǎng),轉(zhuǎn)身投向Google。另外,在云計(jì)算環(huán)境中,而不是在本地驅(qū)動(dòng)器上保存及管理文檔這種方式也可能讓企業(yè)客戶心生疑慮。比較而言,Google的云計(jì)算方案是革命性的,微軟的云計(jì)算方案卻是演進(jìn)性的。LiveMesh迎合的是現(xiàn)有用戶,這比較容易打動(dòng)人心。不過,Google的發(fā)展勢(shì)頭又是不可阻擋的。第6頁/共180頁10.1.1云計(jì)算的定義云計(jì)算(CloudComputing)是一種新提出的計(jì)算模式。維基百科給云計(jì)算下的定義為:云計(jì)算將IT相關(guān)的能力以服務(wù)的方式提供給用戶,允許用戶在不了解提供服務(wù)的技術(shù)、沒有相關(guān)知識(shí)以及設(shè)備操作能力的情況下,通過Internet獲取需要服務(wù)。中國云計(jì)算網(wǎng)將云計(jì)算定義為:云計(jì)算是分布式計(jì)算(DistributedComputing)、并行計(jì)算(ParallelComputing)和網(wǎng)格計(jì)算(GridComputing)的發(fā)展,或者說是這些科學(xué)概念的商業(yè)實(shí)現(xiàn)。

第7頁/共180頁

ForresterResearch的分析師JamesStaten將云計(jì)算定義為:云計(jì)算是一個(gè)具備高度擴(kuò)展性和管理性并能夠勝任終端用戶應(yīng)用軟件計(jì)算基礎(chǔ)架構(gòu)的系統(tǒng)池。第8頁/共180頁

1.狹義云計(jì)算狹義云計(jì)算是指IT基礎(chǔ)設(shè)施的交付和使用模式,即通過網(wǎng)絡(luò)以按需、易擴(kuò)展的方式獲得所需的資源(硬件、平臺(tái)、軟件)。提供資源的網(wǎng)絡(luò)被稱為“云”?!霸啤敝械馁Y源在使用者看來是可以無限擴(kuò)展的,并且可以隨時(shí)獲取,按需使用,隨時(shí)擴(kuò)展,按使用付費(fèi)。日常生活的供水、供電系統(tǒng)就具有這樣的特性,故狹義云計(jì)算也就意味著像使用水電一樣使用IT基礎(chǔ)設(shè)施。

第9頁/共180頁

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)新和降低成本。第10頁/共180頁有人打了個(gè)比方:這就好比是從古老的單臺(tái)發(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(平臺(tái)即服務(wù))、SaaS(軟件即服務(wù))等概念混合演進(jìn)并躍升的結(jié)果。第11頁/共180頁雖然目前云計(jì)算沒有統(tǒng)一的定義,但結(jié)合上述定義,可以總結(jié)出云計(jì)算的一些本質(zhì)特征,即分布式計(jì)算和存儲(chǔ)特性、高擴(kuò)展性、用戶友好性和良好的管理性。云計(jì)算具有以下特點(diǎn):

(1)超大規(guī)模?!霸啤本哂邢喈?dāng)?shù)囊?guī)模,Google云計(jì)算已經(jīng)擁有100多萬臺(tái)服務(wù)器,Amazon、IBM、Microsoft、Yahoo等的“云”均擁有幾十萬臺(tái)服務(wù)器。企業(yè)私有云一般擁有數(shù)百上千臺(tái)服務(wù)器。“云”能賦予用戶前所未有的計(jì)算能力。第12頁/共180頁

(2)虛擬化。云計(jì)算支持用戶在任意位置、使用各種終端獲取應(yīng)用服務(wù)。所請(qǐng)求的資源來自“云”,而不是固定的有形的實(shí)體。應(yīng)用在“云”中某處運(yùn)行,但實(shí)際上用戶無需了解、也不用擔(dān)心應(yīng)用運(yùn)行的具體位置。只需要一臺(tái)筆記本或者一部手機(jī),就可以通過網(wǎng)絡(luò)服務(wù)來實(shí)現(xiàn)我們需要的一切,甚至包括超級(jí)計(jì)算這樣的任務(wù)。

(3)高可靠性?!霸啤笔褂昧藬?shù)據(jù)多副本容錯(cuò)、計(jì)算節(jié)點(diǎn)同構(gòu)可互換等措施來保障服務(wù)的高可靠性,使用云計(jì)算比使用本地計(jì)算機(jī)可靠。第13頁/共180頁

(4)通用性。云計(jì)算不針對(duì)特定的應(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)。第14頁/共180頁

(7)極其廉價(jià)。由于“云”的特殊容錯(cuò)措施可以采用極其廉價(jià)的節(jié)點(diǎn)來構(gòu)成云,“云”的自動(dòng)化集中式管理使大量企業(yè)無需負(fù)擔(dān)日益高昂的數(shù)據(jù)中心管理成本,“云”的通用性使資源的利用率較之傳統(tǒng)系統(tǒng)大幅提升,用戶可以充分享受“云”的低成本優(yōu)勢(shì),經(jīng)常只要花費(fèi)幾百美元、幾天時(shí)間就能完成以前需要數(shù)萬美元、數(shù)月時(shí)間才能完成的任務(wù)。

第15頁/共180頁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ì)算的類型。第16頁/共180頁

1.按服務(wù)類型分類從服務(wù)類型方面可把云計(jì)算分為基礎(chǔ)設(shè)施云、平臺(tái)云和應(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)。第17頁/共180頁

(2)平臺(tái)云:亦稱平臺(tái)即服務(wù)(PlatformasaService),提供虛擬化服務(wù)器,用戶可以在虛擬化服務(wù)器上運(yùn)行現(xiàn)有的應(yīng)用程序,或者開發(fā)新的應(yīng)用程序,不必為維護(hù)操作系統(tǒng)、服務(wù)器硬件、負(fù)載均衡或計(jì)算容量而操心。平臺(tái)可為開發(fā)人員提供應(yīng)用程序的托管,一旦開發(fā)人員開發(fā)出滿足平臺(tái)運(yùn)行的應(yīng)用程序且成功部署后,運(yùn)行過程中的資源分配和其他的管理工作等將由平臺(tái)云自行管理。這方面最顯著的例子有微軟的Azure和Salesforce的F。第18頁/共180頁

(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。第19頁/共180頁

2.按服務(wù)方式分類從服務(wù)方式方面可把云計(jì)算分為公有云、私有云和混合云。

(1)公有云:就是有若干企業(yè)和若干客戶使用的形式。在公有云中,用戶使用的服務(wù)都是由第三方云服務(wù)提供商提供的,該提供商也為其他的客戶提供服務(wù),所有的用戶共享云服務(wù)提供商提供的所有資源。第20頁/共180頁

(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é)合的形式。第21頁/共180頁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)、探測(cè)、識(shí)別、定位、跟蹤和監(jiān)控等手段和設(shè)備向物理世界的延伸。對(duì)客觀世界的感應(yīng)、探測(cè)、監(jiān)控等,只是人類社會(huì)對(duì)物理世界實(shí)現(xiàn)“感、知、控”的第一個(gè)環(huán)節(jié),即為物聯(lián)網(wǎng)“前端”?;诨ヂ?lián)網(wǎng)計(jì)算的涌現(xiàn)智能以及對(duì)物理世界的反饋和控制是另外兩個(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)系。第22頁/共180頁

1.從“后端”看物聯(lián)網(wǎng)如前面所述,物聯(lián)網(wǎng)可以看做是互聯(lián)網(wǎng)通過傳感器網(wǎng)絡(luò)向物理世界的延伸,其最終目標(biāo)是實(shí)現(xiàn)對(duì)物理世界的智能化管理。在邏輯上,物聯(lián)網(wǎng)包括如圖10.1所示的三個(gè)層次,其中:

(1)物理世界感知是物聯(lián)網(wǎng)的基礎(chǔ),基于傳感技術(shù)和網(wǎng)絡(luò)通信技術(shù),實(shí)現(xiàn)對(duì)物理世界的探測(cè)、識(shí)別、定位、跟蹤和監(jiān)控,可以看做是物聯(lián)網(wǎng)的“前端”。第23頁/共180頁

(2)大量獨(dú)立建設(shè)的單一物聯(lián)網(wǎng)應(yīng)用是物聯(lián)網(wǎng)建設(shè)的起點(diǎn)與基本元素,該類應(yīng)用往往局限于對(duì)單一物品的感應(yīng)與智能管理,每個(gè)物聯(lián)網(wǎng)應(yīng)用都是物聯(lián)網(wǎng)上的一個(gè)邏輯節(jié)點(diǎn)。

(3)通過對(duì)眾多單一物聯(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)的“后端”。

第24頁/共180頁圖10.1物聯(lián)網(wǎng)的三個(gè)層次第25頁/共180頁從“后端”來看,物聯(lián)網(wǎng)可以看做是一個(gè)基于互聯(lián)網(wǎng)的,以提高物理世界的運(yùn)行、管理、資源使用效率等水平為目標(biāo)的大規(guī)模信息系統(tǒng)。由于物聯(lián)網(wǎng)“前端”在對(duì)物理世界感應(yīng)方面具有高度并發(fā)的特性,并將產(chǎn)生大量引發(fā)“后端”深度互聯(lián)和跨域協(xié)作需求的事件,從而使得上述大規(guī)模信息系統(tǒng)表現(xiàn)出以下性質(zhì):第26頁/共180頁

(1)不可預(yù)見性:對(duì)物理世界的感知具有實(shí)時(shí)性,會(huì)產(chǎn)生大量不可預(yù)見的事件,從而需要應(yīng)對(duì)大量即時(shí)協(xié)同的需求。

(2)涌現(xiàn)智能:對(duì)諸多單一物聯(lián)網(wǎng)應(yīng)用的集成能夠提升對(duì)物理世界綜合管理的水平,物聯(lián)網(wǎng)“后端”是產(chǎn)生放大效應(yīng)的源泉。

(3)多維度動(dòng)態(tài)變化:對(duì)物理世界的感知往往具有多個(gè)維度,并且是不斷動(dòng)態(tài)變化的,從而要求物聯(lián)網(wǎng)“后端”具有更高的適應(yīng)能力。

(4)大數(shù)據(jù)量、實(shí)效性:物聯(lián)網(wǎng)中涉及的傳感信息具有大數(shù)據(jù)量、實(shí)效性等特征,對(duì)物聯(lián)網(wǎng)“后端”的信息處理帶來諸多新的挑戰(zhàn)。第27頁/共180頁綜上所述,實(shí)時(shí)感應(yīng)、高度并發(fā)、自主協(xié)同和涌現(xiàn)效應(yīng)等特征要求從新的角度審視物聯(lián)網(wǎng)“后端”信息基礎(chǔ)設(shè)施,對(duì)當(dāng)前互聯(lián)網(wǎng)計(jì)算(包括云計(jì)算、服務(wù)計(jì)算、網(wǎng)格等)的研究提出了新的挑戰(zhàn),需要有針對(duì)性地研究物聯(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é)作問題。第28頁/共180頁

2.云與物聯(lián)網(wǎng)“后端”認(rèn)為“云”是支撐物聯(lián)網(wǎng)“后端”的認(rèn)識(shí)存在著誤區(qū)。云計(jì)算起源于互聯(lián)網(wǎng)公司對(duì)特定的大規(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)對(duì)物聯(lián)網(wǎng)“后端”的需求。

第29頁/共180頁當(dāng)前所謂的軟件即服務(wù)(SaaS)、平臺(tái)即服務(wù)(PaaS)和基礎(chǔ)設(shè)施即服務(wù)(IaaS)三個(gè)層次的劃分也只是對(duì)現(xiàn)有云計(jì)算的初級(jí)認(rèn)識(shí),并未全面體現(xiàn)云計(jì)算的內(nèi)涵、外延和發(fā)展?!霸啤钡陌l(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ù)、平臺(tái)和應(yīng)用等服務(wù),客戶無需關(guān)心服務(wù)是由什么“云”提供的。第30頁/共180頁在早期的客戶/服務(wù)器模式下,應(yīng)用服務(wù)器由各組織機(jī)構(gòu)自行運(yùn)營維護(hù),服務(wù)體現(xiàn)為緊耦合的對(duì)應(yīng)程序調(diào)用結(jié)果的消息。隨著以CORBA(CommonObjectRequestBrokerArchitecture,公用對(duì)象請(qǐng)求代理(調(diào)度)程序體系結(jié)構(gòu))、J2EE(Java2Platform,EnterpriseEdition)等分布式對(duì)象系統(tǒng)的發(fā)展,服務(wù)也升級(jí)為分布式平臺(tái)為客戶端提供價(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ù)。第31頁/共180頁未來,“云”提供的服務(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)識(shí)的互聯(lián)網(wǎng)信息處理基礎(chǔ)設(shè)施的發(fā)展,服務(wù)計(jì)算的重要性將更加凸顯。針對(duì)物聯(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ā)展。第32頁/共180頁人類基礎(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)上的信息具有多元、多源、多級(jí)過濾和分析、動(dòng)態(tài)變化、數(shù)據(jù)量巨大等特點(diǎn)。第33頁/共180頁10.2云計(jì)算系統(tǒng)的組成及其技術(shù)10.2.1云計(jì)算系統(tǒng)的組成云計(jì)算的體系結(jié)構(gòu)由五部分組成,分別為資源層、平臺(tái)層、應(yīng)用層、用戶訪問層和管理層,如圖10.2所示。云計(jì)算的本質(zhì)是通過網(wǎng)絡(luò)提供服務(wù),所以其體系結(jié)構(gòu)以服務(wù)為核心。第34頁/共180頁

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ǔ)能力。

第35頁/共180頁圖10.2云計(jì)算的體系結(jié)構(gòu)第36頁/共180頁

2.平臺(tái)層平臺(tái)層為用戶提供對(duì)資源層服務(wù)的封裝,使用戶可以構(gòu)建自己的應(yīng)用。平臺(tái)層包括數(shù)據(jù)庫服務(wù)和中間件服務(wù)。

(1)數(shù)據(jù)庫服務(wù)提供可擴(kuò)展的數(shù)據(jù)庫處理的能力。

(2)中間件服務(wù)為用戶提供可擴(kuò)展的消息中間件或事務(wù)處理中間件等服務(wù)。第37頁/共180頁

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ǔ)等。

第38頁/共180頁

4.用戶訪問層用戶訪問層是方便用戶使用云計(jì)算服務(wù)所需的各種支撐服務(wù),針對(duì)每個(gè)層次的云計(jì)算服務(wù)都需要提供相應(yīng)的訪問接口。它包括服務(wù)目錄、訂閱管理和服務(wù)訪問。

(1)服務(wù)目錄是一個(gè)服務(wù)列表,用戶可以從中選擇需要使用的云計(jì)算服務(wù)。

(2)訂閱管理是提供給用戶的管理功能,用戶可以查閱自己訂閱的服務(wù),或者終止訂閱的服務(wù)。

(3)服務(wù)訪問是針對(duì)每種層次的云計(jì)算服務(wù)提供的訪問接口。針對(duì)資源層的訪問可能是遠(yuǎn)程桌面或者XWindows;針對(duì)應(yīng)用層的訪問,提供的接口可能是Web。第39頁/共180頁

5.管理層管理層提供對(duì)所有層次云計(jì)算服務(wù)的管理功能,包括安全管理、服務(wù)組合、服務(wù)目錄管理、服務(wù)使用計(jì)量、服務(wù)質(zhì)量管理、部署管理和服務(wù)監(jiān)控。

(1)安全管理:提供對(duì)服務(wù)的授權(quán)控制、用戶認(rèn)證、審計(jì)、一致性檢查等功能。

(2)服務(wù)組合:提供對(duì)自己有云計(jì)算服務(wù)進(jìn)行組合的功能,使得新的服務(wù)可以基于已有服務(wù)創(chuàng)建時(shí)間。第40頁/共180頁

(3)服務(wù)目錄管理服務(wù):提供服務(wù)目錄和服務(wù)本身的管理功能,管理員可以增加新的服務(wù),或者從服務(wù)目錄中除去服務(wù)。

(4)服務(wù)使用計(jì)量:對(duì)用戶的使用情況進(jìn)行統(tǒng)計(jì),并以此為依據(jù)對(duì)用戶進(jìn)行計(jì)費(fèi)。

(5)服務(wù)質(zhì)量管理:提供對(duì)服務(wù)的性能、可靠性、可擴(kuò)展性進(jìn)行管理的功能。

(6)部署管理:提供對(duì)服務(wù)實(shí)例的自動(dòng)化部署和配置功能。當(dāng)用戶通過訂閱管理增加新的服務(wù)訂閱后,部署管理模塊自動(dòng)為用戶準(zhǔn)備服務(wù)實(shí)例。

(7)服務(wù)監(jiān)控:提供對(duì)服務(wù)的健康狀態(tài)的記錄功能。第41頁/共180頁10.2.2云計(jì)算系統(tǒng)的服務(wù)層次

1.云計(jì)算的服務(wù)層次在云計(jì)算中,根據(jù)其服務(wù)集合所提供的服務(wù)類型,整個(gè)云計(jì)算服務(wù)集合被劃分成應(yīng)用層、平臺(tái)層、基礎(chǔ)設(shè)施層和虛擬化層四個(gè)層次,每一層都對(duì)應(yīng)著一個(gè)子服務(wù)集合。云計(jì)算的服務(wù)層次如圖10.3所示。第42頁/共180頁圖10.3云計(jì)算的服務(wù)層次第43頁/共180頁云計(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)用戶的請(qǐng)求而不需要其他層次為其提供必要的服務(wù)和支持。在云計(jì)算服務(wù)體系結(jié)構(gòu)中,各層次與相關(guān)云產(chǎn)品對(duì)應(yīng)如下:第44頁/共180頁

(1)應(yīng)用層對(duì)應(yīng)SaaS(軟件即服務(wù)),如GoogleAPPS、SoftWare+Services。

(2)平臺(tái)層對(duì)應(yīng)PaaS(平臺(tái)即服務(wù)),如IBMITFactory、GoogleAPPEngine、F。

(3)基礎(chǔ)設(shè)施層對(duì)應(yīng)IaaS(基礎(chǔ)設(shè)施即服務(wù)),如AmazonEc2、IBMBlueCloud、SunGrid。

(4)虛擬化層對(duì)應(yīng)硬件即服務(wù)結(jié)合Paas提供硬件服務(wù),包括服務(wù)器集群及硬件檢測(cè)等服務(wù)。第45頁/共180頁

2.云計(jì)算的技術(shù)層次云計(jì)算的技術(shù)層次和云計(jì)算的服務(wù)層次不是一個(gè)概念,后者從服務(wù)的角度來劃分云的層次,主要突出了云服務(wù)能給我們帶來什么。而云計(jì)算的技術(shù)層次主要從系統(tǒng)屬性和設(shè)計(jì)思想角度來說明云,是對(duì)軟、硬件資源在云計(jì)算技術(shù)中所充當(dāng)角色的說明。從云計(jì)算技術(shù)角度來分,云計(jì)算大約由服務(wù)接口、服務(wù)管理中間件、虛擬化資源、物理資源四部分構(gòu)成,如圖10.4所示。

第46頁/共180頁圖10.4云計(jì)算技術(shù)結(jié)構(gòu)第47頁/共180頁

(1)服務(wù)接口:統(tǒng)一規(guī)定了在云計(jì)算時(shí)代使用計(jì)算機(jī)的各種規(guī)范、云計(jì)算服務(wù)的各種標(biāo)準(zhǔn)等,用戶端與云端交互操作的入口,可完成用戶或服務(wù)注冊(cè),對(duì)服務(wù)進(jìn)行定制和使用等。第48頁/共180頁

(2)服務(wù)管理中間件:在云計(jì)算技術(shù)中,中間件位于服務(wù)和服務(wù)器集群之間,提供管理和服務(wù)即云計(jì)算體系結(jié)構(gòu)中的管理系統(tǒng)。對(duì)標(biāo)識(shí)、認(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)控、故障檢測(cè)等;安全管理包括身份驗(yàn)證、訪問授權(quán)、安全審計(jì)、綜合防護(hù)等;映像管理包括映像創(chuàng)建、部署、管理等。第49頁/共180頁

(3)虛擬化資源:指一些可以實(shí)現(xiàn)一定操作、具有一定功能,但其本身是虛擬而不是真實(shí)的資源,如計(jì)算池、存儲(chǔ)池和網(wǎng)絡(luò)池、數(shù)據(jù)庫資源等,通過軟件技術(shù)來實(shí)現(xiàn)相關(guān)的虛擬化功能,如虛擬環(huán)境、虛擬系統(tǒng)、虛擬平臺(tái)。第50頁/共180頁

(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è)備等。

第51頁/共180頁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è)方面。第52頁/共180頁

1.虛擬機(jī)技術(shù)虛擬機(jī)即服務(wù)器虛擬化,是云計(jì)算底層架構(gòu)的重要基石。在服務(wù)器虛擬化中,虛擬化軟件需要實(shí)現(xiàn)對(duì)硬件的抽象,資源的分配、調(diào)度和管理,虛擬機(jī)與宿主操作系統(tǒng)及多個(gè)虛擬機(jī)間的隔離等功能,目前典型的實(shí)現(xiàn)(基本成為事實(shí)標(biāo)準(zhǔn))有CitrixXen、VMwareESXServer和MicrosoftHype-V等。第53頁/共180頁

2.?dāng)?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)。第54頁/共180頁

3.?dāng)?shù)據(jù)管理技術(shù)云計(jì)算的特點(diǎn)是對(duì)海量的數(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ù)管理模塊。第55頁/共180頁

4.分布式編程與計(jì)算為了使用戶能更輕松的享受云計(jì)算帶來的服務(wù),讓用戶能利用該編程模型編寫簡單的程序來實(shí)現(xiàn)特定的目的,云計(jì)算上的編程模型必須十分簡單。必須保證后臺(tái)復(fù)雜的并行執(zhí)行和任務(wù)調(diào)度向用戶和編程人員透明。當(dāng)前各IT廠商提出的“云”計(jì)劃的編程工具均基于Map-Reduce的編程模型。

第56頁/共180頁10.3典型云計(jì)算系統(tǒng)簡介10.3.1Amazon云計(jì)算基礎(chǔ)架構(gòu)平臺(tái)目前,最受歡迎的云計(jì)算平臺(tái)是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ǔ))。針對(duì)這些服務(wù),開發(fā)人員可以使用Web服務(wù)、具體的REST和SOAP協(xié)議訪問。第57頁/共180頁

AmazonEC2和MySQL,對(duì)于一個(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)用。第58頁/共180頁

1.Amazon彈性計(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ò)。第59頁/共180頁

2.Amazon簡單存儲(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對(duì)最終用戶按每GB存儲(chǔ)收費(fèi),并且當(dāng)存儲(chǔ)和檢索S3數(shù)據(jù)時(shí)要求收費(fèi)。用S3可以存儲(chǔ)和獲得Amazon認(rèn)為是對(duì)象的無組織的數(shù)據(jù)。亞馬遜存儲(chǔ)如圖10.5所示。第60頁/共180頁圖10.5亞馬遜存儲(chǔ)第61頁/共180頁這些對(duì)象可以是擁有2KB相關(guān)元數(shù)據(jù),而這些對(duì)象又可以存放在1B到5GB范圍內(nèi)的任何地方。S3里沒有目錄或文件名,對(duì)象存儲(chǔ)在“Buckets”當(dāng)中,并由開發(fā)人員通過預(yù)設(shè)的唯一鍵進(jìn)行檢索。Buckets和其內(nèi)部包含的對(duì)象存儲(chǔ)在兩個(gè)不同的物理區(qū)域中,但是它們可以從任何地方訪問。使用一個(gè)REST和SOAP接口,開發(fā)人員可以創(chuàng)建、列出和檢索Buckets和對(duì)象,同時(shí)可以通過GET接口或者BitTorrent協(xié)議下載亞馬遜WebMySQL。第62頁/共180頁

3.Amazon持久存儲(chǔ)(EBS)

EBS在2008年開始運(yùn)營時(shí),是AmazonEC2最令人期待的特性之一。在EBS之前,EC2存儲(chǔ)是和本地實(shí)例聯(lián)系在一起的,這就意味著如果EC2實(shí)例被破壞,本地實(shí)例上存儲(chǔ)的數(shù)據(jù)就變得不可用了。為了解決該問題,Amazon創(chuàng)建了EBS,提供塊級(jí)水平存儲(chǔ)容量,其可以不考慮EC2實(shí)例的狀態(tài)。對(duì)于開發(fā)人員,EBSVolume的出現(xiàn)作為標(biāo)準(zhǔn)的塊機(jī)制,其大小從1GB變化到1TB。指定機(jī)制名稱和塊機(jī)制接口以后,用戶可以配置一個(gè)他們選擇的EBSVolume的文件系統(tǒng)。第63頁/共180頁

1)在AmazonEC2上部署MySQL在EC2上開始MySQL是很簡單的,亞馬遜WebMySQL如圖10.6所示。首先,假定已經(jīng)設(shè)置了Amazon賬號(hào),可以從AmazonAMI目錄使用一個(gè)已存在的AMI預(yù)設(shè)置MySQL,或者使用自己的AmazonSDK創(chuàng)建。用戶還可以從其他的資源獲得可用的“模板化”AMI圖形。其次,一旦做了任何配置,為了再次使用和安全保存,應(yīng)該上傳用戶的AMI到S3。最后,選擇想部署的EC2實(shí)例,配置安全和網(wǎng)絡(luò)控制。第64頁/共180頁圖10.6亞馬遜WebMySQL第65頁/共180頁

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)用。第66頁/共180頁圖10.7亞馬遜WebServer第67頁/共180頁10.3.2Google云計(jì)算應(yīng)用平臺(tái)

Google的云計(jì)算技術(shù)實(shí)際上是針對(duì)Google特定的網(wǎng)絡(luò)應(yīng)用程序而定制的。針對(duì)內(nèi)部網(wǎng)絡(luò)數(shù)據(jù)規(guī)模超大的特點(diǎn),Google提出了一整套基于分布式并行集群方式的基礎(chǔ)架構(gòu),利用軟件的能力來處理集群中經(jīng)常發(fā)生的節(jié)點(diǎn)失效問題。

第68頁/共180頁從2003年開始,Google連續(xù)幾年在計(jì)算機(jī)系統(tǒng)研究領(lǐng)域的頂級(jí)會(huì)議與雜志上發(fā)表論文,揭示了其內(nèi)部的分布式數(shù)據(jù)處理方法,向外界展示其使用的云計(jì)算核心技術(shù)。從其近幾年發(fā)表的論文來看,Google使用的云計(jì)算基礎(chǔ)架構(gòu)模式包括四個(gè)相互獨(dú)立又緊密結(jié)合在一起的系統(tǒng),即建立在集群之上的Google文件系統(tǒng)(GoogleFileSystem,GFS),針對(duì)Google應(yīng)用程序的特點(diǎn)提出的Map/Reduce分布式編程環(huán)境,分布式的鎖機(jī)制Chubby以及Google開發(fā)的模型簡化的大規(guī)模分布式數(shù)據(jù)庫管理系統(tǒng)BigTable。第69頁/共180頁

1.Google文件系統(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)行狀況,偵測(cè)錯(cuò)誤,并且將容錯(cuò)以及自動(dòng)恢復(fù)系統(tǒng)集成在系統(tǒng)中。第70頁/共180頁

(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)用(如搜索)中對(duì)大部分文件的修改,不是覆蓋原有數(shù)據(jù),而是在文件尾追加新數(shù)據(jù),對(duì)文件的隨機(jī)寫是幾乎不存在的。對(duì)于這類巨大文件的訪問模式,客戶端對(duì)數(shù)據(jù)塊緩存失去了意義,追加操作成為性能優(yōu)化和原子性(把一個(gè)事務(wù)看做是一個(gè)程序,它要么被完整地執(zhí)行,要么完全不執(zhí)行)保證的焦點(diǎn)。第71頁/共180頁

(4)文件系統(tǒng)的某些具體操作不再透明,而且需要應(yīng)用程序的協(xié)助完成,應(yīng)用程序和文件系統(tǒng)API的協(xié)同設(shè)計(jì)提高了整個(gè)系統(tǒng)的靈活性。例如,放松了對(duì)GFS一致性模型的要求,這樣不用加重應(yīng)用程序的負(fù)擔(dān),就大大簡化了文件系統(tǒng)的設(shè)計(jì)。GFS還引入了原子性的追加操作,這樣多個(gè)客戶端同時(shí)進(jìn)行追加的時(shí)候,就不需要額外的同步操作了??傊珿FS是為Google應(yīng)用程序本身而設(shè)計(jì)的。第72頁/共180頁

GoogleFileSystem的系統(tǒng)架構(gòu)如圖10.8所示,一個(gè)GFS集群包含一個(gè)主服務(wù)器和多個(gè)塊服務(wù)器,被多個(gè)客戶端訪問。文件被分割成固定尺寸的塊。在每個(gè)塊創(chuàng)建的時(shí)候,服務(wù)器分配給它一個(gè)不變的、全球唯一的64位塊句柄對(duì)它進(jìn)行標(biāo)識(shí)。塊服務(wù)器把塊作為Linux文件保存在本地硬盤上,并根據(jù)指定的塊句柄和字節(jié)范圍來讀寫塊數(shù)據(jù)。為了保證可靠性,每個(gè)塊都會(huì)復(fù)制到多個(gè)塊服務(wù)器上,缺省保存三個(gè)備份。主服務(wù)器管理文件系統(tǒng)所有的元數(shù)據(jù),包括名字空間、訪問控制信息和文件到塊的映射信息,以及塊當(dāng)前所在的位置。第73頁/共180頁

GFS客戶端代碼被嵌入到每個(gè)程序里,它實(shí)現(xiàn)了Google文件系統(tǒng)API,幫助應(yīng)用程序與主服務(wù)器和塊服務(wù)器通信,對(duì)數(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能夠針對(duì)它本身的應(yīng)用獲得最大的性能以及可用性效果。第74頁/共180頁第75頁/共180頁

2.Map/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)于集群的處理問題則交由平臺(tái)來處理。第76頁/共180頁

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)行。第77頁/共180頁

3.大規(guī)模分布式數(shù)據(jù)庫管理系統(tǒng)BigTable構(gòu)建于上述兩項(xiàng)基礎(chǔ)之上的第三個(gè)云計(jì)算平臺(tái)就是Google將數(shù)據(jù)庫系統(tǒng)擴(kuò)展到分布式平臺(tái)上的BigTable系統(tǒng)。很多應(yīng)用程序?qū)τ跀?shù)據(jù)的組織都是非常有規(guī)則的,一般來說,數(shù)據(jù)庫對(duì)格式化數(shù)據(jù)的處理也是非常方便的,但是由于關(guān)系數(shù)據(jù)庫很強(qiáng)的一致性要求,很難將其擴(kuò)展到很大的規(guī)模。為了處理Google內(nèi)部大量的格式化以及半格式化數(shù)據(jù),Google構(gòu)建了弱一致性要求的大規(guī)模數(shù)據(jù)庫系統(tǒng)BigTable。第78頁/共180頁圖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ǔ)平臺(tái)的三個(gè)主要部分,除了這三個(gè)部分之外,Google還建立了分布式的鎖服務(wù)等一系列相關(guān)的云計(jì)算服務(wù)平臺(tái)。第79頁/共180頁圖10.9GoogleBigTable的數(shù)據(jù)模型第80頁/共180頁

4.Google的云應(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ù)程序。第81頁/共180頁

GoogleDocs是一個(gè)基于Web的工具,它有跟MicrosoftOffice相近的編輯界面,有一套簡單易用的文檔權(quán)限管理,并能記錄下所有用戶對(duì)文檔所做的修改。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)作帶來很大的方便性。第82頁/共180頁雖然Google可以說是云計(jì)算的最大實(shí)踐者,但是,Google的云計(jì)算平臺(tái)是私有的環(huán)境,特別是Google的云計(jì)算基礎(chǔ)設(shè)施還沒有開放。除了開放有限的應(yīng)用程序接口,例如GWT(GoogleWebToolkit)以及GoogleMapAPI等,Google并沒有將云計(jì)算的內(nèi)部基礎(chǔ)設(shè)施共享給外部的用戶使用,上述的所有基礎(chǔ)設(shè)施都是私有的。第83頁/共180頁幸運(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ì)算的平臺(tái)環(huán)境,使得開發(fā)者能夠在云計(jì)算的基礎(chǔ)設(shè)施之上構(gòu)建自己的新型網(wǎng)絡(luò)應(yīng)用。IBM的藍(lán)云計(jì)算平臺(tái)是可供銷售的計(jì)算平臺(tái),用戶可以基于這些軟硬件產(chǎn)品自己構(gòu)建云計(jì)算平臺(tái)。亞馬遜的彈性計(jì)算云則是托管式的云計(jì)算平臺(tái),用戶可以通過遠(yuǎn)端的操作界面直接使用。第84頁/共180頁10.3.3Microsoft云計(jì)算服務(wù)對(duì)微軟來說,進(jìn)入云計(jì)算的領(lǐng)域不是最早的,但是微軟不乏后發(fā)制人的先例。在三大類云計(jì)算服務(wù)(IaaS、PaaS和SaaS)上,微軟推出了WindowsServerPlatform,同時(shí)也推出了WindowsAzurePlatform解決方案。本節(jié)介紹微軟的WindowsAzurePlatform解決方案的核心技術(shù)。第85頁/共180頁

WindowsAzurePlatform運(yùn)行在微軟數(shù)據(jù)中心的服務(wù)器和網(wǎng)絡(luò)基礎(chǔ)設(shè)施上,通過公共互聯(lián)網(wǎng)對(duì)外提供服務(wù)。微軟對(duì)云計(jì)算提出一個(gè)公式:云計(jì)算?=?(數(shù)據(jù)軟件?+?平臺(tái)?+?基礎(chǔ)設(shè)施)?×?服務(wù)此公式表明了云最重要的是服務(wù)?;谠朴?jì)算服務(wù)的三種模式,微軟云計(jì)算采用了“軟件+服務(wù)”,“云+端”的策略。WindowsAzurePlatform正是這一策略的具體實(shí)現(xiàn),它一方面提供了可靠的軟件平臺(tái);另一方面通過提供服務(wù)或者開放的系統(tǒng)運(yùn)營企業(yè)服務(wù)。第86頁/共180頁

1.WindowsAzurePlatform的功能

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ù)與云平臺(tái)的連接和互操作變得更為簡單,如圖10.10所示。第87頁/共180頁圖10.10WindowsAzurePlatform的組成第88頁/共180頁

1)?WindowsAzure

WindowsAzure是一個(gè)云服務(wù)的操作系統(tǒng),它提供了一個(gè)可擴(kuò)展的開發(fā)、托管服務(wù)和服務(wù)管理環(huán)境。WindowsAzure主要包括三個(gè)部分:一是運(yùn)營應(yīng)用的計(jì)算服務(wù);二是數(shù)據(jù)存儲(chǔ)服務(wù);三是基于云平臺(tái)進(jìn)行管理和動(dòng)態(tài)分配資源的控制器(FabricController)。第89頁/共180頁

WindowsAzure提供了一個(gè)可擴(kuò)展的開發(fā)、托管服務(wù)和服務(wù)管理環(huán)境,這其中包括提供基于虛擬機(jī)的計(jì)算服務(wù)和基于Blobs、Tables、Queues、Drives等的存儲(chǔ)服務(wù)。WindowsAzure是一個(gè)開放的平臺(tái),支持微軟和非微軟的語言和環(huán)境。開發(fā)人員在構(gòu)建WindowsAzure應(yīng)用程序和服務(wù)時(shí),不僅可以使用熟悉的MicrosoftVisualStudio、Eclipse等開發(fā)工具,同時(shí)WindowsAzure還支持各種流行的標(biāo)準(zhǔn)與協(xié)議,包括SOAP、REST、XML和HTTPS等。第90頁/共180頁

2)?SQLAzure

SQLAzure幫助用戶簡化多數(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ù)庫軟件相對(duì)應(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的云端版本。第91頁/共180頁

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所示。第92頁/共180頁圖10.11SQLAzure的架構(gòu)第93頁/共180頁

3)?AppFabric

AppFabric作為中間件層,起著連接非云端程序與云端程序的橋梁的作用,它讓開發(fā)人員可以把精力放在他們的應(yīng)用邏輯上而不是在部署和管理云服務(wù)的基礎(chǔ)架構(gòu)上。

AppFabric是基于Web的開放服務(wù),它可以把現(xiàn)有應(yīng)用和服務(wù)與云平臺(tái)的連接和互操作變得更為簡單,為本地應(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ù)。第94頁/共180頁需要說明的是,WindowsServerAppFabric和WindowsAzureAppFabric是不同的,它們之間的關(guān)系類似于SQLServer和SQLAzure之間的關(guān)系,即帶“Server”的是服務(wù)器產(chǎn)品,帶Azure的是云端產(chǎn)品,我們甚至可以把WindowsAzureAppFabric理解為一款主要面向私有云計(jì)算的系統(tǒng)。第95頁/共180頁

WindowsAzure提供了一個(gè)叫做Role的概念,每個(gè)Role可以被認(rèn)為是一段程序,與普通的應(yīng)用程序不同的是這段程序可以同時(shí)在一臺(tái)或者多臺(tái)機(jī)器上運(yùn)行。每個(gè)Role可以有多個(gè)實(shí)例(Instance),每個(gè)實(shí)例對(duì)應(yīng)一臺(tái)虛擬機(jī)。對(duì)同一個(gè)Role而言,它所有的實(shí)例執(zhí)行的程序都是相同的?,F(xiàn)在有兩種類型的Role:WorkerRole(工作者角色)和WebRole(Web角色)。

WebRole:是一個(gè)Web應(yīng)用程序,它可以通過HTTP或HTTPS與外界通信。一般來說,Web角色響應(yīng)請(qǐng)求,執(zhí)行一個(gè)動(dòng)作,然后等待下一個(gè)請(qǐng)求的到來。第96頁/共180頁

WorkerRole:是一種后臺(tái)執(zhí)行(RunningonBackground)的應(yīng)用程序,運(yùn)行.Net框架代碼的后臺(tái)進(jìn)程應(yīng)用程序。

AppFabric最常用的一個(gè)場(chǎng)景是:WebRole和WorkerRole之間的通信。不僅如此,AppFabric最強(qiáng)大的地方在于能夠跨平臺(tái)。第97頁/共180頁

2.微軟云計(jì)算參考架構(gòu)從圖10.12所示的微軟云計(jì)算的參考架構(gòu)可以看到WindowsAzurePlatform是一個(gè)PaaS類和IaaS類的平臺(tái)。因?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類的平臺(tái)。第98頁/共180頁圖10.12微軟云計(jì)算的參考架構(gòu)第99頁/共180頁

WindowsAzurePlatform的基礎(chǔ)是虛擬化,虛擬化架起了硬件資源(主機(jī)、存儲(chǔ)、網(wǎng)絡(luò)、其他硬件)和基礎(chǔ)服務(wù)之間的橋梁。PaaS通過基礎(chǔ)服務(wù)和虛擬化來使用資源層的資源。虛擬化對(duì)用戶來說是透明的,同時(shí)虛擬化也是動(dòng)態(tài)數(shù)據(jù)中心的基礎(chǔ)核心層。可以說,沒有虛擬化技術(shù),想要實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)中心幾乎是不可能的,但是虛擬化不是云計(jì)算。第100頁/共180頁10.3.4IBM藍(lán)云計(jì)算平臺(tái)

IBM在2007年11月15日推出了藍(lán)云計(jì)算平臺(tái),為客戶帶來即買即用的云計(jì)算平臺(tái)。它包括一系列的云計(jì)算產(chǎn)品,使得計(jì)算不僅僅局限在本地機(jī)器或遠(yuǎn)程服務(wù)器農(nóng)場(chǎng)(即服務(wù)器集群),通過架構(gòu)一個(gè)分布式、可全球訪問的資源結(jié)構(gòu),使得數(shù)據(jù)中心在類似于互聯(lián)網(wǎng)的環(huán)境下運(yùn)行計(jì)算。第101頁/共180頁“藍(lán)云”建立在IBM大規(guī)模計(jì)算領(lǐng)域的專業(yè)技術(shù)基礎(chǔ)上,基于由IBM軟件、系統(tǒng)技術(shù)和服務(wù)支持的開放標(biāo)準(zhǔn)和開源軟件。簡單地說,“藍(lán)云”基于IBMAlmaden研究中心(AlmadenResearchCenter)的云基礎(chǔ)架構(gòu),包括Xen和PowerVM虛擬化、Linux操作系統(tǒng)映像以及Hadoop文件系統(tǒng)與并行構(gòu)建?!八{(lán)云”由IBMTivoli軟件支持,通過管理服務(wù)器來確?;谛枨蟮淖罴研阅?。這包括通過能夠跨越多服務(wù)器實(shí)時(shí)分配資源的軟件,為客戶帶來一種無縫體驗(yàn),加速性能并確保在最苛刻環(huán)境下的穩(wěn)定性。IBM發(fā)布的“藍(lán)云(BlueCloud)”計(jì)劃,能夠幫助用戶進(jìn)行云計(jì)算環(huán)境的搭建。它通過將Tivoli、DB2、WebSphere與硬件產(chǎn)品集成,能夠?yàn)槠髽I(yè)架設(shè)一個(gè)分布式、可全球訪問的資源結(jié)構(gòu)。第102頁/共180頁藍(lán)云計(jì)算的高層架構(gòu)如圖10.13所示。可以看到,藍(lán)云計(jì)算平臺(tái)的數(shù)據(jù)中心是由IBMTivoli部署管理軟件(TivoliProvisioningManager)、IBMTivoli監(jiān)控軟件(IBMTivoliMonitoring)、IBMWebSphere應(yīng)用服務(wù)器、IBMDB2數(shù)據(jù)庫以及一些虛擬化的組件共同組成的。圖中的架構(gòu)主要描述了云計(jì)算的后臺(tái)架構(gòu),并沒有涉及前臺(tái)的用戶界面。第103頁/共180頁圖10.13藍(lán)云計(jì)算的高層架構(gòu)第104頁/共180頁藍(lán)云的硬件平臺(tái)與相對(duì)分布式平臺(tái)無特殊要求,但是藍(lán)云使用的軟件平臺(tái)與相對(duì)分布式平臺(tái)有所不同,主要體現(xiàn)在虛擬機(jī)的使用以及對(duì)大規(guī)模數(shù)據(jù)處理軟件ApacheHadoop的部署。Hadoop是網(wǎng)絡(luò)開發(fā)人員根據(jù)Google公司公開的資料開發(fā)出來的類似于GoogleFileSystem的HadoopFileSystem以及相應(yīng)的Map/Reduce編程規(guī)范。Hadoop是開源的,用戶可以直接修改,以適合應(yīng)用的特殊需求。IBM的藍(lán)云產(chǎn)品則直接將Hadoop軟件集成到自己本身的云計(jì)算平臺(tái)之上。第105頁/共180頁

1.“藍(lán)云”中的虛擬化從藍(lán)云的結(jié)構(gòu)上可以看出,在每一個(gè)節(jié)點(diǎn)上運(yùn)行的軟件棧與傳統(tǒng)的軟件棧一個(gè)很大的不同在于藍(lán)云內(nèi)部使用了虛擬化技術(shù)。虛擬化的方式在云計(jì)算中可以在兩個(gè)級(jí)別上實(shí)現(xiàn)。一個(gè)是在硬件級(jí)別上實(shí)現(xiàn)虛擬化。硬件級(jí)別的虛擬化可以使用IBMP系列的服務(wù)器,獲得硬件的邏輯分區(qū)LPAR。邏輯分區(qū)的CPU資源能夠通過IBMEnterpriseWorkloadManager來管理。通過這樣的方式加上在實(shí)際使用過程中的資源分配策略,能夠使得相應(yīng)的資源合理地分配到各個(gè)邏輯分區(qū)。P系列系統(tǒng)的邏輯分區(qū)最小粒度是1/10顆中央處理器(CPU)。第106頁/共180頁虛擬化的另外一個(gè)級(jí)別可以通過軟件來獲得,即Xen虛擬化軟件。Xen也是一個(gè)開源的虛擬化軟件,能夠在現(xiàn)有的Linux基礎(chǔ)之上運(yùn)行另外一個(gè)操作系統(tǒng),并通過虛擬機(jī)的方式靈活地進(jìn)行軟件部署和操作。通過虛擬機(jī)的方式進(jìn)行云計(jì)算資源的管理具有特殊的好處。由于虛擬機(jī)是一類特殊的軟件,能夠完全模擬硬件的執(zhí)行,因此能夠在上面運(yùn)行操作系統(tǒng),進(jìn)而能夠保留一整套運(yùn)行環(huán)境語義。這樣,可以將整個(gè)執(zhí)行環(huán)境通過打包的方式傳輸?shù)狡渌锢砉?jié)點(diǎn)上,使得執(zhí)行環(huán)境與物理環(huán)境隔離,方便整個(gè)應(yīng)用程序模塊的部署。總體上來說,通過將虛擬化的技術(shù)應(yīng)用到云計(jì)算的平臺(tái),可以獲得一些良好的特性。第107頁/共180頁

(1)云計(jì)算的管理平臺(tái)能夠動(dòng)態(tài)地將計(jì)算平臺(tái)定位到所需要的物理平臺(tái)上,而無需停止運(yùn)行在虛擬機(jī)平臺(tái)上的應(yīng)用程序,這比采用虛擬化技術(shù)之前的進(jìn)程遷移方法更加靈活。

(2)能夠更加有效地使用主機(jī)資源,將多個(gè)負(fù)載不是很重的虛擬機(jī)計(jì)算節(jié)點(diǎn)合并到同一個(gè)物理節(jié)點(diǎn)上,從而能夠關(guān)閉空閑的物理節(jié)點(diǎn),達(dá)到節(jié)約電能的目的。

(3)通過虛擬機(jī)在不同物理節(jié)點(diǎn)上的動(dòng)態(tài)遷移,能夠獲得與應(yīng)用無關(guān)的負(fù)載平衡性能。由于虛擬機(jī)包含了整個(gè)虛擬化的操作系統(tǒng)以及應(yīng)用程序環(huán)境,因此在進(jìn)行遷移的時(shí)候帶著整個(gè)運(yùn)行環(huán)境,達(dá)到了與應(yīng)用無關(guān)的目的。

(4)在部署上也更加靈活,即可以將虛擬機(jī)直接部署到物理計(jì)算平臺(tái)當(dāng)中??偠灾ㄟ^虛擬化的方式,云計(jì)算平臺(tái)能夠達(dá)到極其靈活的特性,而如果不使用虛擬化的方式則會(huì)有很多的局限。第108頁/共180頁

2.“藍(lán)云”中的存儲(chǔ)結(jié)構(gòu)藍(lán)云計(jì)算平臺(tái)中的存儲(chǔ)體系結(jié)構(gòu)對(duì)于云計(jì)算來說也是非常重要的,無論是操作系統(tǒng)、服務(wù)程序還是用戶應(yīng)用程序的數(shù)據(jù)都保存在存儲(chǔ)體系中。云計(jì)算并不排斥任何一種有用的存儲(chǔ)體系結(jié)構(gòu),而是需要跟應(yīng)用程序的需求結(jié)合起來獲得最好的性能提升。總體上來說,云計(jì)算的存儲(chǔ)體系結(jié)構(gòu)包含類似于GoogleFileSystem的集群文件系統(tǒng)以及基于塊設(shè)備方式的存儲(chǔ)區(qū)域網(wǎng)絡(luò)SAN兩種方式。第109頁/共180頁在設(shè)計(jì)云計(jì)算平臺(tái)的存儲(chǔ)體系結(jié)構(gòu)的時(shí)候,不僅僅需要考慮存儲(chǔ)的容量。實(shí)際上隨著硬盤容量的不斷擴(kuò)充以及硬盤價(jià)格的不斷下降,使用當(dāng)前的磁盤技術(shù),就很容易通過使用多個(gè)磁盤的方式獲得很大的磁盤容量。相較于磁盤的容量,在云計(jì)算平臺(tái)的存儲(chǔ)中,磁盤數(shù)據(jù)的讀寫速度是一個(gè)更重要的問題。單個(gè)磁盤的速度很有可能限制應(yīng)用程序?qū)τ跀?shù)據(jù)的訪問,因此在實(shí)際使用的過程中,需要將數(shù)據(jù)分布到多個(gè)磁盤之上,并且通過對(duì)多個(gè)磁盤的同時(shí)讀寫達(dá)到提高速度的目的。在云計(jì)算平臺(tái)中,數(shù)據(jù)如何放置是一個(gè)非常重要的問題,在實(shí)際使用的過程中,需要將數(shù)據(jù)分配到多個(gè)節(jié)點(diǎn)的多個(gè)磁盤當(dāng)中。能夠達(dá)到這一目的的存儲(chǔ)技術(shù)趨勢(shì)當(dāng)前有兩種方式:一種是使用類似于GoogleFileSystem的集群文件系統(tǒng);另一種是基于塊設(shè)備的存儲(chǔ)區(qū)域網(wǎng)絡(luò)SAN系統(tǒng)。第110頁/共180頁

Google文件系統(tǒng)在前面已經(jīng)做過一定的描述。在IBM的藍(lán)云計(jì)算平臺(tái)中使用的是它的開源實(shí)現(xiàn)HDFS(HadoopDistributedFileSystem)。這種使用方式將磁盤附著于節(jié)點(diǎn)的內(nèi)部,為外部提供一個(gè)共享的分布式文件系統(tǒng)空間,并且在文件系統(tǒng)級(jí)別做冗余以提高可靠性。在合適的分布式數(shù)據(jù)處理模式下,這種方式能夠提高總體的數(shù)據(jù)處理效率。Google文件系統(tǒng)的這種架構(gòu)與SAN系統(tǒng)有很大的不同。第111頁/共180頁

SAN系統(tǒng)也是云計(jì)算平臺(tái)的另外一種存儲(chǔ)體系結(jié)構(gòu)選擇,在藍(lán)云平臺(tái)上也有一定的體現(xiàn),IBM提供的SAN的平臺(tái)也能夠接入到藍(lán)云計(jì)算平臺(tái)中。圖10.14所示的是一個(gè)SAN系統(tǒng)的結(jié)構(gòu)示意圖。圖中的SAN系統(tǒng)是在存儲(chǔ)端構(gòu)建存儲(chǔ)的網(wǎng)絡(luò),將多個(gè)存儲(chǔ)設(shè)備構(gòu)成一個(gè)存儲(chǔ)區(qū)域網(wǎng)絡(luò)。前端的主機(jī)可以通過網(wǎng)絡(luò)的方式訪問后端的存儲(chǔ)設(shè)備。而且,由于提供了塊設(shè)備的訪問方式,與前端操作系統(tǒng)無關(guān)。在SAN連接方式上,可以有多種選擇。第112頁/共180頁一種選擇是使用光纖網(wǎng)絡(luò),能夠操作快速的光纖磁盤,適合于對(duì)性能與可靠性要求比較高的場(chǎng)所;另外一種選擇是使用以太網(wǎng),采取iSCSI協(xié)議,能夠運(yùn)行在普通的局域網(wǎng)環(huán)境下,從而降低了成本。由于存儲(chǔ)區(qū)域網(wǎng)絡(luò)中的磁盤設(shè)備并沒有與某一臺(tái)主機(jī)綁定在一起,而是采用了非常靈活的結(jié)構(gòu),因此對(duì)于主機(jī)來說可以訪問多個(gè)磁盤設(shè)備,從而獲得性能的提升。在存儲(chǔ)區(qū)域網(wǎng)絡(luò)中,使用虛擬化的引擎來進(jìn)行邏輯設(shè)備到物理設(shè)備的映射,管理前端主機(jī)到后端數(shù)據(jù)的讀寫。因此虛擬化引擎是存儲(chǔ)區(qū)域網(wǎng)絡(luò)中非常重要的管理模塊。第113頁/共180頁圖10.14SAN系統(tǒng)的結(jié)構(gòu)示意圖第114頁/共180頁

SAN系統(tǒng)與分布式文件系統(tǒng)(例如GoogleFileSystem)并不是相互對(duì)立的系統(tǒng),而是在構(gòu)建集群系統(tǒng)的時(shí)候可供選擇的兩種方案。其中,在選擇SAN系統(tǒng)的時(shí)候,為了應(yīng)用程序的讀寫,還需要為應(yīng)用程序提供上層的語義接口,此時(shí)就需要在SAN之上構(gòu)建文件系統(tǒng)。而GoogleFileSystem正好是一個(gè)分布式的文件系統(tǒng),因此能夠建立在SAN系統(tǒng)之上??傮w來說,SAN與分布式文件系統(tǒng)都可以提供類似的功能,例如對(duì)于出錯(cuò)的處理等。至于如何使用還是需要由建立在云計(jì)算平臺(tái)之上的應(yīng)用程序來決定。第115頁/共180頁與Google不同的是,IBM并沒有基于云計(jì)算提供外部可訪問的網(wǎng)絡(luò)應(yīng)用程序。這主要是由于IBM并不是一個(gè)網(wǎng)絡(luò)公司,而是一個(gè)IT的服務(wù)公司。當(dāng)然,IBM內(nèi)部以及IBM未來為客戶提供的軟件服務(wù)會(huì)基于云計(jì)算的架構(gòu)。第116頁/共180頁10.4云計(jì)算的應(yīng)用示例10.4.1云計(jì)算機(jī)體系云計(jì)算機(jī),即云腦,它是基于傳統(tǒng)計(jì)算機(jī)的設(shè)計(jì)思想和云計(jì)算理念而產(chǎn)生的一個(gè)新的體系結(jié)構(gòu)。在云計(jì)算機(jī)中應(yīng)該具有六個(gè)組成成分:主服務(wù)控制機(jī)群、存儲(chǔ)節(jié)點(diǎn)機(jī)群、應(yīng)用節(jié)點(diǎn)機(jī)群、計(jì)算節(jié)點(diǎn)機(jī)群、輸入設(shè)備和輸出設(shè)備,如圖10.15所示。

第117頁/共180頁圖10.15云計(jì)算機(jī)通用體系第118頁/共180頁對(duì)云計(jì)算機(jī)的設(shè)計(jì)思想主要考慮以下幾點(diǎn):

(1)主服務(wù)控制機(jī)群對(duì)應(yīng)于傳統(tǒng)計(jì)算機(jī)體系結(jié)構(gòu)中可以看做控制器的部分。它是由一組或多組主引導(dǎo)服務(wù)機(jī)群和多組分類控制機(jī)群所組成的機(jī)群系統(tǒng),主要負(fù)責(zé)接收用戶應(yīng)用請(qǐng)求、驗(yàn)證用戶合法性,并根據(jù)應(yīng)用請(qǐng)求類型進(jìn)行應(yīng)用分類和負(fù)載均衡。第119頁/共180頁

(2)存儲(chǔ)節(jié)點(diǎn)機(jī)群和應(yīng)用節(jié)點(diǎn)機(jī)群相當(dāng)于傳統(tǒng)計(jì)算機(jī)體系結(jié)構(gòu)中的存儲(chǔ)器部分,但又有所區(qū)別。存儲(chǔ)節(jié)點(diǎn)機(jī)群是由龐大的磁盤陣列系統(tǒng)或多組擁有海量存儲(chǔ)能力的機(jī)群系統(tǒng)所組成的存儲(chǔ)系統(tǒng),它的責(zé)任是處理用戶數(shù)據(jù)資源的存取工作,并不關(guān)心用戶對(duì)這些數(shù)據(jù)要如何應(yīng)用,也不會(huì)處理存取數(shù)據(jù)資源和后臺(tái)安全策略管理以外的任何操作。這里同時(shí)提出了一個(gè)新的概念—云盤。所謂云盤,就是由云端主服務(wù)控制機(jī)群為云腦用戶所分配的、建立在存儲(chǔ)節(jié)點(diǎn)機(jī)群上的存儲(chǔ)空間,它雖不是用戶本地硬盤,但完全由用戶進(jìn)行應(yīng)用和管理,操作感與本地硬盤一致。應(yīng)用節(jié)點(diǎn)機(jī)群則是由一組或多組擁有不同業(yè)務(wù)處理邏輯的機(jī)群系統(tǒng)所組成的應(yīng)用系統(tǒng),它負(fù)責(zé)存儲(chǔ)應(yīng)用程序和處理各種邏輯復(fù)雜的用戶應(yīng)用。這兩個(gè)節(jié)點(diǎn)機(jī)群是完全按照主服務(wù)控制機(jī)群的任務(wù)控制流程運(yùn)行的,其本身不能擁有系統(tǒng)流程控制權(quán)。第120頁/共180頁

(3)計(jì)算節(jié)點(diǎn)機(jī)群提供類似運(yùn)算器的功能。計(jì)算節(jié)點(diǎn)機(jī)群由多組架構(gòu)完善的云計(jì)算機(jī)群所組成,其主要工作是處理超大運(yùn)算量要求的計(jì)算,并不提供小計(jì)算量服務(wù)。因?yàn)闄C(jī)群運(yùn)算會(huì)在多級(jí)交互以及計(jì)算分配與組裝上花費(fèi)不少時(shí)間,所以小計(jì)算量運(yùn)算如在計(jì)算節(jié)點(diǎn)機(jī)群進(jìn)行處理不但開銷大,而且很有可能效率遠(yuǎn)不如單機(jī)運(yùn)算,可以說得不償失。這些小計(jì)算量運(yùn)算服務(wù)只需在應(yīng)用節(jié)點(diǎn)機(jī)群或計(jì)算節(jié)點(diǎn)機(jī)群的某臺(tái)機(jī)器中完成即可。第121頁/共180頁10.4.2云腦系統(tǒng)的設(shè)計(jì)本節(jié)根據(jù)通用體系結(jié)構(gòu)設(shè)計(jì)一個(gè)簡單的云腦模型系統(tǒng),考慮到基于機(jī)群系統(tǒng)開發(fā)的實(shí)際情況,設(shè)計(jì)了一個(gè)由五臺(tái)服務(wù)器組成的微型機(jī)群模型,以便引導(dǎo)讀者根據(jù)后續(xù)內(nèi)容進(jìn)行實(shí)際開發(fā)。

第122頁/共180頁

1.云腦系統(tǒng)的整體架構(gòu)本云系統(tǒng)采用具有監(jiān)控管理的主從架構(gòu)機(jī)群,用五臺(tái)普通計(jì)算機(jī)完成搭建工作。圖10.16所示的是云腦系統(tǒng)的架構(gòu)圖,最左邊的是用戶終端,即云客戶端,不論是什么樣的設(shè)備,只要擁有瀏覽器,就可以像使用普通電腦一樣的使用云腦,所以瀏覽器是不可缺少的一個(gè)部分。在Internet的右邊是用戶所看不到的整體云腦架構(gòu),采用一臺(tái)計(jì)算機(jī)作為帶監(jiān)控的主服務(wù)器,用兩臺(tái)計(jì)算機(jī)作為應(yīng)用及存儲(chǔ)節(jié)點(diǎn)機(jī)群,再用兩臺(tái)服務(wù)器作為計(jì)算節(jié)點(diǎn)機(jī)群。第123頁/共180頁圖10.16云腦系統(tǒng)的架構(gòu)圖第124頁/共180頁需對(duì)圖10.15所示的通用云腦系統(tǒng)架構(gòu)做以下改動(dòng)。

(1)在主服務(wù)控制機(jī)群的地方,將只采用一臺(tái)服務(wù)器進(jìn)行開發(fā),并加入了監(jiān)控管理服務(wù)器的概念。這樣做有助于簡化系統(tǒng)的復(fù)雜度,方便開發(fā)。在負(fù)載均衡時(shí),只需取出監(jiān)控管理服務(wù)器對(duì)各節(jié)點(diǎn)的狀態(tài)監(jiān)控信息,便可進(jìn)行應(yīng)用或存儲(chǔ)策略分配。

(2)將應(yīng)用節(jié)點(diǎn)機(jī)群和存儲(chǔ)節(jié)點(diǎn)機(jī)群合并為一個(gè)應(yīng)用及存儲(chǔ)節(jié)點(diǎn)機(jī)群,這樣設(shè)計(jì)有兩個(gè)好處:一是在實(shí)驗(yàn)中可節(jié)省成本和減少硬件資源的浪費(fèi);二是由于在實(shí)驗(yàn)開發(fā)環(huán)境中,整個(gè)系統(tǒng)架構(gòu)在局域網(wǎng)中,并且訪問量不大,網(wǎng)絡(luò)帶寬還不會(huì)成為系統(tǒng)的瓶頸,這樣設(shè)計(jì)可以提高網(wǎng)絡(luò)負(fù)載,更容易暴露系統(tǒng)問題,易于測(cè)試。第125頁/共180頁

2.云腦系統(tǒng)的功能云腦系

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論