雖然基礎(chǔ)設(shè)施即服務(wù)(IaaS)常被稱為虛擬數(shù)據(jù)中心的前身,但是并不是所有的IaaS平臺都是構(gòu)建于虛擬機基礎(chǔ)之上的。在你的私有云計算中使用非虛擬機的IaaS模型可能是將其帶入一個新水平的一項重要戰(zhàn)略——即一個融合IaaS、SaaS以及PaaS的混合服務(wù)云計算。
大多數(shù)虛擬化軟件使用一個管理程序來對服務(wù)器進行虛擬機分配,每個虛擬機運行它們自己的底層操作系統(tǒng)、中間件以及應(yīng)用程序的副本。當IaaS以這一虛擬化模型為基礎(chǔ)時,一個云計算管理者把圖像和資源分配至每個虛擬機。因為每個虛擬機都是相互獨立的,所以任何可以在本機硬件上運行的應(yīng)用程序都可以在虛擬機上運行。這是基于虛擬化IaaS的優(yōu)勢。
但是基于虛擬機的IaaS也有著其局限性。隨著特定云計算應(yīng)用程序的開發(fā),已經(jīng)沒有什么理由能夠支持虛擬機托管的做法了,因為它們不依賴于虛擬化。面向服務(wù)架構(gòu)(SOA)、多任務(wù)以及多線程原理都可以應(yīng)用于編寫運行于一個操作系統(tǒng)而無須操作系統(tǒng)或中間件互相復(fù)制的云計算組件。
在提供IaaS的同時,你應(yīng)當如何創(chuàng)建一個運行特定云計算軟件的云計算平臺呢?答案是創(chuàng)建容器、虛擬環(huán)境或者所謂的”Jails”。鑒于本文的初衷,我們將使用術(shù)語“虛擬環(huán)境”或其簡稱VE。
使用虛擬環(huán)境構(gòu)建基于操作系統(tǒng)的IaaS云計算
VE是托管操作系統(tǒng)的分區(qū),該操作系統(tǒng)分隔客戶操作系統(tǒng)和應(yīng)用程序,并允許它們在一個多租戶環(huán)境中正常運行。與在主機內(nèi)多任務(wù)支持下運行的一般線程或應(yīng)用程序不同,雖然還達不到在基于管理程序虛擬化中的程度,但是客戶VE是互相保護的。與支持近乎全部操作系統(tǒng)或中間件基于管理程序的虛擬化不同,VE希望所有的客戶操作系統(tǒng)都與主機運行的操作系統(tǒng)相同。雖然這降低了成本開銷,但也限制了靈活性,這就成為了你仔細選擇正確IaaS平臺以確保與現(xiàn)有和未來應(yīng)用程序全方位兼容性的關(guān)鍵。
最流行的VE托管軟件平臺是支持Linux操作系統(tǒng)的OpenVZ和VServer、BSD Unix操作系統(tǒng)的FreeBSD Jail、Solaris(包括Open Solaris)的Container/Zone以及微軟公司W(wǎng)indows Azure支持的虛擬機 Role。Oracle公司和Joyent公司都提供了一個Container/Zone平臺的定制商用版。Joyent公司的SmartOS融合了對硬件虛擬化(Xen)和Solaris Zone的支持;該公司將其產(chǎn)品構(gòu)建于大型數(shù)據(jù)模型Solaris ZFS基礎(chǔ)之上。
基于虛擬環(huán)境IaaS模型所面臨的難題
人們很容易把基于虛擬化環(huán)境的云計算模型當作是最終的云計算戰(zhàn)略,至少是IaaS和混合模型云計算服務(wù)的。但是,至少這些云計算模型中有一些帶來了管理復(fù)雜性、云計算安全的關(guān)注以及對應(yīng)用程序狀態(tài)不斷更新的抱怨等問題。
管理復(fù)雜性雖然基于虛擬化環(huán)境IaaS模型中使用了單一的操作系統(tǒng),但是其云計算管理可能更為復(fù)雜。目前而言,IaaS中還沒有一種操作系統(tǒng)級的非虛擬機戰(zhàn)略可以取代云計算控制的功能,除非所有的云計算VE都在一臺機器上,而這是極不可能的。你仍然需要整合一個可以模仿管理程序的云計算控制軟件,例如Eucalyptus、OpenStack、Nebula以及其它開源云計算供應(yīng)商所提供的云計算控制產(chǎn)品。因為,大多數(shù)用戶都構(gòu)建基于虛擬機的IaaS云計算,所以可能很難找到關(guān)于如何執(zhí)行這一整合任務(wù)的詳細信息。所以,只能研究現(xiàn)有基于VE IaaS設(shè)置的示例,并評估這一變革是否會影響其它操作。
安全性問題。IaaS的一個主要假設(shè)就是應(yīng)用程序是由高效托管虛擬服務(wù)器的主機進行托管的,但是它并不總是出現(xiàn)在VE模型中。虛擬機在夜晚提供;他們互相之間有一個很小的互動。在另一方面,VE引入了應(yīng)用程序之間對資源使用和性能的通信。但是,這也為VE帶來了極易發(fā)生的跨應(yīng)用程序云計算安全問題。事先了解這些安全問題并確保它們不會影響未來的服務(wù)機會是非常重要的。
狀態(tài)不斷變化的應(yīng)用程序。故障模式是如何托管服務(wù)中的重中之重。基于VE的云計算所面臨的托管操作系統(tǒng)故障風(fēng)險,可能會導(dǎo)致所有客戶操作系統(tǒng)受到影響。因為,基于虛擬機 IaaS模型中的管理程序有最小的應(yīng)用功能和最少的邏輯功能,所以發(fā)生故障的風(fēng)險也較低。例如,當角色發(fā)生故障時,其相應(yīng)具有該Windows Azure虛擬機角色的應(yīng)用程序也不會繼續(xù)保留下去;虛擬機應(yīng)用程序應(yīng)當遵循RESTful的無狀態(tài)原則,以避免數(shù)據(jù)丟失。
基于VE的IaaS模型確實有一些缺點,但還沒有到完全被否定的嚴重程度。促進與融合IaaS、PaaS以及SaaSd多服務(wù)模型的共存和共同發(fā)展,這個好處已足夠幫助企業(yè)應(yīng)對它們所面臨的挑戰(zhàn)了。