雲計算——至少作為虛擬化的一種延伸,影響範圍已經越來越大。 但是,目前雲計算還不能支援複雜的企業環境。 因此雲計算架構呼之欲出,經驗表明,在雲計算走向成熟之前,我們更應該關注系統雲計算架構的細節。 基於對現有的一些雲計算產品的分析和個人一些經驗,總結出一套雲計算架構,雲計算架構主要可分為四層。
雲計算架構——顯示層
這層主要是用於以友好的方式展現使用者所需的內容,並會利用到下面中介軟體層提供的多種服務,主要有五種技術:
HTML:標準的Web頁面技術,現在主要以HTML4為主,但是將要推出的HTML5會在很多方面推動Web頁面的發展,比如視頻和本機存放區等方面。
JavaScript:一種用於Web頁面的動態語言,通過JavaScript,能夠極大地豐富Web頁面的功能。
CSS:主要用於控制Web頁面的外觀,而且能使頁面的內容與其表現形式之間進行優雅地分離。
Flash:業界最常用的RIA(Rich Internet Applications)技術,能夠在現階段提供HTML等技術所無法提供的基於Web的富應用,而且在使用者體驗方面,非常不錯。
Silverlight:來自業界巨擎微軟的RIA技術,雖然其現在市場佔有率稍遜于Flash,但由於其可以使用C#來進行程式設計,所以對開發者非常友好。
雲計算架構——中介層
這層是承上啟下的,它在下面的基礎設施層所提供資源的基礎上提供了多種服務,比如快取服務和REST服務等,而且這些服務即可用於支撐顯示層,也可以直接讓使用者調用,並主要有五種技術:
REST:通過REST技術,能夠非常方便和優雅地將中介軟體層所支撐的部分服務提供給調用者。
多租戶:就是能讓一個單獨的應用實例可以為多個組織服務,而且保持良好的隔離性和安全性,並且通過這種技術,能有效地降低應用的購置和維護成本。
並行處理:為了處理海量的資料,需要利用龐大的X86集群進行規模巨大的並行處理,Google的MapReduce是這方面的代表之作。
應用伺服器:在原有的應用伺服器的基礎上為雲計算做了一定程度的優化,比如用於Google App Engine的Jetty應用伺服器。
分散式緩存:通過分散式緩存技術,不僅能有效地降低對後臺伺服器的壓力,而且還能加快相應的反應速度,最著名的分散式緩存例子莫過於Memcached。
雲計算架構——基礎設施層
這層作用是為給上面的中介軟體層或者使用者準備其所需的計算和存儲等資源,主要有四種技術:
虛擬化:也可以理解它為基礎設施層的「多租戶」,因為通過虛擬化技術,能夠在一個物理伺服器上生成多個虛擬 機,並且能在這些虛擬機器之間能實現全面的隔離,這樣不僅能減低伺服器的購置成本,而且還能同時降低伺服器的運維成本, 成熟的X86虛擬化技術有 VMware的ESX和開源的Xen。
分散式存儲:為了承載海量的資料,同時也要保證這些資料的可管理性,所以需要一整套分散式的存儲系統。
關聯式資料庫:基本是在原有的關聯式資料庫的基礎上做了擴展和管理等方面的優化,使其在雲中更適應。
NoSQL:為了滿足一些關係資料庫所無法滿足的目標,比如支撐海量的資料等,一些公司特地設計一批不是基於關係模型的資料庫。
雲計算架構——管理層
這層是為橫向的三層服務的,並給這三層提供多種管理和維護等方面的技術,主要有下面這六個方面:
帳號管理:通過良好的帳號管理技術,能夠在安全的條件下方便使用者地登錄,並方便管理員對帳號的管理。
SLA監控:對各個層次運行的虛擬機器,服務和應用等進行性能方面的監控,以使它們都能在滿足預先設定的SLA(Service Level Agreement)的情況下運行。
計費管理:也就是對每個使用者所消耗的資源等進行統計,來準確地向使用者索取費用。
安全管理:對資料,應用和帳號等IT資源採取全面地保護,使其免受犯罪分子和惡意程式的侵害。
負載均衡:通過將流量分發給一個應用或者服務的多個實例來應對突發情況。
運維管理:主要是使運維操作盡可能地專業和自動化,從而降低雲計算中心的運維成本。
雲計算架構其中有三層是橫向的,分別是顯示層、中介軟體層和基礎設施層,通過這三層技術能夠提供非常豐富的雲計算能力和友好的使用者介面,雲計算架構還有一層是縱向的,稱為管理層,是為了更好地管理和維護橫向的三層而存在的。