云計算的演進和挑戰性研究問題
中國人民大學 富麗貞 陸嘉恒 孟小峰
經濟的發展導致提供軟件和計算能力服務基礎架構的出現,俗稱云服務或云計算。它是一種新興的共享基礎架構的方法,利用它用戶可以在任何地方通過連接的設備訪問其應用程
序。可以將巨大的系統池連接在一起以提供各種IT服務。很多因素推動了對這類環境的需求,其中包括連接設備、實時數據流、SOA的采用以及搜索、開放協作、社會網絡和移動商務等這樣的Web 2.0應用的急劇增長。 另外,數字元器件性能的提升也使IT環境的規模大幅度提高,從而進一步加強了對一個由統一的云進行管理的需求。毫無疑問,云計算已經擁有了一個光明的前景。
云計算的演進
目前,云計算是 IT 行業的一個熱點話題。但它并不是革命性的新發展,而是數據管理技術不斷演進的結果,如圖 1 所示。
圖 1 云計算的演進
在上個世紀末,分布式處理(Distributed Computing)、并行處理(Parallel Computing)和網格計算(Grid Computing)已相當成熟。他們是云計算發展的技術基礎。
上世紀 80 年代末,開始出現應用大量系統來解決單一問題(通常是科學問題)的情況,這就是網格計算的概念,而這種概念又導致向云計算的發展。網格計算的關注重點是將工作
負載移到所需的計算資源所在位置的能力,大多數情況下這種位置都是遠程的,而且持續可用。通常,網格是服務器集群,大型任務可拆分為多個小型任務,以便在這些服務器上并行
運行。從這個角度來看,我們實際上可將網格視為僅僅是一臺虛擬服務器。網格還要求應用程序符合網格軟件的接口標準。
公共計算和 SAAS(軟件即服務)可以看作是早期云計算的兩種形式。現在云計算不只包括這兩種形式,還包括網絡服務、平臺即服務以及 MSP(管理服務提供商)等其他形式。
到了上世紀 90 年代,虛擬化的概念已從虛擬服務器擴展到更高層次的抽象,首先是虛擬平臺,而后又是虛擬應用程序。公用計算將集群作為虛擬平臺,采用可計量的業務模型進
行計算。最近,SAAS(軟件即服務)將虛擬化提升到了應用程序的層次,它所使用的業務模型不是按消耗的資源收費,而是根據向訂戶提供的應用程序的價值收費。這種類型服務通
過瀏覽器把程序傳給成千上萬的用戶。在用戶眼中看來,這樣會省去在服務器和軟件授權上的開支;從供應商角度來看,這樣只需要維持一個程序就夠了,這樣能夠減少成本。
Salesforce.com 是迄今為止這類服務最為出名的公司。SAAS 在人力資源管理程序比較常用。Google Apps 和 Zoho Office也是類似的服務。
云計算的概念源于公用計算和 SAAS 概念。“云”的優勢在于其基礎架構管理,虛擬化技術的日益成熟和不斷進步為這種管理提供了強大的支持,使“云”能夠通過自動部署、
重新構建映像 、重新均衡工作負載、監控并系統地處理變更請求,以便管理并更好地利用底層資源。
云計算面臨的挑戰
作為一項有望大幅降低成本的新興技術,云計算正日益受到一系列眾多公司的追捧。但是同時也隨之產生了一系列新的挑戰性問題。
首先,云計算中一個跨領域問題就是供應商要在功能和開發代價上作權衡。目前,早期的云計算提供的 API 比傳統的數據庫系統的限制多得多。他們只提供一個極小化的查詢
語言和有限的一致性保證。這給開發帶來更多的編程負擔,但是允許服務供應商提供更多的預期服務和服務級別協議,這對于一個功能完備的 SQL 數據庫也是很難達到的。在現有的
云計算基礎上,為了實現只做較少改動而使其功能更完備,我們需要更多的經驗和做更多的工作。
其次,易管理性在云計算中極其重要,這也帶來新的挑戰。和傳統的系統相比,受有限的人工干涉、工作負載變化幅度大和多種多樣的共享設備這三個因素的影響,云計算中管
理更加復雜。大多數情況下,沒有協助基于云的應用開發的數據庫管理員和系統管理員。甚至是單一用戶的負載隨時間都會發生大幅度的變化。對于一個偶爾會用到比平常高出幾個數
量級的資源的客戶來說,云計算的可伸縮供應是經濟的。本來混合負載就很難調優,但在這種情況下調優是不可避免的。同時,服務調優主要依賴共享設備的共享方式。例如 Amazon
公司的 EC2 用硬件級別上的虛擬機作為編程的接口。而 salesforce.com 公司則在一個數據庫系統上實現了具有多種獨立模式的“多租戶”虛擬機。其他的虛擬解決方案也是可行的。在
負載之上平臺之下,每一種方案都有不同的可見性和不同的控制彼此的能力。這些變化需要我們重新考慮跨層資源管理的傳統角色和職責。
上世紀 90 年代末,研究學者們開始研究自我管理技術。對易管理性的需求加速了這一技術的發展。云計算系統需要自適應的在線技術,反過來系統中新的架構和 API(包括區別
與傳統 SQL 語言和事務語義的靈活性)又促進了顛覆性的自適應方法的發展。
接著,云計算的龐大規模同樣帶來了新的挑戰。現有的 SQL 數據庫不能簡單地處理放置在云中的成千上萬的數據。在存儲方面,是用不同的事務實現技術,還是用不同的存儲技
術,或者二者都用來解決一些限制性問題還不確定。在這個問題上,目前在數據庫領域內有很多提議。現有的云計算已經開始探索一些簡單的實用性方法,但是我們仍需要做更多的工
作來融合現有的云計算機制文化中的好思想。就查詢處理和優化而言,如果搜索一個涉及到數千條處理的計劃空間需要花費很長時間,那么這是不可行的,所以需要在計劃空間或搜索
上設限。最后如何在云環境中編程還尚不清楚。我們需要更多的了解云計算的現實問題(包括性能限制和應用需求)來幫助設計。
此外,在云基礎架構中,物理資源共享帶來新的數據安全和隱私危機。他們不能再依靠機器或網絡的物理邊界得到保障。因此云計算為合成和加速這方面現有的工作提供了豐富
的機遇。要想成功關鍵在于我們能否準確瞄準云的應用場景以及能否準確把握服務供應商和顧客的實際動向。
最后,隨著云計算越來越流行,預計會有新的應用場景出現,也會帶來新的挑戰。例如,我們預測會出現一些需要預載大量數據集(像股票價格、天氣歷史數據以及網上檢索等)
的特殊服務。從私有和公共環境中獲取有用信息引起人們越來越多的注意。這樣就產生新的問題:我們需要從結構化、半結構化或非結構的異構數據中提取出有用信息。同時,這也表
明跨“云”服務必然會出現。在科學數據網格計算中,這個問題已經很普及。即便在一門學科中,也會需要大量位于不同地理位置的共享數據服務器。大體上,在大多數企業亦是如此。
而聯合云架構不會降低只會增加問題的難度。
云計算實例分析
本文最后對引領云計算潮流的兩大公司 Google 和 IBM 的云計算平臺做一個簡單的分析。
短時間內 Google 在云計算上的地位依然不可撼動,其開放式的平臺體現了云計算模式的精髓。Google 的云計算服務所需要的絕大部分基礎軟件都是開源的,這意味著用戶可以自
由的得到那些代碼并修改。從 2003 年開始,Google 連續幾年在計算機系統研究領域的最頂級會議與雜志上發表論文,揭示其內部的分布式數據處理方法,向外界展示其使用的云計算
核心技術。Google 的云計算技術實際上是針對 Google 特定的網絡應用程序而定制的。針對內部網絡數據規模超大的特點,Google 提出了一整套基于分布式并行集群方式的基礎架構,利用軟件的能力來處理集群中經常發生的節點失效問題。Google 使用的云計算基礎架構模式包括四個相互獨立又緊密結合在一起的系統。包括 Google 建立在集群之上的文件系統Google File System,針對Google應用程序的特點提出的 Map/Reduce 模式(映射/化簡編程模式),分布式的鎖機制 Chubby 以及 Google 開發的模型簡化的大規模分布式數據庫BigTable。
GFS(Google文件系統)是為 Google 應用程序本身而設計的。一個GFS集群包含一個主服務器和多個塊服務器,可以被多個客戶端訪問。
為了讓不熟悉分布式系統人們能夠有機會將應用程序建立在大規模的集群基礎之上,Google 還設計并實現了一套大規模數據處理的編程規范 Map/Reduce 系統。這樣,非分布式
專業的程序編寫人員也能夠為大規模的集群編寫應用程序而不用去顧慮集群的可靠性、可擴展性等問題。應用程序編寫人員只需要將精力放在應用程序本身,而關于集群的處理問題則
交由平臺來處理。Map/Reduce 通過把對數據集的大規模操作分發給網絡上的每個節點實現可靠性;每個節點會周期性的把完成的工作和狀態的更新報告回來。如果一個節點保持沉默
超過一個預設的時間間隔,主節點(類同 Google File System中的主服務器)記錄下這個節點狀態為死亡,并把分配給這個節點的數據發到別的節點。每個操作使用命名文件的原子操
作以確保不會發生并行線程間的沖突;當文件被改名的時候,系統可能會把他們復制到任務名以外的另一個名字上去。
第三個云計算平臺就是為了處理 Google 內部大量的格式化以及半格式化數據,Google 構建了弱一致性要求的大規模數據庫系統 BigTable。除了這三個部分之外,Google還建立了分布式程序的調度器、分布式的鎖服務等一系列相關的云計算服務平臺。
圖 2. 云計算和新企業數據中心
藍色巨人IBM對此也投下了重注,并為此命名為“藍云”計劃。IBM 具有發展云計算業務的一切有利因素:應用服務器、存儲、管理軟件、中間件等等,因此IBM自然不會放過這樣
一個成名機會。最近又推出了“新企業數據中心”的設想,該設想結合了以 Web 為中心的云計算模型和當前的企業數據中心的優勢。中國云計算網的一篇文章給出了“新企業數據中心”
模型(如圖 2 所示)以及其基礎架構服務框架(如圖 3 所示)。
新企業數據中心將是虛擬化、高效管理的中心,它將使用以 Web 為中心的云所采用的某些工具和技術,并進行一般化以便被范圍更廣的客戶采用,另外還進行增強以支持安全的
事務性工作負載。通過高效且共享的基礎架構,企業能夠對新的業務需求迅速做出反應,實時解析大量信息,而且還能根據實時數據做出明智的業務決策。新企業數據中心是一種演進
的新模型,能提供有助于使 IT 和業務目標保持一致的高效且動態的新方法。如圖 3 所示,從高級別的架構角度來看,新企業數據中心的基礎架構服務在邏輯上可分為不同的層次。物
理硬件層已虛擬化,以便能提供靈活且適應性強的平臺,從而提高資源利用率。接下來的兩層是虛擬化環境層和管理層,它們是新企業數據中心基礎架構服務的關鍵。通過將這兩層結
合起來,可以確保數據中心內的資源得到有效的管理,并可以快速部署和配置。另外,新企業數據中心旨在處理混合模式的工作負載。
圖 3. 新企業數據中心的基礎架構服務框架
參考文獻:
[1] The Claremont Database Research meeting :http://db.cs.berkeley.edu/claremont/
[2] IBM:http://www.ibm.com/developerworks/websphere/zones/hipods/
[3] 計世網:http://www.ccw.com.cn
[4] 中國云計算網:http://www.cloudcomputing-china.cn