雲計算的架構

摘自《雲計算核心技術剖析

IT,身爲一個新興行業,在其發展歷程中向其他行業借鑑了一些先進的思想和理念,比如除了前面提到的從電力行業借鑑了公用事業這種商業模式和從豐田汽車流水線生產中總結出精益這套編程模式之外,還在軟件設計方面引入了架構這個在建築行業非常核心的概念。

架構,對軟件系統而言是極爲重要的。因爲它不僅定義了系統內部各個模塊之間是如何整合和協調的,同時也對其整體表現起着非常關鍵的作用。而云,作爲一個非常複雜的大型軟件系統,其中包含着許許多多的模塊和組件,所以如果能夠理出其架構的話,將會非常有益。

爲了讓大家對雲計算有更深入的理解,本章將會對雲的架構進行深入剖析。除了雲的架構之外,本章還將會對雲計算最主要和最常見的4種模式進行深入介紹。

雲的架構

在對雲計算進行了三年多的研究之後,我覺得雲計算雖然涉及了很多產品與技術,表面上看起來的確有點紛繁複雜,但是雲計算本身還是有跡可循和有理可依的,所以在個人理解的基礎上,我總結出了一套雲計算的架構,具體請看圖2-1。

這個雲架構共分爲服務和管理兩大部分。

在服務方面,主要以提供用戶基於雲的各種服務爲主,共包含3個層次。其一是Software as a Service(軟件即服務),簡稱SaaS,這層的作用是將應用主要以基於Web的方式提供給客戶;其二是Platform as a Service(平臺即服務),簡稱PaaS,這層的作用是將一個應用的開發和部署平臺作爲服務提供給用戶;其三是Infrastructure as a Service(基礎設施即服務),簡稱IaaS,這層的作用是將各種底層的計算(比如虛擬機)和存儲等資源作爲服務提供給用戶。從用戶角度而言,這3層服務是獨立的,因爲它們提供的服務是完全不同的,而且面向的用戶也不盡相同。但從技術角度而言,雲服務的這3層是有一定依賴關係的。比如,一個SaaS層的產品和服務不僅需要用到SaaS層本身的技術,而且還依賴PaaS層所提供的開發和部署平臺或者直接部署於IaaS層所提供的計算資源上,而PaaS層的產品和服務也很有可能構建於IaaS層服務之上。

enter image description here

在管理方面,主要以雲管理層爲主,它的功能是確保整個雲計算中心能夠安全、穩定地運行,並且能夠被有效管理。

接下來,將給大家詳細介紹每個層次,其中不僅涉及它們的歷史和相關產品,而且還會討論它們的優勢和採用的技術。

SaaS

SaaS是最常見的,也是最先出現的雲計算服務。通過SaaS這種模式,用戶只要接上網絡,通過瀏覽器就能直接使用在雲上運行的應用。SaaS雲供應商負責維護和管理雲中的軟硬件設施,同時以免費或者按需使用的方式向用戶收費,所以用戶不需要顧慮類似安裝、升級和防病毒等瑣事,並且免去初期高昂的硬件投入和軟件許可證費用的支出。

1. 歷史

SaaS的前身是ASP(Application Service Provider),其概念和思想與ASP相差不大。最早的ASP廠商有Salesforce.com和Netsuite,其後還有一批企業跟隨進來。這些廠商在創業時都主要專注於在線CRM(客戶關係管理)應用,但由於那時正值互聯網泡沫破裂的時候,而且當時ASP本身的技術也並不成熟,而且還缺少定製和集成等重要功能,再加上當時欠佳的網絡環境,所以ASP沒有受到市場的熱烈歡迎,從而導致大批相關廠商破產。但在2003年後,在Salesforce的帶領下,殘存的ASP企業喊出了SaaS這個口號,並隨着技術和商業這兩方面不斷成熟,Salesforce、WebEx和Zoho等國外SaaS企業得到了成功,而國內的企業(諸如用友、金算盤、金碟、阿里巴巴和八百客等)也加入到SaaS的浪潮中。

2. 相關產品

由於SaaS產品起步較早,而且開發成本低,所以在現在的市場上,SaaS產品不論是在數量還是在類別上都非常豐富。同時,也出現了多款經典產品,其中最具代表性的莫過於Google Apps、Salesforce CRM、Office Web Apps 和Zoho。

  • Google Apps。中文名爲“Google 企業應用套件”,它提供企業版Gmail、Google 日曆、Google 文檔和Google 協作平臺等多個在線辦公工具,而且價格低廉,使用方便,並且已經有超過兩百萬家企業購買了Google Apps服務。

  • Salesforce CRM。它是一款在線客戶管理工具,並在銷售、市場營銷、服務和合作伙伴這4個商業領域上提供完善的IT支持,還提供強大的定製和擴展機制,來讓用戶的業務更好地運行在Salesforce平臺上。這款產品常被業界視爲SaaS產品的“開山之作”。

  • Office Web Apps。它是微軟所開發的在線版Office,提供基於Office 2010技術的簡易版Word、Excel、PowerPoint及OneNote等功能。它屬於Windows Live的一部分,並與微軟的SkyDrive雲存儲服務有深度的整合,而且兼容Firefox、Safari和Chrome等非IE系列瀏覽器。和其他在線Office相比,它的最大優勢是,由於其本身屬於Office 2010的一部分,所以在與Office文檔的兼容性方面遠勝其他在線Office服務。

  • Zoho。Zoho是AdventNet公司開發的一款在線辦公套件。在功能方面,它絕對是現在業界最全面的,有郵件、CRM、項目管理、Wiki、在線會議、論壇和人力資源管理等幾十個在線工具供用戶選擇。同時包括美國通用電氣在內的多家大中型企業已經開始在其內部引入Zoho的在線服務。Zoho在國內的代理商爲百會。

