IBM公司于2007年底宣布了云計算計劃,云計算的概念出現(xiàn)在大眾面前,為了更好地了解云計算這個名字后面的本質(zhì)含義,本文擬通過具體分析工業(yè)界推出的幾個被廣泛接受的云計算實現(xiàn),以及學(xué)術(shù)界針對當前大規(guī)模數(shù)據(jù)處理上所作的努力,為讀者剖析云計算背后所采用的具體技術(shù),首先看一下在IBM的技術(shù)白皮書“Cloud Computing”中的云計算定義:
“云計算一詞用來同時描述一個系統(tǒng)平臺或者一種類型的應(yīng)用程序,一個云計算的平臺按需進行動態(tài)地部署(provision)、配置(configuration)、重新配置(reconfigure)以及取消服務(wù)(deprovision)等,在云計算平臺中的服務(wù)器可以是物理的服務(wù)器或者虛擬的服務(wù)器,高級的計算云通常包含一些其他的計算資源,例如存儲區(qū)域網(wǎng)絡(luò)(SANs),網(wǎng)絡(luò)設(shè)備,防火墻以及其他安全設(shè)備等,云計算在描述應(yīng)用方面,它描述了一種可以通過互聯(lián)網(wǎng)Internet進行訪問的可擴展的應(yīng)用程序,“云應(yīng)用”使用大規(guī)模的數(shù)據(jù)中心以及功能強勁的服務(wù)器來運行網(wǎng)絡(luò)應(yīng)用程序與網(wǎng)絡(luò)服務(wù),任何一個用戶可以通過合適的互聯(lián)網(wǎng)接入設(shè)備以及一個標準的瀏覽器就能夠訪問一個云計算應(yīng)用程序。”
上述定義給出了云計算兩個方面的含義:一方面描述了基礎(chǔ)設(shè)施,用來構(gòu)造應(yīng)用程序,其地位相當于PC機上的操作系統(tǒng);另一方面描述了建立在這種基礎(chǔ)設(shè)施之上的云計算應(yīng)用,在與網(wǎng)格計算的比較上,網(wǎng)格程序是將一個大任務(wù)分解成很多小任務(wù)并行運行在不同的集群以及服務(wù)器上,注重科學(xué)計算應(yīng)用程序的運行,而云計算是一個具有更廣泛含義的計算平臺,能夠支持非網(wǎng)格的應(yīng)用,例如支持網(wǎng)絡(luò)服務(wù)程序中的前臺網(wǎng)絡(luò)服務(wù)器、應(yīng)用服務(wù)器、數(shù)據(jù)庫服務(wù)器三層應(yīng)用程序架構(gòu)模式,以及支持當前Web 2.0模式的網(wǎng)絡(luò)應(yīng)用程序,云計算是能夠提供動態(tài)資源池、虛擬化和高可用性的下一代計算平臺,現(xiàn)有的云計算實現(xiàn)使用的技術(shù)體現(xiàn)了以下3個方面的 特征:
1) 硬件基礎(chǔ)設(shè)施架構(gòu)在大規(guī)模的廉價服務(wù)器集群之上,與傳統(tǒng)的性能強勁但價格昂貴的大型機不同,云計算的基礎(chǔ)架構(gòu)大量使用了廉價的服務(wù)器集群,特別是x86架構(gòu)的服務(wù)器,節(jié)點之間的互聯(lián)網(wǎng)絡(luò)一般也使用普遍的千兆以太網(wǎng)。
2) 應(yīng)用程序與底層服務(wù)協(xié)作開發(fā),最大限度地利用資源,傳統(tǒng)的應(yīng)用程序建立在完善的基礎(chǔ)結(jié)構(gòu),如操作系統(tǒng)之上,利用底層提供的服務(wù)來構(gòu)造應(yīng)用,而云計算為了更好地利用資源,采用了底層結(jié)構(gòu)與上層應(yīng)用共同設(shè)計的方法來完善應(yīng)用程序的構(gòu)建。
3) 通過多個廉價服務(wù)器之間的冗余,使用軟件獲得高可用性,由于使用了廉價的服務(wù)器集群,節(jié)點的失效將不可避免,并且會有節(jié)點同時失效的問題,為此,在軟件設(shè)計上需要考慮節(jié)點之間的容錯問題,使用冗余的節(jié)點獲得高可用性。
通過上面的技術(shù)手段,云計算達到了兩個分布式計算的重要目標:可擴展性和高可用性,可擴展性表達了云計算能夠無縫地擴展到大規(guī)模的集群之上,甚至包含數(shù)千個節(jié)點同時處理,高可用性代表了云計算能夠容忍節(jié)點的錯誤,甚至有很大一部分節(jié)點發(fā)生失效也不會影響程序的正確運行,學(xué)術(shù)界其實很早就展開了針對云計算方便用戶使用方面的研究,很多學(xué)術(shù)上的研究成果遠早于云計算概念提出來之前就已得出,我國的計算機研究人員遠在“云計算”這個名詞提出之前就已有透明計算的構(gòu)思,透明計算體現(xiàn)了云計算的特征,即資源池動態(tài)的構(gòu)建、虛擬化、用戶透明等,清華大學(xué)張堯?qū)W教授(中國工程院院士)早在1998年就開始從事透明計算系統(tǒng)和理論的研究,工業(yè)界很多公司則分別提出了自己針對云計算的理解,用不同的技術(shù)來實現(xiàn)上述云計算的目標。
本文主要研究工業(yè)界3個具體的云計算實例,具體包括Google的云計算平臺以及云計算的網(wǎng)絡(luò)應(yīng)用程序、IBM公司的“藍云”平臺產(chǎn)品以及Amazon公司的彈性計算云。此外,對云計算的學(xué)術(shù)研究現(xiàn)狀也進行了調(diào)研與分析。
1 清華大學(xué)透明計算平臺
張堯?qū)W教授領(lǐng)導(dǎo)的研究小組從1998年開始就從事透明計算系統(tǒng)和理論的研究,到2004年前后正式提出,并不斷完善了透明計算的概念和相關(guān)理論,隨著硬件、軟件以及網(wǎng)絡(luò)技術(shù)的發(fā)展,計算模式從大型機的方式逐漸過渡到微型個人計算機的方式,并且近年來過渡到普適計算上,但是用戶仍然很難獲得異構(gòu)類型的操作系統(tǒng)以及應(yīng)用程序,在輕量級的設(shè)備上很難獲得完善的服務(wù),而在透明計算中,用戶無須感知計算具體所在位置以及操作系統(tǒng)、中間件、應(yīng)用等技術(shù)細節(jié),只需要根據(jù)自己的需求,通過連通在網(wǎng)絡(luò)之上的各種設(shè)備選取相應(yīng)的服務(wù)。
圖1顯示了透明計算平臺的3個重要組成部分,用戶的顯示界面是前端的輕權(quán)設(shè)備,包括各種個人計算機、筆記本、PDA、智能手機等,被統(tǒng)稱為透明客戶端,透明客戶端可以是沒有安裝任何軟件的裸機,也可以是裝有部分核心軟件平臺的輕巧性終端,中間的透明網(wǎng)絡(luò)則整合了各種有線和無線網(wǎng)絡(luò)傳輸設(shè)施,主要用來在各種透明客戶端與后臺服務(wù)器之間完成數(shù)據(jù)的傳遞,而用戶無須意識到網(wǎng)絡(luò)的存在,與云計算基礎(chǔ)服務(wù)設(shè)施構(gòu)想一致,透明服務(wù)器不排斥任何一種可能的服務(wù)提供方式,既可通過當前流行的PC服務(wù)器集群方式來構(gòu)建透明服務(wù)器集群,也可使用大型服務(wù)器等。
圖1 透明計算系統(tǒng)的組成結(jié)構(gòu)
當前透明計算平臺已經(jīng)達到了平臺異構(gòu)的目的,能夠支持Linux以及Windows操作系統(tǒng)的運行,用戶具有很大的靈活性,能夠自主選擇自己所需要的操作系統(tǒng)運行在透明客戶端上,透明服務(wù)器使用了流行的PC服務(wù)器集群的方式,預(yù)先存儲了各種不同的操作平臺,包括操作系統(tǒng)的運行環(huán)境、應(yīng)用程序以及相應(yīng)的數(shù)據(jù),每個客戶端從透明服務(wù)器上獲取并建立整個運行環(huán)境以滿足用戶對于不同操作環(huán)境的需求,由于用戶之間的數(shù)據(jù)相互隔離,因此服務(wù)器集群可以選取用戶相對獨立的方式進行存儲,使得整個系統(tǒng)能夠擴展到很大的規(guī)模,在服務(wù)器集群之上進行相應(yīng)的冗余出錯處理,很好地保護了每個用戶的透明計算數(shù)據(jù)安全性。
2 Google的云計算平臺
Google公司有一套專屬的云計算平臺,這個平臺先是為Google最重要的搜索應(yīng)用提供服務(wù),現(xiàn)在已經(jīng)擴展到其他應(yīng)用程序,Google的云計算基礎(chǔ)架構(gòu)模式包括4個相互獨立又緊密結(jié)合在一起的系統(tǒng):Google File System分布式文件系統(tǒng),針對Google應(yīng)用程序的特點提出的MapReduce編程模式,分布式的鎖機制Chubby以及Google開發(fā)的模型簡化的大規(guī)模分布式數(shù)據(jù)庫BigTable。
·Google File System文件系統(tǒng)(GFS)
除了性能,可伸縮性、可靠性以及可用性以外,GFS設(shè)計還受到Google應(yīng)用負載和技術(shù)環(huán)境的影響,體現(xiàn)在4個方面:
1) 充分考慮到大量節(jié)點的失效問題,需要通過軟件將容錯以及自動恢復(fù)功能集成在系統(tǒng)中;
2) 構(gòu)造特殊的文件系統(tǒng)參數(shù),文件通常大小以G字節(jié)計,并包含大量小文件;
3) 充分考慮應(yīng)用的特性,增加文件追加操作,優(yōu)化順序讀寫速度;
4) 文件系統(tǒng)的某些具體操作不再透明,需要應(yīng)用程序的協(xié)助完成。
圖2給出了Google File System的系統(tǒng)架構(gòu),如圖2所示,一個GFS集群包含一個主服務(wù)器和多個塊服務(wù)器,被多個客戶端訪問,大文件被分割成固定尺寸的塊,塊服務(wù)器把塊作為Linux文件保存在本地硬盤上,并根據(jù)指定的塊句柄和字節(jié)范圍來讀寫塊數(shù)據(jù),為了保證可靠性,每個塊被缺省保存3個備份,主服務(wù)器管理文件系統(tǒng)所有的元數(shù)據(jù),包括名字空間、訪問控制、文件到塊的映射、塊物理位置等相關(guān)信息,通過服務(wù)器端和客戶端的聯(lián)合設(shè)計,GFS對應(yīng)用支持達到性能與可用性最優(yōu),GFS是為Google應(yīng)用程序本身而設(shè)計的,在內(nèi)部部署了許多GFS集群,有的集群擁有超過1 000個存儲節(jié)點,超過300T的硬盤空間,被不同機器上的數(shù)百個客戶端連續(xù)不斷地頻繁訪問著。
圖2 Google File System的系統(tǒng)架構(gòu)
·MapReduce分布式編程環(huán)境
Google構(gòu)造MapReduce編程規(guī)范來簡化分布式系統(tǒng)的編程,應(yīng)用程序編寫人員只需將精力放在應(yīng)用程序本身,而關(guān)于集群的處理問題,包括可靠性和可擴展性,則交由平臺來處理,MapReduce通過“Map(映射)”和“Reduce(化簡)”這樣兩個簡單的概念來構(gòu)成運算基本單元,用戶只需提供自己的Map函數(shù)以及Reduce函數(shù)即可并行處理海量數(shù)據(jù),為了進一步理解MapReduce的編程方式,下面給出一個基于MapReduce編程方式的程序偽代碼,程序功能是統(tǒng)計文本中所有單詞出現(xiàn)的次數(shù)。
在圖3所示的map函數(shù)中,用戶的程序?qū)⑽谋局兴谐霈F(xiàn)的單詞都按照出現(xiàn)計數(shù)1(以Key-Value對的形式)發(fā)射到MapReduce給出的一個中間臨時空間中,通過MapReduce中間處理過程,將所有相同的單詞產(chǎn)生的中間結(jié)果分配到同樣一個Reduce函數(shù)中,而每一個Reduce函數(shù)則只需把計數(shù)累加在一起即可獲得最后結(jié)果。
圖4給出了MapReduce執(zhí)行過程,分為Map階段以及Reduce兩個階段,都使用了集群中的所有節(jié)點,在兩個階段之間還有一個中間的分類階段,即將中間結(jié)果包含相同的key的中間結(jié)果交給同一個Reduce函數(shù)去執(zhí)行。
圖3 基于MapReduce框架的單詞統(tǒng)計程序舉例
圖4 MapReduce處理程序的執(zhí)行過程(M代表Map函數(shù)的執(zhí)行,R代表Reduce函數(shù)的執(zhí)行)
·分布式的大規(guī)模數(shù)據(jù)庫管理系統(tǒng)BigTable
由于一部分Google應(yīng)用程序需要處理大量的格式化以及半格式化數(shù)據(jù), Google構(gòu)建了弱一致性要求的大規(guī)模數(shù)據(jù)庫系統(tǒng)BigTable,BigTable的應(yīng)用包括Search History,Maps,Orkut,RSS閱讀器等。
圖5給出了在BigTable模型中給出的數(shù)據(jù)模型,數(shù)據(jù)模型包括行列以及相應(yīng)的時間戳,所有的數(shù)據(jù)都存放在表格單元中,BigTable的內(nèi)容按照行來劃分,將多個行組成一個小表,保存到某一個服務(wù)器節(jié)點中,這個小表就被稱為Tablet,圖6是整個BigTable的存儲服務(wù)體系結(jié)構(gòu)。
圖5 Google BigTable的數(shù)據(jù)模型
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://m.kaqidy.com/
本文標題:云計算:系統(tǒng)實例與研究現(xiàn)狀(上)
本文網(wǎng)址:http://m.kaqidy.com/html/consultation/1083979200.html