與其將容器技術(shù)和虛擬機(jī)技術(shù)割裂開來,不如將二者設(shè)計成“最佳拍檔”,因為容器技術(shù)絕對可以運行在虛擬機(jī)里,享受虛擬機(jī)帶來的所有優(yōu)勢。
最近業(yè)內(nèi)有人在探討一個趨勢—虛擬機(jī):永遠(yuǎn)的光榮還是垂死掙扎呢?這個探討主要源于D o c k e r公司和L i n u x容器(Container)的探討。很多人疑惑容器技術(shù)能否最終將取代虛擬機(jī)技術(shù)。可能你也聽說了L i n u x容器技術(shù),但并非每個人都花時間研究了容器技術(shù)的來龍去脈,這不是一條140字的微博能夠說清的,因此先分享一點背景知識。
容器技術(shù)提供了操作系統(tǒng)級的進(jìn)程隔離,類似于硬件的虛擬化技術(shù),這也是為什么現(xiàn)在會有人提出容器技術(shù)將取代虛擬機(jī)技術(shù)的主要原因。當(dāng)然,容器技術(shù)還是不同于今天的虛擬機(jī)技術(shù),它是從操作系統(tǒng)內(nèi)部進(jìn)行進(jìn)程級的隔離。而我們熟知的虛擬機(jī)(基于Hypervisor的虛擬化,這里不討論操作系統(tǒng)上的虛擬機(jī)技術(shù))是基于硬件資源的虛擬化技術(shù)進(jìn)行隔離,位于操作系統(tǒng)下面。實際容器技術(shù)已經(jīng)有多年的歷史,比如FreeBSD Jail和Solaris Zones等。甚至谷歌也使用容器技術(shù)實現(xiàn)了一些功能,并且將這些代碼貢獻(xiàn)給了L i n u x社區(qū),從而L i n u x內(nèi)核已經(jīng)有一些與容器相關(guān)的組件。
但是即使有谷歌的助推和很多開源大軍的努力,容器技術(shù)都沒能引起大家太多的關(guān)注。直到大約一年多前D o c k e r這家公司將L i n u x的容器技術(shù)向前推進(jìn)了一
步,使得它可簡化應(yīng)用封裝,讓應(yīng)用真正能夠跨越不同的L i n u x發(fā)行版運行,包括提供適應(yīng)開發(fā)流程的A P I,從而讓容器技術(shù)真正引起整個業(yè)界的矚目。
第一次聽到容器這個概念,很容易將容器技術(shù)和虛擬機(jī)技術(shù)進(jìn)行對比,但是二者真不是取舍的關(guān)系。因為IT的目標(biāo)是讓客戶成功,這就意味著要很好地運行和管理客戶的應(yīng)用,這不是只靠虛擬機(jī)或者容器就能夠完美實現(xiàn)的。要想順利運行一個應(yīng)用就需要一個高效、安全和高可用的架構(gòu),這是企業(yè)應(yīng)用的基本需求。
所有的企業(yè)應(yīng)用都要具有這些能力的基礎(chǔ)架構(gòu)支撐,無論該應(yīng)用是運行在虛擬機(jī)上或容器里。目前虛擬化技術(shù)已經(jīng)形成了完整的生態(tài)圈,確?;A(chǔ)架構(gòu)的彈性、可靠性和安全。當(dāng)然,應(yīng)用的管理也一樣,虛擬機(jī)已經(jīng)有完善的管理生態(tài)圈,確保運行在虛擬機(jī)里的應(yīng)用能夠很容易達(dá)到企業(yè)級管理的需求。剛起步的容器技術(shù)從應(yīng)用運行到管理維護(hù)都還需要歷練。
其實,可以將虛擬機(jī)和容器放在一起,共同提升S D D C(軟件定義數(shù)據(jù)中心)的服務(wù)能力。當(dāng)然,無論虛擬機(jī)還是容器技術(shù),都是專注解決軟件定義計算的部分,只是S D D C的一個部分,當(dāng)然也是一個很重要的部分。
首先,容器技術(shù)為應(yīng)用提供了很好的移植性,讓應(yīng)用可以輕松跨越不同架構(gòu)遷移。但應(yīng)用和數(shù)據(jù)不是負(fù)載遷移的“攔路虎”,而運維的需求,包括性能容量管理、安全和管理工具集成會讓應(yīng)用部署到新環(huán)境困難重重。因此,僅解決應(yīng)用跨平臺移植只是解決遷移挑戰(zhàn)的一個小問題。
其次,即使我們相信容器技術(shù)和虛擬機(jī)技術(shù)都能達(dá)到同樣的安全隔離等級,基于L i n u x的容器技術(shù)仍然沒有在企業(yè)級獲得驗證。L i n u x容器只是將操作系統(tǒng)的子系統(tǒng)設(shè)計為了可跨應(yīng)用工作,試圖在后來添加隔離特性。這同今天成熟的Hy pervisor不同,Hy pervisor基于裸設(shè)備設(shè)計,從根上解決虛擬機(jī)隔離問題。這些L i n u x容器子系統(tǒng)需要很長時間才能達(dá)到虛擬機(jī)一樣的成熟度。合規(guī)性是另外一個挑戰(zhàn),任何企業(yè)系統(tǒng)都有合規(guī)性的要求。虛擬機(jī)技術(shù)花費了大量時間獲得企業(yè)界認(rèn)可,并通過一系列合規(guī)性的審核,容器技術(shù)還需要數(shù)年的時間。
最后,與其將容器技術(shù)和虛擬機(jī)技術(shù)割裂開來,不如將二者設(shè)計成最佳拍檔,因為容器技術(shù)絕對可以運行在虛擬機(jī)里,享受虛擬機(jī)帶來的所有優(yōu)勢,包括:獲得業(yè)界認(rèn)可的隔離能力和安全屬性,還可以獲得軟件定義計算之外的所有S D D C的特性,當(dāng)然也可以獲得虛擬化大量生態(tài)圈的支持。