3. 優勢

雖然和傳統桌面軟件相比,現有的SaaS服務在功能方面還稍遜一籌,但是在其他方面還是具有一定的優勢的,下面是其中的4個方面。

  • 使用簡單。在任何時候或者任何地點,只要接上網絡,用戶就能訪問這個SaaS服務,而且無需安裝、升級和維護。

  • 支持公開協議。現有的SaaS服務在公開協議(比如HTML 4/HTML5)的支持方面都做得很好,用戶只需一個瀏覽器就能使用和訪問SaaS應用。這對用戶而言非常方便。

  • 安全保障。SaaS供應商需要提供一定的安全機制,不僅要使存儲在雲端的用戶數據處於絕對安全的境地,而且也要通過一定的安全機制(比如HTTPS等)來確保與用戶之間通信的安全。

  • 初始成本低。使用SaaS服務時,不僅無需在使用前購買昂貴的許可證,而且幾乎所有的SaaS供應商都允許免費試用。

4. 技術

由於SaaS層離普通用戶非常近,所以大家對SaaS層用到的大多數技術都耳熟能詳。下面列出了其中最主要的5種技術。

  • HTML。它是標準的Web頁面技術,現在主要以HTML 4爲主。但是即將推出的HTML5會在很多方面推動Web頁面的發展,比如視頻和本地存儲等。
    JavaScript。一種用於Web頁面的動態語言,通過JavaScript,能夠極大地豐富Web頁面的功能。最流行的JavaScript框架有jQuery和Prototype。

  • CSS。主要用於控制Web頁面的外觀,而且能使頁面的內容與其表現形式之間進行優雅地分離。

  • Flash。業界最常用的RIA(Rich Internet Applications,富因特網應用)技術,能夠在現階段提供HTML等技術所無法提供的基於Web的富應用,而且在用戶體驗方面也非常不錯。

  • Silverlight。來自微軟的RIA技術。雖然它現在的市場佔有率稍遜於Flash,但由於它可以使用C#來進行編程,所以對開發者非常友好。

由於通用且學習成本較低,大多數雲計算產品都會傾向於HTML、JavaScript和CSS這對黃金組合,但是在HTML5被大家廣泛接受之前,RIA技術在用戶體驗方面還是具有一定優勢的,所以Flash和Silverlight也將會有一定的用武之地,比如VMware vCloud就採用了基於Flash的Flex技術,而微軟的雲計算產品肯定會在今後大量使用Silverlight技術。

PaaS

通過PaaS這種模式,用戶可以在一個提供SDK(Software Development Kit,軟件開發工具包)、文檔、測試環境和部署環境等在內的開發平臺上非常方便地編寫和部署應用,而且不論是在部署還是在運行的時候,用戶都無需爲服務器、操作系統、網絡和存儲等資源的運維操心。 PaaS在整合率上非常驚人,比如一臺運行Google App Engine的服務器能夠支撐成千上萬個應用,也就是說,PaaS是非常經濟的。PaaS主要面對的用戶是開發人員。

1. 歷史

PaaS是雲服務這3層之中出現最晚的。業界第一個PaaS平臺誕生在2007年,是Salesforce的Force.com,通過這個平臺,不僅能使用Salesforce提供的完善的開發工具和框架來輕鬆地開發應用,而且能把應用直接部署到Salesforce的基礎設施上,從而能利用其強大的多租戶系統。接着,在2008年4月,Google推出了Google App Engine,從而將PaaS所支持的範圍從在線商業應用擴展到普通的Web應用,也使得越來越多的人開始熟悉和使用功能強大的PaaS服務。

2. 相關產品

和SaaS產品百花齊放相比,PaaS產品主要以少而精爲主,其中比較著名的產品有:Force.com、Google App Engine、Windows Azure Platform和Heroku。

  • Force.com。就像上面所說的那樣,Force.com是業界第一個PaaS平臺,它主要通過提供完善的開發環境和強健的基礎設施等來幫助企業和第三方供應商交付健壯的、可靠的和可伸縮的在線應用。還有,Force.com本身是基於Salesforce著名的多租戶架構的。

  • Google App Engine。Google App Engine提供Google的基礎設施來讓大家部署應用,還提供一整套開發工具和SDK來加速應用的開發,並提供大量免費額度來節省用戶的開支。

  • Windows Azure Platform。它是微軟推出的PaaS產品,運行在微軟數據中心的服務器和網絡基礎設施上,通過公共互聯網來對外提供服務。它由具有高擴展性的雲操作系統、數據存儲網絡和相關服務組成,而且服務都是通過物理或虛擬的Windows Server 2008實例提供的。還有,它附帶的Windows Azure SDK提供了一整套開發、部署和管理Windows Azure雲服務所需要的工具和API。

  • Heroku。它是一個用於部署Ruby On Rails應用的PaaS平臺,並且其底層基於Amazon EC2的IaaS服務,在Ruby程序員中有非常好的口碑。

