摘要:云計算是繼網(wǎng)格計算之后興起的新型分布式計算模型,它為商業(yè)應(yīng)用提供了一種新的模式。文章簡述了云計算的定義、體系結(jié)構(gòu)、發(fā)展現(xiàn)狀,分析了當(dāng)前云計算中存在的問題和云計算的發(fā)展趨勢。
關(guān)鍵詞:云計算 云服務(wù) 虛擬化
0 引言
隨著計算機在人們生產(chǎn)生活中的廣泛應(yīng)用,人們對計算能力的要求越來越高,迫使計算機的存儲容量和運算速度不斷地提高。雖然現(xiàn)有的機架式和刀片服務(wù)器可以解決高性能計算的問題,但是它主要針對大型客戶,并且造價昂貴,所以其適用范圍有限;網(wǎng)格計算提供了一種造價低廉且數(shù)據(jù)處理能力較強的計算模型,但網(wǎng)格計算是專門針對復(fù)雜科學(xué)計算的計算模型[1],因此網(wǎng)格計算通用性不是很強。由于以上原因,使高性能服務(wù)器和網(wǎng)格計算這兩種方法都不能作為廣泛適用且廉價的高性能計算的獲取途徑。云計算的興起為以上問題提供了解決方法,云計算可以給所有用戶提供隨時隨地按需獲取的存儲空間和計算能力。
云計算是繼網(wǎng)格計算之后興起的新型分布式計算模型,它利用分布式技術(shù)建造大型數(shù)據(jù)中心或者超級計算機,并將這些數(shù)據(jù)中心和超級計算機中的所有軟硬件資源虛擬化以服務(wù)的形式放在遠程服務(wù)器上,形成云服務(wù),用戶以免費或者按需租用的方式獲取服務(wù),這些由云營商提供的云服務(wù)就像天邊的云彩,用戶在需要使用時把它拿來用,平常就放在云上,資源和服務(wù)的管理由服務(wù)的提供商負責(zé)。在這種模式下,所有用戶不用考慮任何軟硬件的配置和維護問題,用戶端只需用瀏覽器和網(wǎng)絡(luò),就可以隨時隨地按需使用云計算提供的各種應(yīng)用軟件、超級計算能力、海量存儲空間,這樣就降低了用戶配置軟硬件的費用,提高了用戶使用軟硬件資源的靈活性、廣泛性。云計算的興起為商業(yè)應(yīng)用提供了一種新的模式,已經(jīng)成為一個新的研究熱點。
1 云計算定義
1.1 云計算定義
云計算現(xiàn)在還沒有統(tǒng)一的定義,各個公司根據(jù)所處的領(lǐng)域提出了不同的云計算概念,下面給出幾個典型的定義。
IBM云計算的定義:云計算是一個虛擬化的計算機資源池。它可以托管多種不同的工作負載,包括成批的后端作業(yè)和面向用戶的交互式應(yīng)用程序;通過快速提供虛擬機器或物理機器,迅速部署和增加工作負載;支持冗余、自我恢復(fù)且具有高可擴展性的編程模型,以使工作負載能夠從多種不可避免的硬件軟件故障中進行恢復(fù);實時監(jiān)控資源使用情況,在需要時重新平衡資源分配[2]。
維基百科定義:云計算是分布式計算技術(shù)的一種,其最基本的概念,是通過網(wǎng)絡(luò)將龐大的計算處理程序自動分拆成無數(shù)個較小的子程序,再交由多部服務(wù)器所組成的龐大系統(tǒng)經(jīng)搜尋、計算分析之后將處理結(jié)果回傳給用戶。過這項技術(shù),網(wǎng)絡(luò)服務(wù)提供者可以在數(shù)秒之內(nèi),達成處理數(shù)以千萬計甚至以億計的信息,達到和“超級計算機”同樣強大效能的網(wǎng)絡(luò)服務(wù)[3]。
Google認為云計算就是軟件服務(wù),Amazon認為云計算就是平臺服務(wù),微軟認為云計算是軟件和服務(wù)。
綜上云計算的定義,可知云計算是分布式計算、并行計算和網(wǎng)格計算的發(fā)展,或者說是這些計算機科學(xué)概念的商業(yè)實現(xiàn),它是把計算機資源虛擬化成具有層次的計算機資源池,并將這些資源按層以服務(wù)的形式提供給用戶,用戶不用關(guān)心計算機資源的具體情況,只需按需獲取服務(wù)。
1.2 云計算與網(wǎng)格計算的異同
云計算和網(wǎng)格計算既有相似點,又相互有區(qū)別。
云計算和網(wǎng)格計算的相同點:從云計算和網(wǎng)格的定義上看二者都是將各種資源看成一個虛擬的資源池,然后向外提供服務(wù);從發(fā)展上來看兩者都是分布式計算的進一步發(fā)展,都為試圖為用戶提供高性能的計算能力,都是要提高計算機資源的使用效率,降低用戶成本。
云計算和網(wǎng)格計算區(qū)別:從定義上看云計算允許用戶通過互聯(lián)網(wǎng)訪問云計算提供的各種計算機資源,狹義網(wǎng)格只向用戶提供高性能計算能力;從發(fā)展上來看云計算是網(wǎng)格計算的進一步發(fā)展,云計算既可以支持網(wǎng)格程序又可以支持非網(wǎng)格程序;從用戶的角度來看云計算可以滿足所有用戶對計算能力的需求,網(wǎng)格計算主要針對科學(xué)計算支持的用戶需求范圍有限;從資源的分配方式來看云計算是所有資源作為一個整體進行統(tǒng)一分配,實現(xiàn)資源的自動分配,網(wǎng)格在分配資源時只能以節(jié)點為單位分配;從目標上看云計算把計算看作一種公共事業(yè),網(wǎng)格將分布在不同地理位置的計算機連接起來解決一個共同的問題。
2 云計算體系結(jié)構(gòu)
云計算由云和云端兩個部分構(gòu)成,聚集資源和服務(wù)構(gòu)成云,云端即用戶端。云中包含大量的計算資源、存儲資源、軟件資源和服務(wù),所有能夠使用網(wǎng)絡(luò)的用戶都可以通過Internet使用云提供的各種資源和服務(wù)。客戶端不再需要配置昂貴的硬件設(shè)備,不再需要購買和安裝大量的應(yīng)用軟件,僅僅在需要時從云中免費或者租用相應(yīng)的服務(wù),這樣就簡化了客戶端的應(yīng)用復(fù)雜性,降低了客戶端的成本。云計算體系結(jié)構(gòu)如圖1所示,依據(jù)云計算提供的服務(wù)所在的層次將云計算可分為基礎(chǔ)設(shè)施服務(wù)(Infrastructure-as-a-Service,IaaS)、平臺服務(wù)(Platform-as-a-S
ervice,PaaS)、應(yīng)用程序服務(wù)(Software-as-a-Service,SaaS),數(shù)據(jù)存儲服務(wù)(data-Storage-as-a-Service,dSaaS)。
2.1 虛擬層 這一層通過虛擬化計算資源、存儲資源和軟件資源給上層應(yīng)用提供統(tǒng)一訪問接口,提高上層使用的敏捷性和靈活性,它不需要上層應(yīng)用詳細了解基礎(chǔ)物理資源,同時為上層提供了一個優(yōu)勢分享、可管理和隔離的云環(huán)境。
2.2 數(shù)據(jù)存儲服務(wù)層 其作用是將存儲作為一項服務(wù),為互操作和外部應(yīng)用程序提供一個統(tǒng)一的編程接口。
2.3 基礎(chǔ)設(shè)施服務(wù)層 這一層是將基礎(chǔ)設(shè)作為服務(wù)出租,只向用戶提供虛擬計算機,而沒有應(yīng)用軟件棧。它具有在有特定服務(wù)質(zhì)量約束的情況下提供計算能力或者數(shù)據(jù)存儲能力,并能執(zhí)行任意類型的操作系統(tǒng)和應(yīng)用軟件。用戶能夠從虛擬計算機中獲取滿足要求的計算能力,開發(fā)型用戶可以在基礎(chǔ)設(shè)施層上開發(fā)云計算應(yīng)用程序。
2.4 平臺服務(wù)層 類似于基礎(chǔ)設(shè)施服務(wù),但是它包括操作系統(tǒng)和圍繞特定應(yīng)用的必需的服務(wù),即平臺服務(wù)層是在基礎(chǔ)設(shè)施服務(wù)層上加了一個用于定制的軟件棧。平臺服務(wù)層也可描述為一個有特定的操作系統(tǒng)和應(yīng)用程序集的虛擬平臺,它包括一個或多個在一組物理服務(wù)器上虛擬而成的服務(wù)器、操作系統(tǒng)以及特定的應(yīng)用程序。
2.5 軟件服務(wù)層 這一層通過瀏覽器把應(yīng)用程序服務(wù)提供給所有的用戶。從用戶的角度看來,這樣可以降低或者省去配置高級服務(wù)器和購買軟件的費用,從供應(yīng)商的角度看,這種模式只需要在云計算中維持一個程序就可以滿足所有用戶使用這個軟件。利用軟件服務(wù),用戶就沒有必要購買軟件,只需按照自己的需要從Internet上租用軟件。軟件服務(wù)提供兩種應(yīng)用方式,一種是提供在Internet 上使用遠程執(zhí)行的軟件,這種軟件既可以是可以本地使用被定義為Web服務(wù)的軟件,也可以是通過Web瀏覽器遠程調(diào)用的不可以本地使用的應(yīng)用軟件;另一種是可以在遠程執(zhí)行應(yīng)用程序,通常需要依賴于一個應(yīng)用服務(wù)器來公布所提供的服務(wù)。
3 云計算研究現(xiàn)狀
云計算是新興的技術(shù),國外著名的IT公司谷歌、IBM 、亞馬遜、微軟、Sun 、EMC、HP、Oracle等都投入巨資進行云計算的研究和產(chǎn)品開發(fā)。目前比較著名的云計算有:谷歌的云計算平臺和云計算應(yīng)用程序、IBM云計算、微軟的“軟件+服務(wù)”和亞馬遜的彈性云計算。與國外相比,中國的云計算發(fā)展速度相對比較緩慢,現(xiàn)在清華大學(xué)正在與谷歌合作把云計算課程推廣到國內(nèi)更多高校,共同推動“云計算”在中國的普及,國內(nèi)的IT公司正在逐步展開云計算的研究與產(chǎn)品開發(fā)。
以下是一些研究云計算的公司:
3.1 谷歌 谷歌從2007年宣布云計算計劃開始就和IBM公司合作把美國的卡內(nèi)基美隆大學(xué)、麻省理工學(xué)院、史丹佛大學(xué)、加州大學(xué)柏克萊分校及馬里蘭大學(xué)等融入到云計算的研究和開發(fā)中,并于2008年1月在臺灣啟動了“云計算學(xué)術(shù)計劃”,谷歌現(xiàn)在正互聯(lián)網(wǎng)上宣傳和推廣其云計算產(chǎn)品。谷歌是最早提出云計算的公司,也是云計算研究最活躍的公司之一。谷歌現(xiàn)有兩個最典型的云計算應(yīng)用,一個是云計算平臺Google App Engine。它是一個專為開發(fā)者而設(shè)計的服務(wù),開發(fā)者可以將自己編寫的在線應(yīng)用程序運行在Google的資源上。通過它可以在Google的可伸縮性極佳的架構(gòu)上部署Web應(yīng)用程序。App Engine為可通過Internet引用的Python應(yīng)用程序提供一個沙盒。除了支持用戶認證、鏡像操作和電子郵件發(fā)送外,App Engine 還提供了Python API,用于持久地存儲和管理數(shù)據(jù)。Web應(yīng)用程序運行時所在的沙盒會限制對底層操作系統(tǒng)的訪問,這不會影響到App Engine支持有用的Web服務(wù)的構(gòu)造。另一個是云計算應(yīng)用程序Google Apps,它是Google推出的在線應(yīng)用服務(wù),中文名稱是企業(yè)應(yīng)用套件,包括字處理、電子文檔處理、Gmail郵件服務(wù)、Gtalk及時通訊服務(wù)、語音聊天服務(wù)以及在線日歷服務(wù)等。其功能相當(dāng)于微軟的Office辦公軟件,區(qū)別在于微軟的Office辦公軟件要每個用戶都必須在自己的計算機上安裝整套軟件,而Google Apps只需通過一個標準的Web瀏覽器用域名申請注冊就可以獲取全套服務(wù),這些服務(wù)都是由Google托管的,用戶不需要配置安裝任何軟硬件,并且使用費用遠遠低于自己配置硬件和購買軟件授權(quán)的費用。
3.2 IBM IBM是最早進行云計算研究和實施的公司之一, IBM推出“藍云”(Blue Cloud)計劃,它是一系列基于開放標準和開源軟件的云計算產(chǎn)品,能夠把計算機連接起來提供如:Mashups、開放協(xié)作、社會網(wǎng)絡(luò)和移動商務(wù)等 Web2.0 應(yīng)用。2008年5月,IBM建立在無錫科教產(chǎn)業(yè)園第一個云計算中心開始運營,該中心將為中國新興軟件公司提供接入一個虛擬計算環(huán)境的能力,使其利用分配的資源來設(shè)計、開發(fā)和測試軟件產(chǎn)品。2008年8月IBM投資3.6億美元在美國北卡羅來納州建立云計算數(shù)據(jù)中心,IBM將該數(shù)據(jù)中心稱為史上最復(fù)雜的數(shù)據(jù)中心,其數(shù)據(jù)中心的體系結(jié)構(gòu)由基礎(chǔ)設(shè)施、管理平臺、虛擬機、應(yīng)用構(gòu)成。這些大型數(shù)據(jù)中心的建成極大的促進了云計算的發(fā)展。
3.3 微軟 微軟公司正在開發(fā)完全脫離桌面的互聯(lián)網(wǎng)操作系統(tǒng),其目的是為了大規(guī)模應(yīng)用云計算技術(shù)。微軟已經(jīng)發(fā)布了Live Mesh,它是一個軟件和服務(wù)相結(jié)合的云計算平臺,允許用戶同步、共享、存儲和訪問文件和文件夾,并且支持移動設(shè)備和網(wǎng)絡(luò)云計算的項目。Live Mesh將計算機和其它設(shè)備通過互聯(lián)網(wǎng)整合到一起,允許個人和組織管理、訪問和共享他們的文件和應(yīng)用,無縫整合各種設(shè)備和互聯(lián)網(wǎng)。Live Mesh包括平臺、云服務(wù)、軟件和平臺體驗,其中平臺主要明確和構(gòu)建用戶的設(shè)備、數(shù)據(jù)、應(yīng)用和人之間的數(shù)字關(guān)系,開發(fā)者將獲得開放的數(shù)據(jù)模型和協(xié)議;云服務(wù)提供微軟數(shù)據(jù)中心的平臺;軟件允許本地應(yīng)用客戶端離線進行云計算的交互;平臺體驗將用戶設(shè)備、文件和應(yīng)用,以及社會化圖表通過Feed整合在一起。
3.4 亞馬遜 亞馬遜2007年向開發(fā)者開放了名為“彈性計算機云”的服務(wù),讓小軟件公司可以按需購買亞馬遜數(shù)據(jù)中心的處理能力。其代表產(chǎn)品是Amazon Elastic Compute Cloud(EC2)。在EC2中,可以指定一個特定的虛擬機器,然后將應(yīng)用程序部署到它上面,或者提供要在服務(wù)器上執(zhí)行的虛擬計算機鏡像。根據(jù)計算時間、存儲和網(wǎng)絡(luò)帶寬付費。Eucalyptus (Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems)是加利福尼亞大學(xué)為進行云計算研究而開發(fā)的項目,是Amazon EC2的一個開源實現(xiàn),它與商業(yè)服務(wù)接口兼容。除了以上典型的云計算的研究公司和產(chǎn)品以外,其它IT公司也在進行云計算的研究和產(chǎn)品開發(fā),限于文章篇幅,不能每個都詳細討論,在圖2列出了云計算各層的主要產(chǎn)品。
另外有一個值得關(guān)注的云計算產(chǎn)品是10gen,它是一個可下載開放源代碼包的云平臺,用戶可以用這個軟件包創(chuàng)建自己的私有云。10gen是類似于App Engine的一個軟件棧,它提供與App Engine類似的功能。通過10gen,可以使用Python以及JavaScript和Ruby編程語言開發(fā)應(yīng)用程序。
4 云計算發(fā)展趨勢
云計算是嶄新的技術(shù),是一個研究的熱點,雖然已經(jīng)有了一些云計算的產(chǎn)品,但是云計算還處在剛剛起步的階段,還遠遠沒有到達成熟的階段,面臨的主要問是:
4.1 云計算的安全性 云計算面臨的安全問題主要包括,用戶遠程登錄安全、快速數(shù)據(jù)加密、數(shù)據(jù)訪問安全、數(shù)據(jù)傳輸安全都是云計算研究的方向。
4.2 用戶數(shù)據(jù)保密 隨著云計算的發(fā)展和應(yīng)用的推廣,將會有越來越多的用戶使用云計算,大量用戶的數(shù)據(jù)都保存在數(shù)據(jù)中心,保護用戶的商業(yè)秘密數(shù)據(jù)和個人隱私,是云計算必須解決的問題。
4.3 云計算標準制定 云計算剛剛起步,各研究機構(gòu)和公司對云計算的認識和看法都不相同,現(xiàn)在每個公司都是依據(jù)自己對運計算的認識設(shè)計和開發(fā)自己的云計算產(chǎn)品。沒有統(tǒng)一的標準,眾多的云計算產(chǎn)品將造給用戶造成使用的煩雜、混亂,也會影響到云計算的進一步發(fā)展。
4.4 云計算服務(wù)的穩(wěn)定性 硬件故障、軟件故障和網(wǎng)絡(luò)故障都會造成云計算系統(tǒng)運行不穩(wěn)定,如何檢控和排除云計算中出現(xiàn)的各種故障是云計算一個重要的研究方向。
總之,云計算被視為計算機技術(shù)的下一次革命,它將給現(xiàn)在的工作方式和商業(yè)模式帶來巨大改變。云計算的發(fā)展很可能改變用戶使用計算機的習(xí)慣,未來的個人計算機可能僅僅用作網(wǎng)絡(luò)連接以及使用云計算服務(wù),那時網(wǎng)絡(luò)就是計算機將成為現(xiàn)實。云計算正處在初級階段,還需要走很長的路,還需要做很多的研究。
參考文獻:
[1]邵黨國.網(wǎng)格數(shù)據(jù)庫系統(tǒng)的設(shè)計及應(yīng)用研究.四川大學(xué),2008-03-06.
[2]Cloud Computing.Greg Boss、Padma Malladi、Dennis Qu
an等.http://www.ibm.com/developerworks/websphere/zones/hip
ods.
[3]Cloud computing. http://en.wikipedia.org/wiki/Cloud_comp
uting.
[4]Infrastructure as a service. http://en.wikipedia.org/wiki/Infrastructure_as_a_Service.
[5]Platform as a service. http://en.wikipedia.org/wiki/Platform_as_a_service.
[6]Software as a service. http://en.wikipedia.org/wiki/Software_as_a_service.