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