3. 優勢

和現有的基於本地的開發和部署環境相比,PaaS平臺主要有下面這6方面的優勢。

  • 開發環境友好。通過提供SDK和IDE(Integrated Development Environment,集成開發環境)等工具來讓用戶不僅能在本地方便地進行應用的開發和測試,而且能進行遠程部署。

  • 服務豐富。PaaS平臺會以API的形式將各種各樣的服務提供給上層的應用。

  • 管理和監控精細。PaaS能夠提供應用層的管理和監控,比如能夠觀察應用運行的情況和具體數值[比如吞吐量(Throughput)和響應時間(Response Time)等]來更好地衡量應用的運行狀態,還能通過精確計量應用所消耗的資源來更好地計費。

  • 伸縮性強。PaaS平臺會自動調整資源來幫助運行於其上的應用更好地應對突發流量。

  • 多住戶(Multi-Tenant)機制。許多PaaS平臺都自帶多住戶機制,不僅能更經濟地支撐龐大的用戶規模,而且能提供一定的可定製性以滿足用戶的特殊需求。

  • 整合率高。PaaS平臺的整合率非常高,比如Google App Engine能在一臺服務器上承載成千上萬個應用。

4. 技術

與SaaS層所採用的技術不同的是,PaaS層的技術比較多樣,下面是常見的5種。

  • REST。通過REST(Representational State Transfer,表述性狀態轉移)技術,能夠非常方便和優雅地將中間件層所支撐的部分服務提供給調用者。

  • 多租戶。它能讓一個單獨的應用實例可以爲多個組織服務,而且能保持良好的隔離性和安全性。通過這種技術,能有效地降低應用的購置和維護成本。

  • 並行處理。爲了處理海量數據,需要利用龐大的x86集羣進行規模巨大的並行處理,Google的MapReduce是這方面的代表之作。

  • 應用服務器。在原有應用服務器的基礎上爲雲計算作了一定程度的優化,比如用於Google App Engine的Jetty應用服務器。

  • 分佈式緩存。通過這種技術,不僅能有效降低對後臺服務器的壓力,而且還能加快相應的反應速度。最著名的分佈式緩存的例子莫過於Memcached。

對於很多PaaS平臺,比如用於部署Ruby應用的Heroku雲平臺,應用服務器和分佈式緩存都是必備的, REST技術常用於對外的接口,多租戶技術則主要用於SaaS應用的後臺(比如用於支撐Salesforce的CRM等應用的Force.com多租戶內核),而並行處理技術常被作爲單獨的服務推出(比如Amazon的Elastic MapReduce)。

IaaS

通過IaaS這種模式,用戶可以從供應商那裏獲得他所需要的計算或者存儲等資源來裝載相關應用,並只需爲其所租用的那部分資源付費,而這些煩瑣的管理工作則交給IaaS供應商來負責。

1. 歷史
和SaaS一樣,類似IaaS的想法其實已經出現很久了,比如過去的IDC(Internet Data Center,互聯網數據中心)和VPS(Virtual Private Server,虛擬專用服務器)等,但由於技術、性能、價格和使用等方面的缺失,這些服務並沒有被大中型企業廣泛採用。但在2006年年底,Amazon 發佈了EC2(Elastic Compute Cloud,靈活計算雲)這個IaaS雲服務。由於EC2在技術和性能等多方面的優勢,這類技術終於被業界廣泛認可和接受,其中就包括部分大型企業,比如著名的紐約時報。

2. 相關產品
最具代表性的IaaS產品有:Amazon EC2、IBM Blue Cloud、Cisco UCS和Joyent。

  • Amazon EC2。EC2主要以提供不同規格的計算資源(也就是虛擬機)爲主。它基於著名的開源虛擬化技術Xen。通過Amazon的各種優化和創新, EC2不論在性能上還是在穩定性上都已經滿足企業級的需求。而且它還提供完善的API和Web管理界面來方便用戶使用。

  • IBM Blue Cloud。“藍雲”解決方案是由IBM雲計算中心開發的業界第一個,同時也是在技術上比較領先的企業級雲計算解決方案。該解決方案可以對企業現有的基礎架構進行整合,通過虛擬化技術和自動化管理技術來構建企業自己的雲計算中心,並實現對企業硬件資源和軟件資源的統一管理、統一分配、統一部署、統一監控和統一備份,也打破了應用對資源的獨佔,從而幫助企業能享受到雲計算所帶來的諸多優越性。

  • Cisco UCS。它是下一代數據中心平臺,在一個緊密結合的系統中整合了計算、網絡、存儲與虛擬化功能。該系統包含一個低延時、無丟包和支持萬兆以太網的統一網絡陣列以及多臺企業級x86架構刀片服務器等設備,並在一個統一的管理域中管理所有資源。用戶可以通過在UCS上安裝VMWare vSphere來支撐多達幾千臺虛擬機的運行。通過Cisco UCS,能夠讓企業快速在本地數據中心搭建基於虛擬化技術的雲環境。

  • Joyent。它提供基於Open Solaris技術的IaaS服務。其IaaS服務中最核心的是Joyent SmartMachine。與大多數的IaaS服務不同的是,它並不是將底層硬件按照預計的額度直接分配給虛擬機,而是維護了一個大的資源池,讓虛擬機上層的應用直接調用資源,並且這個資源池也有公平調度的功能,這樣做的好處是優化資源的調配,並且易於應對流量突發情況,同時使用人員也無需過多關注操作系統級管理和運維。

