完美應對企業(yè)生產(chǎn)環(huán)境的挑戰(zhàn),Docker是否已做好準備?
譯文對于開源應用程序容器初創(chuàng)公司Docker而言,去年可謂是大好年份。Docker可以幫助應用程序在任何內部環(huán)境或云計算環(huán)境中高效地運行,不管使用什么樣的運行時系統(tǒng)(runtime)。
Docker一路高歌猛進,其項目在2014年6月發(fā)布了1.0穩(wěn)定版本,當時適逢首屆DockerCon大會在舊金山召開,Docker社區(qū)儼然一副日益壯大的態(tài)勢。
在2014年,該公司宣布了與微軟、紅帽、谷歌、亞馬遜網(wǎng)絡服務和VMware等業(yè)界巨頭達成了一系列合作伙伴關系和整合項目。到年底,Docker聲稱有71379多款應用程序已準備好支持Docker。
基本上準備就緒
Docker的發(fā)展勢頭似乎不可阻擋;知名調研機構加特納集團(Gartner)近期的一份報告證實了這一觀點;該報告表明,這項還很新興的技術基本上已為企業(yè)做好了準備,不過請注意,重點應放在基本上。
但容器領域并非Docker一家獨大。
首先,讓Docker準備好在生產(chǎn)環(huán)境下運行需要更龐大的生態(tài)系統(tǒng)伸出援助之手。雖然用Docker容器封裝的應用程序具有良好的可移植性,但是它實際上就待在那里。復制、可擴展性、彈性和安全性都需要其他公司的工具給予幫助。
許多公司都希望借Docker的勢頭大有作為,它們之間的競爭非常激烈。加特納集團的上述報告指出,SELinux和AppArmor是任何準備走Docker這條路的IT部門都應該考慮采用的額外安全層。Asigra已推出了面向容器的專用備份解決方案。谷歌計算引擎、亞馬遜網(wǎng)絡服務和微軟Azure都在竭力證明自己擁有***大的原生工具,可用于管理、擴展、調度或更新Docker容器。(多年來,谷歌在其數(shù)據(jù)中心使用自家的Linux容器技術。它積極支持Docker社區(qū):將源代碼移交給Kubernetes這個容器管理項目就是佐證。)
隨便你說出一種功能、需求、工具集或是應用程序,Docker生態(tài)系統(tǒng)里面都可能有廠商在已經(jīng)致力于此。
失去重點?
但是形勢一片大好的應用程序容器領域也存在問題:Docker不希望生態(tài)系統(tǒng)的其他人分得一杯羹,至少不是完全。這家公司一直在不遺余力地擴建平臺,增添了更多的容器編排和管理功能。這招來了容器社區(qū)的一通批評,容器社區(qū)認為Docker這家公司忽視了Docker這個項目當初得以大獲成功的輕量級特性。換句話說,Docker需要適應現(xiàn)有的工具鏈,而不是成為另一個系列的不定因素。
實際上,Docker在2014年年底陷入了很尷尬的境地,當時大受歡迎的、超輕量級Linux內核初創(chuàng)公司CoreOS(它一向態(tài)度非常明確地支持Docker平臺)炮轟Docker失去了重點,并發(fā)布了自己的容器運行時系統(tǒng):Rocket。
Docker回應稱他們不同意Rocket公告中“令人質疑的論調”,這種回應不是很有說服力,只是讓大家更相信CoreOS的觀點。
Docker賴以成名的地方是讓容器變得更簡單、更有效,而不是“發(fā)明輪子”:自2008年以來,Linux容器(LXC)一直是Linux內核的一部分,而LXC的身世甚至可以進一步追溯到OpenVZ和Solaris容器等技術,甚至可以追溯到1979年和chroot命令。
可此可見,自Docker為這個概念重新注入活力以來,Rocket可能是***個主要的替代容器,但它不會是***一個替代容器,沒有什么阻止得了其他公司在這個概念的基礎上開發(fā)出自家技術。
虛擬化需求
重要的是記住這點:Docker并不適合每一種使用場合。VMware和Docker似乎是一對怪異的合作伙伴,畢竟前者銷售虛擬化軟件,而后者可以大大減少你需要的虛擬機數(shù)量,但要考慮到這一點:Docker非常適合用于封裝跨不同環(huán)境運行的新型應用程序,但不是每個應用程序都非常適合這項任務。
比如說,盡管微軟承諾與Docker社區(qū)合作,但Windows應用程序在Docker環(huán)境下運行起來不是非常高效,而是需要變通方法。
換句話說,VMware等公司仍然可以發(fā)揮其作用。在未來很長一段時間,虛擬機在大多數(shù)數(shù)據(jù)中心仍然會有一席之地,盡管Docker和之類的容器為少花錢多辦事提供了一條途徑。(Joyent等一些公司提供了管理VMware/容器混合環(huán)境的工具。)
即使一些公司認為容器適合自己,但除了Docker外,容器方面還是有很多的選擇。