就在去年的10月份,大家似乎都鐘愛Docker。你要是以為Docker就是容器領(lǐng)域的唯一玩家,那也情有可原。
Docker本身其實(shí)只是在2014年下半年才備受關(guān)注,Docker 1.0在之前的6月份首次亮相。但在6月份到10月份這短短幾個月的時間里,Docker人氣一路飆升,紅帽在新的RHEL 7版本中增添了支持Docker的功能,IBM公開擁抱Docker和容器,亞馬遜推出了EC2容器服務(wù),連公認(rèn)的競爭對手VMware也在當(dāng)年8月宣布支持Docker。
雖然Docker和容器化目前還無法代替完全成熟的服務(wù)器虛擬化,尤其是在管理基礎(chǔ)設(shè)施方面,但像Kubernetes Docker管理系統(tǒng)這些開源選擇方案還是讓人看到了希望:容器技術(shù)有望在將來滿足企業(yè)的更高級要求。
容器競爭白熱化
但是雖然2014年下半年支持Docker及容器化的聲勢越來越大,但現(xiàn)在Docker的處境也未必是人見人愛。很快就會有許多競爭對手挑戰(zhàn)Docker在容器領(lǐng)域一家獨(dú)大的霸主地位,與之一較高下。
我們在談?wù)撜l呢?首先是CoreOS,這種開源輕型操作系統(tǒng)基于Linux內(nèi)核,是為了給部署的集群系統(tǒng)提供基礎(chǔ)設(shè)施而設(shè)計的。CoreOS的老板Alex Polvi對于Docker技術(shù)邁進(jìn)的方向似乎一點(diǎn)也不滿意。
他在一篇博文中說:“Docker在2013年初首次展示在我們面前時,‘標(biāo)準(zhǔn)容器’這個想法惹人注目,立即引起了人們的注意。”
Polvi繼續(xù)說:“可遺憾的是,一種簡單的可重復(fù)使用的組件影響不了整個系統(tǒng)的運(yùn)作方式。Docker現(xiàn)在在開發(fā)啟動云服務(wù)器的工具、用于集群的系統(tǒng)以及一系列廣泛的功能,比如構(gòu)建映像、運(yùn)行映像、上傳、下載及最終甚至覆蓋網(wǎng)絡(luò),它們都編譯成一個整體的二進(jìn)制代碼,在你的服務(wù)器上主要作為root來運(yùn)行。”
他補(bǔ)充說,從安全和可組合性的角度來看,他認(rèn)為,Docker的流程模型存在根本性的缺陷,因?yàn)橐磺卸际峭ㄟ^集中式守護(hù)程序來運(yùn)行的。
隨后Polvi直指問題的核心:“我們應(yīng)該不要再談?wù)撌裁碊ocker容器,而是開始談?wù)揇ocker平臺。Docker容器沒有成為我們之前設(shè)想的那個簡單的可組合的構(gòu)建模塊。我們?nèi)孕欧頓ocker當(dāng)初提出的容器的最初前提,所以我們在對此做一番工作。”
Rocket,一種新的容器運(yùn)行時環(huán)境
他在這方面所做的工作就是,構(gòu)建一種新的容器運(yùn)行時環(huán)境,名為Rocket,以此替代Docker運(yùn)行時環(huán)境。他表示,它在設(shè)計時就著眼于可組合性、安全性和速度。原型已經(jīng)在Github上發(fā)布。
Docker首席執(zhí)行官Ben Golub很快對CoreOS宣布Rocket作出了回應(yīng)。雖然希望能探討Rocket項(xiàng)目提出的一些技術(shù)觀點(diǎn),他還是采用了頗具外交辭令的說法:
“雖然我們并不同意一些觀點(diǎn)以及選擇宣布Rocket的時機(jī)(就在阿姆斯特丹召開DockerCon大會的前夕),我們還是希望我們都能繼續(xù)以什么對用戶和開發(fā)人員最有利作為開發(fā)產(chǎn)品的指導(dǎo)方針。”
而Rocket不是Docker的唯一替代容器。這個領(lǐng)域還有多得多的競爭對手。
微軟通過Drawbridge支持Docker容器
微軟已經(jīng)宣布,它將在其Azure基礎(chǔ)設(shè)施即服務(wù)(IaaS)系統(tǒng)中支持Docker容器;等自己的平臺即服務(wù)(PaaS)支持Linux后,可能還會在其PaaS上支持Docker。微軟還在致力于開發(fā)自己的容器技術(shù),眼下這項(xiàng)技術(shù)名為Drawbridge。該容器技術(shù)可能會在不遠(yuǎn)將來的某個時候出現(xiàn)在Windows Server和Azure中。的確,Azure的首席技術(shù)官M(fèi)ark Russinovich已證實(shí),公司已經(jīng)在內(nèi)部使用Drawbridge。
另外還有Spoon提供的另一種Windows可能。微軟解釋:“Spoon讓你可以將應(yīng)用程序及其依賴項(xiàng)包裝到一種名為容器的輕型、隔離的虛擬環(huán)境。隨后,容器化應(yīng)用程序可以在安裝有Spoon的任何Windows機(jī)器上運(yùn)行,不管底層基礎(chǔ)設(shè)施怎樣。這就消除了安裝、沖突、故障和缺失的依賴項(xiàng)。”
Spoon容器建立在Spoon虛擬機(jī)的基礎(chǔ)上,而Spoon虛擬機(jī)是一種應(yīng)用程序虛擬化引擎,它為操作系統(tǒng)的諸多核心對象提供了輕型名稱空間隔離機(jī)制,比如文件系統(tǒng)、注冊表、進(jìn)程、網(wǎng)絡(luò)和線程子系統(tǒng)等對象。
Canonical發(fā)布自己的容器系統(tǒng)
另外還有不甘落后的Canonical,該公司已宣布了自己的容器系統(tǒng),名為LXD,面向其Ubuntu Linux發(fā)行版。該公司表示,LXD還將與OpenStack集成起來。(Docker建立在Linux容器即LXC上,LXD的名稱由此而來。)
Canonical這樣解釋其新項(xiàng)目:“LXC將是客戶端,LXD將是服務(wù)器。開發(fā)人員如今之所以喜歡LXC,是因?yàn)樗鼮樗麄兲峁┝藥缀跫磿r的輕型容器,他們因此可以在里面運(yùn)行一系列廣泛的Linux操作環(huán)境。在將來,開發(fā)人員可以在想要創(chuàng)建并拆除這些環(huán)境的所有機(jī)器上運(yùn)行LXD,并且從網(wǎng)絡(luò)上任何地方,使用LXC來驅(qū)動這個過程。”
另外請別忘了Flockport,它大力支持LXC用于容器化。Flockport這樣解釋:“LXC是一項(xiàng)為用戶提供輕型Linux容器的容器技術(shù),而Docker是一種基于容器的單一應(yīng)用程序虛擬化引擎。它們聽起來似乎相似,但其實(shí)全然不同。”
容器領(lǐng)域的整個形勢讓人不由地聯(lián)想到了五六年前的服務(wù)器虛擬化領(lǐng)域。Docker在2014年大受歡迎,在2015年勢必會迎來更迅猛的發(fā)展,進(jìn)一步成熟起來,但是Docker肯定不會是未來容器領(lǐng)域的唯一玩家。
一旦市面上出現(xiàn)了某種優(yōu)秀的技術(shù),大家都想?yún)⑴c其中,包括微軟,微軟早晚會介入。而如果這意味著選擇、甚至競爭,那么自然是多多益善。
本文來源:51CTO 布加迪編譯