3. 優勢

與傳統的企業數據中心相比,IaaS服務在很多方面都存在一定的優勢,下面是最明顯的5個。
- 免維護。主要的維護工作都由IaaS雲供應商負責,所以用戶不必操心。
- 非常經濟。首先免去了用戶前期的硬件購置成本,而且由於IaaS雲大都採用虛擬化技術,所以應用和服務器的整合率普遍在10(也就是一臺服務器運行10個應用)以上,這樣能有效降低使用成本。
- 開放標準。雖然很多IaaS平臺都存在一定的私有功能,但是由於OVF等應用發佈協議的誕生,IaaS在跨平臺方面穩步前進,這樣應用能在多個IaaS雲上靈活地遷移,而不會被固定在某個企業數據中心內。
- 支持的應用。因爲IaaS主要是提供虛擬機,而且普通的虛擬機能支持多種操作系統,所以IaaS所支持應用的範圍非常廣泛。
- 伸縮性強。IaaS雲只需幾分鐘就能給用戶提供一個新的計算資源,而傳統的企業數據中心則往往需要幾周時間,並且計算資源可以根據用戶需求來調整其資源的大小。

4. 技術

IaaS所採用的技術都是一些比較底層的,其中有4種技術是比較常用的。

  • 虛擬化。也可以將它理解爲基礎設施層的“多租戶”。因爲通過虛擬化技術,能夠在一個物理服務器上生成多個虛擬機,並且能在這些虛擬機之間實現全面的隔離,這樣不僅能降低服務器的購置成本,而且還能降低服務器的運維成本。成熟的x86虛擬化技術有VMware的ESX和開源的Xen。

  • 分佈式存儲。爲了承載海量的數據,同時也要保證這些數據的可管理性,所以需要一整套分佈式存儲系統。在這方面,Google的GFS是典範之作。

  • 關係型數據庫。基本上是在原有的關係型數據庫的基礎上作了擴展和管理等方面的優化,使其在雲中更適應。

  • NoSQL。爲了滿足一些關係數據庫所無法滿足的目標,比如支撐海量數據等,一些公司特地設計一批不是基於關係模型的數據庫,比如Google的BigTable和Facebook的Cassandra等。

現在大多數的IaaS服務都是基於Xen的,比如Amazon的EC2等,但VMware也推出了基於ESX技術的vCloud,同時業界也有幾個基於關係型數據庫的雲服務,比如Amazon的RDS(Relational Database Service,關係型數據庫服務)和Windows Azure SDS(SQL Data Services,SQL數據服務)等。關於分佈式存儲和NoSQL,它們已經被廣泛用於雲平臺的後端,比如Google App Engine的Datastore就是基於BigTable和GFS這兩個技術,而Amazon推出的Simple DB則基於NoSQL技術。

雲管理層

雖然和前面雲服務的3層相比,熟悉雲管理層的人非常少,但是它確實是雲最核心的部分,就好像一個公司離不開其董事會的管理一樣。與過去的數據中心相比,雲最大的優勢在於雲管理的優越性。雲管理層也是前面3層雲服務的基礎,併爲這3層提供多種管理和維護等方面的功能和技術。如圖2-2所示,雲管理層共有9個模塊,這9個模塊可分爲3層,它們分別是用戶層、機制層和檢測層。

enter image description here

1. 用戶層

