在過去的十年里,計算機在處理性能,存儲容量,網絡技術等方面獲得了長足的進步,并由此誕生了很多新興的計算機技術來方便人們的日常辦公和生活需要。目前,物聯網技術和云計算技術是新興的研究熱點。云計算由于其較高的可擴展性,較低的設備價格及按需服務等特點越來越受到企業、院校、政府的青睞。學術界也對此也做了很多的研究性工作。
目前對于云計算的定義有很多種,比較常用的說法是云計算是一種基于互聯網的計算方式,通過這種方式,共享的軟硬件資源和信息可以按需提供給計算機和其他設備。1961年John McCarthy在MIT一百周年的紀念典禮的演講上述,計算機的應用性將越來越普遍,并且將成為將來新型的重要工業基礎。這段話在一定程度上也預示了云計算技術的產生。2006年在Google的搜索引擎戰略會議,Eric Schmidt首次提出了云計算這個整體性的概念。隨著計算機處理器性能和存儲容量的迅速發展,云計算技術所具有的優勢使得對企業,政府機構等組織非常有吸引力:
較少的資金開銷,一般云計算用戶可以通過租用的方式獲得服務,這樣在減少設備成本投入的同時也獲得了自己所需要的計算性能。
可擴展性,高度的可擴展性能無疑是云計算技術一大亮點,云服務提供者只需要增加一定數量的服務器,數據庫和網絡帶寬等設備就能擴展云服務的能力。
災難恢復的功能,大多數的中小型企業一般沒有災難恢復的設施。由于云技術的虛擬化和冗余性備份功能,企業不太會丟失掉他們的數據。
虛擬化,云計算其實也是虛擬化技術的一種實現。通過虛擬化的技術,底層的硬件設備被抽象化了。由服務器構成的虛擬資源將會動態的,按需的方式分配給應用用戶。
一、云計算的體系結構
傳統上來講,云計算體系的結構可以分成四個部分,如圖1所示:物理層、虛擬層、平臺層和應用層,接下來我們詳述每個層的功能。
圖1 云計算體系結構
物理層:顧名思義,物理層負責管理云中的硬件資源,包含物理服務器、路由器、交換機、電力和冷卻系統。實際上,一般一個數據中心等同于一個物理層。數據中心包含了好幾千個的服務器,它們通過高速交換機、路由器或者其他的光纖介質互聯起來形成一個整體。物理層上的事務性處理包括硬件設備的配置管理、容錯性保證、流量管理、電力和冷卻系統管理等。
虛擬層:虛擬層使用了諸如Xen、KVM和VMware等虛擬技術,將計算資源和存儲資源整合形成了一個資源池,應用用戶就可以從這個資源池中獲取他需要的計算服務。虛擬層是云計算技術的-個重要組成成分,因為只有通過虛擬化技術才能實現像動態資源管理的功能。
平臺層:平臺層在虛擬層之上,該層的由操作系統、應用程序框架之類的構建構成。平臺層設置的目的主要是為了方便應用層和虛擬機之間的連通,減少部署應用程序時的負擔。例如,Google在平臺層的應用引擎就提供了API接口用以支持存儲數據庫和Web應用的常用操作。
應用層:應用層在體系結構中的最高層,由實際的云應用程序構成。和傳統的應用程序相比,云中的應用程序的優點在于它可以簡單地通過可擴展行的優點獲得更高的性能、可用性,并減少運行開銷。
和傳統的網絡服務模式相比較,云計算的體系結構更加地模塊化。每一層和上下層的關系都是比較松散的耦合關系,這一點和OSI的體系結構很類似,每一層可以很獨立的進行升級。
但在商業的角度來看,硬件和平臺級的資源是按需提供服務的基礎,根據每個公司具體的策略又將云計算分成了三類不同的模型Hl:軟件即服務(saas),平臺即服務(PaaS),基礎設施即服務(IaaS)。但是這些不同的模型都具有按需服務,錯誤容忍,較好的彈性等特點。
基礎設施即服務需要提供具體的基礎設備,它一般包含前面提到的虛擬層和物理層。通常以虛擬機的形式呈現給用戶,而提供IaaS服務的云擁有者就可以成為 IaaS服務商,例如Amazon EC2、Flexicale和GoGrid等。平臺即服務是提供平臺級的資源,包括操作系統和軟件開發框架等,為其他軟件開發人員提供開發的接口,并由此調用相應的云計算功能。像Paas服務商有MicrosoftWindowsAzure,GoogleApp Engine和Force.com等。