雲計算架構
雲計算架構
雲計算,至少作為虛擬化的一種延伸,影響範圍已經越來越大。但是,雲計算還不能支持複雜的企業環境。因此雲計算架構呼之欲出,經驗表明,在雲計算走向成熟之前,我們更應該關注系統雲計算架構的細節。基於對現有的一些雲計算產品的分析和個人一些經驗,總結出一套雲計算架構,雲計算架構主要可分為四層。
雲計算(Cloud computing)是繼20世紀80年代由大型計算機向客戶端/伺服器(C/S)
模式大轉變后,信息技術的又一次革命性變化。2006年8月9日,Google首席執行官Eric Schmidt在搜索引擎大會(SES San Jose 2006)上首次提出雲計算概念。雲計算是網格計算,分散式計算,并行計算、效用技術、網路存儲、虛擬化和負載均衡等傳統計算機和網路技術發展融合的產物。其目的是通過基於網路的計算方式,將共享的軟體/硬體資源和信息進行組織整合,按需提供給計算機和其他系統使用。
多數數據中心雲計算架構的這層主要是用於以友好的方式展現用戶所需的內容和服務體驗,並會利用到下面中間件層提供的多種服務,主要有五種技術:
HTML:標準的Web頁面技術,主要以HTML4為主,但是將要推出的HTML5會在很多方面推動Web頁面的發展,比如視頻[和本地存儲等方面。
JavaScript:一種用於Web頁面的動態語言,通過JavaScript,能夠極大地豐富Web頁面的功能,並且用以JavaScript為基礎的AJAX創建更具交互性的動態頁面。
CSS:主要用於控制Web頁面的外觀,而且能使頁面的內容與其表現形式之間進行優雅地分離。
Flash:業界最常用的RIA(Rich Internet Applications)技術,能夠在現階段提供HTML等技術所無法提供的基於Web的富應用,而且在用戶體驗方面,非常不錯。
Silverlight:來自業界巨擎微軟的RIA技術,雖然其市場佔有率稍遜於Flash,但由於其可以使用C#來進行編程,所以對開發者非常友好。
這層是承上啟下的,它在下面的基礎設施層所提供資源的基礎上提供了多種服務,比如緩存服務和REST服務等,而且這些服務即可用於支撐顯示層,也可以直接讓用戶調用,並主要有五種技術:
REST:通過REST技術,能夠非常方便和優雅地將中間件層所支撐的部分服務提供給調用者。
多租戶:就是能讓一個單獨的應用實例可以為多個組織服務,而且保持良好的隔離性和安全性,並且通過這種技術,能有效地降低應用的購置和維護成本。
應用伺服器:在原有的應用伺服器的基礎上為雲計算做了一定程度的優化,比如用於Google App Engine的Jetty應用伺服器。
這層作用是為給上面的中間件層或者用戶準備其所需的計算和存儲等資源,主要有四種技術:
虛擬化:也可以理解它為基礎設施層的“多租戶”,因為通過虛擬化技術,能夠在一個物理伺服器上生成多個虛擬 機,並且能在這些虛擬機之間能實現全面的隔離,這樣不僅能減低伺服器的購置成本,而且還能同時降低伺服器的運維成本,成熟的X86虛擬化技術有 VMware的ESX和開源的Xen。
分散式存儲:為了承載海量的數據,同時也要保證這些數據的可管理性,所以需要一整套分散式的存儲系統。
關係型資料庫:基本是在原有的關係型資料庫的基礎上做了擴展和管理等方面的優化,使其在雲中更適應。
NoSQL:為了滿足一些關係資料庫所無法滿足的目標,比如支撐海量的數據等,一些公司特地設計一批不是基於關係模型的資料庫。
這層是為橫向的三層服務的,並給這三層提供多種管理和維護等方面的技術,主要有下面這六個方面:
帳號管理:通過良好的帳號管理技術,能夠在安全的條件下方便用戶地登錄,並方便管理員對帳號的管理。
SLA監控:對各個層次運行的虛擬機,服務和應用等進行性能方面的監控,以使它們都能在滿足預先設定的SLA(Service Level Agreement)的情況下運行。
計費管理:也就是對每個用戶所消耗的資源等進行統計,來準確地向用戶索取費用。
安全管理:對數據,應用和帳號等IT資源採取全面地保護,使其免受犯罪分子和惡意程序的侵害。
負載均衡:通過將流量分發給一個應用或者服務的多個實例來應對突發情況。
運維管理:主要是使運維操作儘可能地專業和自動化,從而降低雲計算中心的運維成本。
雲計算架構其中有三層是橫向的,分別是顯示層、中間件層和基礎設施層,通過這三層技術能夠提供非常豐富的雲計算能力和友好的用戶界面,雲計算架構還有一層是縱向的,稱為管理層,是為了更好地管理和維護橫向的三層而存在的。
一般來說,大家比較公認的雲架構是劃分為基礎設施層、平台層和軟體服務層三個層次的。對應名稱為IaaS,PaaS和SaaS。IaaS, Infrastructure as a Service,中文名為基礎設施即服務,有點拗口,大家習慣了就好。如圖1所示。
IaaS主要包括計算機伺服器、通信設備、存儲設備等,能夠按需向用戶提供的計算能力、存儲能力或網路能力等IT基礎設施類服務,也就是能在基礎設施層面提供的服務。IaaS能夠得到成熟應用的核心在於虛擬化技術,通過虛擬化技術可以將形形色色計算設備統一虛擬化為虛擬資源池中的計算資源,將存儲設備統一虛擬化為虛擬資源池中的存儲資源,將網路設備統一虛擬化為虛擬資源池中的網路資源。當用戶訂購這些資源時,數據中心管理者直接將訂購的份額打包提供給用戶,從而實現了IaaS。
PaaS, Platform as a Service,中文名為平台即服務。如果以傳統計算機架構中“硬體+操作系統/開發工具+應用軟體”的觀點來看待,那麼雲計算的平台層應該提供類似操作系統和開發工具的功能。實際上也的確如此,PaaS定位於通過網際網路為用戶提供一整套開發、運行和運營應用軟體的支撐平台。就像在個人計算機軟體開發模式下,程序員可能會在一台裝有Windows或Linux操作系統的計算機上使用開發工具開發並部署應用軟體一樣。微軟公司的Windows Azure和谷歌公司的GAE,可以算是PaaS平台中最為知名的兩個產品了。
SaaS,軟體即服務。簡單地說,就是一種通過網際網路提供軟體服務的軟體應用模式。在這種模式下,用戶不需要再花費大量投資用於硬體、軟體和開發團隊的建設,只需要支付一定的租賃費用,就可以通過網際網路享受到相應的服務,而且整個系統的維護也由廠商負責。
近些年,雲計算成為了主要發達國家重點關注的領域,處在雲計算髮展大潮之中,我國的雲計算戰略也在穩步推進。面對以雲計算為代表的最新技術的興起,51CTO作為中國領先的IT技術社區,站在技術發展的前沿,已於2012年10月25日舉辦雲計算架構師峰會,聯合諸多IT技術的領導企業,共同搭建起一個架構師交流和溝通的平台,用以分享與雲計算、大數據等相關IT技術發展和應用的實踐經驗,交流國內外最新的技術動態和研究成果。
2012雲計算架構師峰會彙集了全球頂尖IT企業一線架構師,圍繞公共雲和私有雲的技術應用、雲時代的存儲與數據架構、大數據挖掘分析、跨平台解決方案的需求實現與性能調優等眾多熱門技術話題,與全國超過1000人的一線技術者共聚一堂,共話IT。