顧名思義,這層主要面向使用雲的用戶,並通過多種功能來更好地爲用戶服務,共包括4個模塊:用戶管理、客戶支持、服務管理和計費管理。

  • 用戶管理
    對於任何系統而言,對於用戶的管理都是必需的,雲也是如此。雲方面的用戶管理主要有3種功能。其一是賬號管理,包括對用戶身份及其訪問權限進行有效地管理,還包括對用戶組的管理;其二是單點登錄,英文爲“Single Sign On”,其意義是在多個應用系統中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統,這個機制可以極大地方便用戶在雲服務之間進行切換;其三是配置管理,對與用戶相關的配置信息進行記錄、管理和跟蹤,配置信息包括虛擬機的部署、配置和應用的設置信息等。

  • 客戶支持
    好的用戶體驗對於雲而言也是非常關鍵的,所以幫助用戶解決疑難問題的客戶支持是必需的,並且需要建設一整套完善的客戶支持系統,以確保問題能按照其嚴重程度或者優先級來依次進行解決,而不是一視同仁。這樣,能提升客戶支持的效率和效果。

  • 計費管理
    利用底層監控系統所採集的數據來對每個用戶所使用的資源(比如所消耗CPU的時間和網絡帶寬等)和服務(比如調用某個付費API的次數)進行統計,來準確地向用戶索取費用,並提供完善和詳細的報表。

  • 服務管理
    大多數雲都在一定程度上遵守SOA(Service-Oriented Architecture,面向服務的架構)的設計規範。SOA的意思是將應用不同的功能拆分爲多個服務,並通過定義良好的接口和契約來將這些服務連接起來,這樣做的好處是能使整個系統鬆耦合,從而使整個系統能夠通過不斷演化來更好地爲客戶服務。而一個普通的雲也同樣由許許多多的服務組成,比如部署虛擬機的服務、啓動或者關閉虛擬機的服務等,而管理好這些服務對於雲而言是非常關鍵的。服務管理主要有下面這5個功能。

  • 管理接口。提供完善的關於服務的Web管理界面和API接口。

  • 自定義服務。能讓用戶對服務進行自定義和擴展。

  • 服務調度。配備強健的機制來負責服務的調度,以使服務能在合理的時間內被系統調用和處理。

  • 監控服務。利用底層的監控系統來觀測服務實際的運行情況。

  • 流程管理。提供一個工具來讓用戶將多個服務整合爲一個流程,並對它進行管理以提升運行效率。

2. 機制層

這層主要提供各種用於管理雲的機制。通過這些機制,能讓雲計算中心內部的管理更自動化、更安全和更環保。和用戶層一樣,該層也包括4個模塊:運維管理、資源管理、安全管理和容災支持。

  • 運維管理
    雲的運行是否出色,往往取決於其運維繫統的強健和自動化程度。而和運維管理相關的功能主要包括3個方面。首先是自動維護:運維操作應儘可能地專業和自動化,從而降低雲計算中心的運維成本。其次是能源管理:它包括自動關閉閒置的資源,根據負載來調節CPU的頻率以降低功耗並提供關於數據中心整體功耗的統計圖與機房溫度的分佈圖等來提升能源的管理,並相應地降低浪費。還有就是事件監控:它是通過對在數據中心發生的各項事件進行監控,以確保在雲中發生的任何異常事件都會被管理系統捕捉到。

  • 資源管理
    這個模塊和物理節點的管理相關,比如服務器、存儲設備和網絡設備等,它涉及下面這3個功能。其一是資源池:通過使用資源池這種資源抽象方法,能將具有龐大數量的物理資源集中到一個虛擬池中,以便於管理。其二是自動部署:也就是將資源從創建到使用的整個流程自動化。其三是資源調度:它將不僅能更好地利用系統資源,而且能自動調整雲中資源來幫助運行於其上的應用更好地應對突發流量,從而起到負載均衡的作用。

  • 安全管理
    安全管理是對數據、應用和賬號等IT資源採取全面保護,使其免受犯罪分子和惡意程序的侵害,並保證雲基礎設施及其提供的資源能被合法地訪問和使用。主要包括下面這7種機制。

  • 訪問授權。爲多個服務提供集中的訪問控制,以確保應用和數據只能被有授權的用戶訪問。

  • 安全策略。實現基於角色或者規則的一整套安全策略,而且還允許系統能模擬策略發生變更的情況以提升安全策略的健壯性。

  • 安全審計。對安全相關的事件進行全面審計,以檢測是不是存在任何隱患。

  • 物理安全。根據職責限定每個雲管理人員不同的權限,比如門禁等。

  • 網絡隔離。使用***(Virtual Private Network,虛擬專用網絡)、SSL(Secure Sockets Layer,安全套接層)和VLAN(Virtual Local Area Network,虛擬局域網)等技術來確保網絡的隔離和安全。

  • 數據加密。這個機制能確保即使數據被竊取,也不會被非法分子利用。相關的機制有:對稱加密和公鑰加密等。

  • 數據備份。由於數據完整性對雲計算而言是基本要求,所以除了通過上面這些機制來確保數據不會被沒有權限的人訪問之外,還需要對數據進行備份,以避免由於磁盤損壞或者管理不當導致數據丟失的情況,所以需要完善的備份服務來滿足每個用戶不同的備份策略。

  • 容災支持
    在容災方面,主要涉及兩個層面。其一是數據中心級別。如果數據中心的外部環境出現了類似斷電、火災、地震或者網絡中斷等嚴重的事故,將很有可能導致整個數據中心不可用,這就需要在異地建立一個備份數據中心來保證整個雲服務持續運行。這個備份數據中心會實時或者異步地與主數據中心進行同步,當主數據中心發生問題的時候,備份數據中心會自動接管在主數據中心中運行的服務。其二是物理節點級別。系統需要檢測每個物理節點的運行情況,如果一個物理節點出現問題,系統會試圖恢復它或者將其屏蔽,以確保相關雲服務正常運行。

