裸機時代
裸機時代的操作系統(tǒng)獨立于每個物理服務(wù)器設(shè)備上,每臺服務(wù)器上運行一個應(yīng)用程序,這時單臺服務(wù)器的性能限制了應(yīng)用程序的部署規(guī)模,而且不同應(yīng)用程序占用的資源不同,這樣在數(shù)據(jù)中心里有的服務(wù)器很忙,而有的服務(wù)器卻很閑,服務(wù)器部署的平均利用率僅能達到總?cè)萘康?0%~15%,造成了資源的極大浪費。裸機時代的操作系統(tǒng),管理成本高昂,因為服務(wù)器數(shù)量太多難以管理,新服務(wù)器和應(yīng)用的部署時間長,硬件維護需要數(shù)天或數(shù)周才能完成,一旦承載應(yīng)用的服務(wù)器故障,就需要手工將應(yīng)用切換到其它服務(wù)器上來,往往給數(shù)據(jù)中心帶來嚴(yán)重?fù)p失。這時的操作系統(tǒng)兼容性較差,系統(tǒng)和應(yīng)用遷移到新的硬件需要和舊系統(tǒng)兼容的硬件系統(tǒng),這是傳統(tǒng)數(shù)據(jù)中心普遍采用的操作系統(tǒng)方式,雖然存在各樣那樣的弊端,但從數(shù)據(jù)中心誕生那日起,伴隨我們走過了數(shù)十年,裸機時代的操作系統(tǒng)占據(jù)了數(shù)據(jù)中心發(fā)展的大半程時間。
虛擬化時代
虛擬化,原本是指資源的抽象化,也就是單一物理資源的多個邏輯表示,或者多個物理資源的單一邏輯表示。具體到服務(wù)器虛擬化,就是多個物理資源的單一邏輯表示。虛擬化技術(shù)主要用來解決高性能的物理硬件產(chǎn)能過剩和老的舊的硬件產(chǎn)能過低的重組重用,透明化底層物理硬件,從而最大化的利用物理硬件。虛擬化在如今的IT技術(shù)領(lǐng)域火的不行,尤其是在數(shù)據(jù)中心,在任何一個系統(tǒng)里都強調(diào)虛擬化。實際上,虛擬化技術(shù)也在數(shù)據(jù)中心里得到了極大普及發(fā)展,最近這十年基本是虛擬化技術(shù)在數(shù)據(jù)中心逐漸發(fā)展壯大的過程。虛擬化以虛擬機為單位,將資源提供給用戶。虛擬化的操作系統(tǒng)可以將一臺高性能的服務(wù)器虛擬成多個虛擬機,在物理上虛擬機共享宿主服務(wù)器的硬件資源,而邏輯上各自獨立,可在各虛擬出的服務(wù)器上運行不同的應(yīng)用,各司其職,互不干擾。如此一來,可以大大提升服務(wù)器的使用率,降低數(shù)據(jù)中心的運營成本。虛擬化操作系統(tǒng)是對傳統(tǒng)數(shù)據(jù)中心資源管理模式的變革,簡化服務(wù)器的部署、管理和維護工作。虛擬化時代掀起了新一代數(shù)據(jù)中心改革的大幕,一時間不僅是服務(wù)器,從網(wǎng)絡(luò)、存儲、安全等也都引入了虛擬化的概念,大力發(fā)展虛擬化技術(shù),原理與服務(wù)器虛擬化類似,目的就是提升設(shè)備工作效率,以至于后來出現(xiàn)了虛擬化的數(shù)據(jù)中心,將整個數(shù)據(jù)中心都虛擬化起來。在虛擬化領(lǐng)域,還是當(dāng)屬操作系統(tǒng)的虛擬化技術(shù)最為成熟,如今的數(shù)據(jù)中心操作系統(tǒng)里到處都是虛擬化的身影。核心技術(shù)有SDS、SDN、OpenStack等等,在亞馬遜、VMWare、阿里云都有規(guī)模部署,現(xiàn)在我們正處于虛擬化的時代。
以應(yīng)用為中心的時代
虛擬化構(gòu)成的集群仍然難以運維,尤其是出了故障后,不好分析故障原因和位置。用戶希望能夠直接獲取資源,快速啟動,服務(wù)可以無限擴展,應(yīng)用易于遷移。這時一切以應(yīng)用為中心,將數(shù)據(jù)中心所有資源進行整合,進行虛擬池化,CPU、內(nèi)存和I/O這些基本資源都虛擬出來,根據(jù)各個應(yīng)用,按需分配。這時出現(xiàn)了容器集群資源管理技術(shù),這引領(lǐng)了最新一代的數(shù)據(jù)中心操作系統(tǒng)。容器并不包含一個單獨的操作系統(tǒng),而是基于已有的基礎(chǔ)設(shè)施中操作系統(tǒng)提供的功能來運行的,它將應(yīng)用程序及所有程序的依賴環(huán)境打包到一個容器中,容器可以運行在任何一種服務(wù)器上。容器是完全使用沙箱機制,相互之間不會有任何接口,幾乎沒有性能開銷,可以很容易地在服務(wù)器和數(shù)據(jù)中心中運行。最重要的是,他們不依賴于任何語言、框架包括系統(tǒng)。虛擬化時代是操作系統(tǒng)識別的資源隔離,到了以應(yīng)用為中心時代,容器本質(zhì)上是進程級的資源隔離。使用容器技術(shù)可以將數(shù)據(jù)中心所有的計算資源集中起來,對單個服務(wù)器的性能要求不高,這種整合后的資源可以形成強大的計算能力。每個具體應(yīng)用根據(jù)自身使用情況,申請容器資源,按需分配,達到資源利用的最大化。基于容器的操作系統(tǒng)技術(shù)在2014年誕生后,迅速獲得IBM、思科、微軟、HP、Vmware等廠商的廣泛認(rèn)可,2015年2月就出現(xiàn)了專業(yè)版本,在京東私有云、阿里巴巴、騰訊游戲、百度開放云平臺上都有應(yīng)用,但是容器技術(shù)要在大部分的數(shù)據(jù)中心里普及應(yīng)用,還有相當(dāng)長的路要走。
以應(yīng)用為中心的時代雖然很好,但是技術(shù)并不成熟,不像虛擬化技術(shù)是一項高度發(fā)展、非常成熟的技術(shù)。虛擬化軟件廠商已開發(fā)出了能處理成千上萬個虛擬機的管理系統(tǒng),任何一個數(shù)據(jù)中心都能找到適合自己的系統(tǒng)。還有安全也是個大問題,以應(yīng)用為中心的容器技術(shù)很少提及安全,彼此鄰近的容器共享處理器、內(nèi)存和磁盤等資源,這種行為難為為人們深為擔(dān)憂,安全無法得到有效保證。
無論如何,如今是數(shù)據(jù)中心全面進入了虛擬化操作系統(tǒng)時代,先進的大型數(shù)據(jù)中心有個別的還嘗試部署以應(yīng)用為中心的容器技術(shù),并嘗到了甜頭。不可否認(rèn),容器技術(shù)極具先進性,只是目前安全方面還有些令人擔(dān)憂,后續(xù)若能從安全角度多做文章,必將獲得更為廣泛應(yīng)用,將來的數(shù)據(jù)中心操作系統(tǒng)必將以應(yīng)用為中心。