3. 檢測層
這層比較簡單,主要監控這個雲計算中心的方方面面,並採集相關數據,以供用戶層和機制層使用。

  • 監控系統
    全面監控雲計算的運行主要涉及3個層面。其一是物理資源層面,主要監控物理資源的運行狀況,比如CPU使用率、內存利用率和網絡帶寬利用率等。其二是虛擬資源層面,主要監控虛擬機的CPU使用率和內存利用率等。其三是應用層面,主要記錄應用每次請求的響應時間(Response Time)和吞吐量(Throughput),以判斷它們是否滿足預先設定的SLA(Service Level Agreement,服務級別協議)。

架構示例

在現實的IT環境中,有許多雲計算產品都符合本章所講述的架構,其中比較知名的有Salesforce CRM和Google App Engine。爲了幫助大家進一步理解雲的架構,本節將以這兩個著名的雲計算產品爲例來進行介紹。

1. Salesforce CRM

首先,從用戶角度而言,Salesforce CRM屬於SaaS層服務,主要通過在雲中部署可定製化的CRM應用,來讓企業用戶在初始投入很低的情況下使用CRM,並且可根據自身的流程來靈活地定製,而且用戶只需接入互聯網就能使用。從技術角度而言,Salesforce CRM像很多SaaS產品一樣,不僅用到SaaS層的技術,而且還用到PaaS層、IaaS層和雲管理層的技術。圖2-3爲Salesforce CRM在技術層面上大致的架構。

enter image description here

Salesforce CRM採用的主要技術包括以下幾種。

  • SaaS層。基於HTML、JavaScript和CSS這個黃金組合。

  • PaaS層。在此層,Salesforce引入了多租戶內核和爲支撐此內核運行而定製的應用服務器。

  • IaaS層。雖然在後端還是使用在企業環境中很常見的Oracle數據庫,但是它爲了支撐上層的多租戶內核作了很多優化。

  • 雲管理層。Salesforce不僅在用戶管理、計費管理、監控系統和資源管理這4個方面有不錯的支持,而且在安全管理方面,它更是提供了多層保護,並支持SSL加密技術等。

2. Google App Engine

像前文介紹的那樣,Google App Engine是一款PaaS服務,它主要提供一個平臺來讓用戶在Google強大的基礎設施上部署和運行應用程序,同時App Engine會根據應用所承受的負載來對應用所需的資源進行調整,並免去用戶對應用和服務器等的維護工作,而且支持Java和Python這兩種語言。在技術上,由於App Engine屬於PaaS平臺,所以關於顯示層的技術選擇由應用的自身需求而定,而與App Engine無關。App Engine本身的設計主要集中在PaaS層、IaaS層和雲管理層。關於App Engine在技術層面上大致的架構,具體請看圖2-4。

enter image description here

Google App Engine採用的主要技術有以下幾種。

  • PaaS層。既有經過定製化的應用服務器,比如上面已經提到過的Jetty,也有基於Memcached的分佈式緩存服務。

  • IaaS層。在分佈式存儲GFS的基礎上提供了NoSQL數據庫BigTable來持久化應用的數據。

  • 雲管理層。由於App Engine基於Google強大的分佈式基礎設施,所以它在運維管理技術方面非常出色,同時其計費管理能做到非常細粒度的API級計費,而且App Engine在監控系統和資源管理這兩方面都有非常好的支持。

雲的4種模式

雖然從技術或者架構角度看,雲計算都是比較單一的,但是在實際情況下,爲了適應用戶不同的需求,它會演變爲不同的模式。在NIST(National Institute of Standards and Technology,美國國家標準技術研究院)的名爲“The NIST Definition of Cloud Computing”的這篇關於雲計算概念的著名文檔中,共定義了雲的4種模式,它們分別是:公有云、私有云、混合雲和行業雲。接下來,將詳細介紹每種模式的概念、構建方式、優勢、不足之處及其對未來的展望等。

公有云

公有云是現在最主流也就是最受歡迎的雲計算模式。它是一種對公衆開放的雲服務,能支持數目龐大的請求,而且因爲規模的優勢,其成本偏低。公有云由雲供應商運行,爲最終用戶提供各種各樣的IT資源。雲供應商負責從應用程序、軟件運行環境到物理基礎設施等IT資源的安全、管理、部署和維護。在使用IT資源時,用戶只需爲其所使用的資源付費,無需任何前期投入,所以非常經濟,而且在公有云中,用戶不清楚與其共享和使用資源的還有其他哪些用戶,整個平臺是如何實現的,甚至無法控制實際的物理設施,所以雲服務提供商能保證其所提供的資源具備安全和可靠等非功能性需求。

許多IT巨頭都推出了它們自己的公有云服務,包括Amazon的AWS、微軟的Windows Azure Platform、Google的Google Apps與Google App Engine等,一些過去著名的VPS和IDC廠商也推出了它們自己的公有云服務,比如Rackspace的Rackspace Cloud和國內世紀互聯的CloudEx雲快線等。

1. 構建方式
在構建方式方面,現在主要有3種方法。其一是獨自構建:雲供應商利用自身優秀的工程師團隊和開源的軟件資源,購買大量零部件來構建服務器、操作系統,乃至整個雲計算中心。這種獨自構建的好處是,能爲自己的需求作最大限度的優化,但是需要一個非常專業的工程師團隊,所以業界這樣做的基本上只有Google一家。其二是聯合構建:雲供應商在構建的時候,在部分軟硬件上選擇商業產品,而其他方面則會選擇自建。聯合構建的好處是避免自己的團隊涉足一些不熟悉的領域,而在自己所擅長的領域上大膽創新。這方面最明顯的例子莫過於微軟。在硬件方面,它並沒有像Google那樣選擇自建,而是採購了HP和戴爾的服務器,但是在其擅長的軟件方面選擇了自主研發,比如採用了Windows Server 2008、IIS服務器和.NET框架。其三是購買商業解決方案。由於有一部分雲供應商在建設雲之前缺乏相關的技術積累,所以會穩妥地購買比較成熟的商業解決方案。這樣購買商業解決方案的做法雖然很難提升雲供應商自身的競爭力,但是在風險方面和前兩種構建方式相比,它更穩妥。在這方面,無錫的雲計算中心是一個不錯的典範。由於無錫購買了IBM的Blue Cloud雲計算解決方案,所以在半年左右的時間內就能向其整個高新技術園區開放公有云服務,而且在這之前,無錫基本上沒有任何與雲計算相關的技術儲備。

2. 優勢

公有云在許多方面都有其優越性,下面是其中的4個方面。

  • 規模大。因爲公有云的公開性,它能聚集來自於整個社會並且規模龐大的工作負載,從而產生巨大的規模效應。比如,能降低每個負載的運行成本或者爲海量的工作負載作更多優化。

  • 價格低廉。由於對用戶而言,公有云完全是按需使用的,無需任何前期投入,所以與其他模式相比,公有云在初始成本方面有非常大的優勢。而且就像上面提到的那樣,隨着公有云的規模不斷增大,它將不僅使雲供應商受益,而且也會相應地降低用戶的開支。

  • 靈活。對用戶而言,公有云在容量方面幾乎是無限的。就算用戶所需求的量近乎瘋狂,公有云也能非常快地滿足。

  • 功能全面。公有云在功能方面非常豐富。比如,支持多種主流的操作系統和成千上萬個應用。

3. 不足之處

另外,公有云也有一些不足之處。

  • 缺乏信任。雖然在安全技術方面,公有云有很好的支持,但是由於其存儲數據的地方並不是在企業本地,所以企業會不可避免地擔憂數據的安全性。

  • 不支持遺留環境。由於現在公有云技術基本上都是基於x86架構的,在操作系統上普遍以Linux或者Windows爲主,所以對於大多數遺留環境沒有很好地支持,比如基於大型機的Cobol應用。

4. 對未來的展望

由於公有云在規模和功能等方面的優勢,它會受到絕大多數用戶的歡迎。從長期而言,公有云將像公共電廠那樣毋庸置疑會成爲雲計算最主流甚至是唯一的模式,因爲在規模、價格和功能等方面的潛力實在太大了。但是在短期之內,因爲信任和遺留等方面的不足會降低公有云對企業的吸引力,特別是大型企業。

私有云

關於雲計算,雖然人們談論最多的莫過於以Amazon EC2和Google App Engine爲代表的公有云,但是對許多大中型企業而言,因爲很多限制和條款,它們在短時間內很難大規模地採用公有云技術,可是它們也期盼雲所帶來的便利,所以引出了私有云這一雲計算模式。私有云主要爲企業內部提供雲服務,不對公衆開放,在企業的防火牆內工作,並且企業IT人員能對其數據、安全性和服務質量進行有效地控制。與傳統的企業數據中心相比,私有云可以支持動態靈活的基礎設施,降低IT架構的複雜度,使各種IT資源得以整合和標準化。
在私有云界,主要有兩大聯盟:其一是IBM與其合作伙伴,主要推廣的解決方案有IBM Blue Cloud和IBM CloudBurst;其二是由VMware、Cisco和EMC組成的VCE聯盟,它們主推的是Cisco UCS和vBlock。在實際的例子方面,已經建設成功的私有云有采用IBM Blue Cloud技術的中化雲計算中心和採用Cisco UCS技術的Tutor Perini雲計算中心。

1. 構建方式

創建私有云的方式主要有兩種。首先是獨自構建,通過使用諸如Enomaly和Eucalyptus等軟件將現有硬件整合成一個雲。這比較適合預算少或者希望重用現有硬件的企業。其次是購買商業解決方案。通過購買Cisco的UCS和IBM的Blue Cloud等方案來一步到位,這比較適合那些有實力的企業和機構。

2. 優勢

由於私有云主要在企業數據中心內部運行,並且由企業的IT團隊來進行管理,所以這種模式在下面這5個方面有出色的表現。

  • 數據安全。雖然每個公有云的供應商都對外宣稱,其服務在各方面都非常安全,特別是在數據管理方面,但是對企業而言,特別是大型企業而言,和業務相關的數據是其生命線,是不能受到任何形式的威脅和侵犯的,而且需要嚴格地控制和監視這些數據的存儲方式和位置。所以短期而言,大型企業是不會將其關鍵應用部署到公有云上的。而私有云在這方面是非常有優勢的,因爲它一般都構築在防火牆內,企業會比較放心。

  • 服務質量(SLA)。因爲私有云一般在企業內部,而不是在某一個遙遠的數據中心中,所以當公司員工訪問那些基於私有云的應用時,它的服務質量應該會非常穩定,不會受到遠程網絡偶然發生異常的影響。

  • 充分利用現有硬件資源。每個公司,特別是大公司,都會存在很多低利用率的硬件資源,可以通過一些私有云解決方案或者相關軟件,讓它們重獲“新生”。

  • 支持定製和遺留應用。現有公有云所支持應用的範圍都偏主流,偏x86,對一些定製化程度高的應用和遺留應用就很有可能束手無策,但是這些往往都屬於一個企業最核心的應用,比如大型機、Unix等平臺的應用。在這個時刻,私有云可以說是一個不錯的選擇。

  • 不影響現有IT管理的流程。對大型企業而言,流程是其管理的核心,如果沒有完善的流程,企業將會成爲一盤散沙。實際情況是,不僅企業內部和業務有關的流程非常多,而且IT部門的自身流程也不少,而且大多都不可或缺,比如那些和Sarbanes-Oxley相關的流程。在這方面,私有云的適應性比公有云好很多,因爲IT部門能完全控制私有云,這樣他們有能力使私有云比公有云更好地與現有流程進行整合。

3. 不足之處

另外,私有云也有其不足之處,主要是成本開支高。因爲建立私用雲需要很高的初始成本,特別是如果需要購買大廠家的解決方案時更是如此;其次,由於需要在企業內部維護一隻專業的雲計算團隊,所以其持續運營成本也同樣偏高。

4. 對未來的展望

在將來很長一段時間內,私有云將成爲大中型企業最認可的雲模式,而且將極大地增強企業內部的IT能力,並使整個IT服務圍繞着業務展開,從而更好地爲業務服務。

混合雲

混合雲雖然不如前面的公有云和私有云常用,但已經有類似的產品和服務出現。顧名思義,混合雲是把公有云和私有云結合到一起的方式,即它是讓用戶在私有云的私密性和公有云靈活的低廉之間做一定權衡的模式。比如,企業可以將非關鍵的應用部署到公有云上來降低成本,而將安全性要求很高、非常關鍵的核心應用部署到完全私密的私有云上。

現在混合雲的例子非常少,最相關的就是Amazon VPC(Virtual Private Cloud,虛擬私有云)和VMware vCloud了。比如,通過Amazon VPC服務能將Amazon EC2的部分計算能力接入到企業的防火牆內。

1. 構建方式
混合雲的構建方式有兩種。其一是外包企業的數據中心。企業搭建了一個數據中心,但具體維護和管理工作都外包給專業的雲供應商,或者邀請專業的雲供應商直接在廠區內搭建專供本企業使用的雲計算中心,並在建成之後,負責今後的維護工作。其二是購買私有云服務。通過購買Amazon等雲供應商的私有云服務,能將一些公有云納入到企業的防火牆內,並且在這些計算資源和其他公有云資源之間進行隔離,同時獲得極大的控制權,也免去了維護之苦。

2. 優勢

通過使用混合雲,企業可以享受接近私有云的私密性和接近公有云的成本,並且能快速接入大量位於公有云的計算能力,以備不時之需。

3. 不足之處

現在可供選擇的混合雲產品較少,而且在私密性方面不如私有云好,在成本方面也不如公有云低,並且操作起來較複雜。

4. 對未來的展望

混合雲比較適合那些想嘗雲計算的企業和麪對突發流量但不願將企業IT業務都遷移至公有云的企業。雖然混合雲不是長久之計,但是它應該也會有一定的市場空間,並且也將會有一些廠商推出類似的產品。

行業雲

行業雲雖然較少提及,但是有一定的潛力,主要指的是專門爲某個行業的業務設計的雲,並且開放給多個同屬於這個行業的企業。

雖然行業雲現在還沒有一個成熟的例子,但盛大的開放平臺頗具行業雲的潛質,因爲它能將其整個雲平臺共享給多個小型遊戲開發團隊,這樣這些小型團隊只需負責遊戲的創意和開發即可,其他和遊戲相關的煩瑣的運維可轉交給盛大的開放平臺來負責。

1. 構建方式
在構建方式方面,行業雲主要有兩種方式。其一是獨自構建:某個行業的領導企業自主創建一個行業雲,並與其他同行業的公司分享。其二是聯合構建:多個同類型的企業可以聯合建設和共享一個雲計算中心,或者邀請外部的供應商來參於其中。

2. 優勢

能爲行業的業務作專門的優化。和其他的雲計算模式相比,這不僅能進一步方便用戶,而且能進一步降低成本。

3. 不足之處

缺點是支持的範圍較小,只支持某個行業,同時建設成本較高。

4. 對未來的展望

行業雲非常適合那些業務需求比較相似,而且對成本非常關注的行業。雖然現在還沒有非常好的示例,但是對部分行業應該存在一定的吸引力,比如上面提到的遊戲業。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章