本文轉自DockerOnehtml
在2014年接近尾聲的時候,CoreOS發佈了與Docker相似的引擎Rocket,並聲稱Docker的處理模型有着「根本性的缺陷」。雖然CoreOS的創始人Alex Polvi軟化了立場,但他也堅持本身的基本觀點,他認爲Docker再也不是構建系統的最佳組件。
容器技術最近異軍突起,因此也容易理解爲何Polvi這麼積極地跑馬圈地,由於容器之爭纔剛剛開始。不過,不知道供應商之間這樣來回的爭吵是否會嚇跑那些想要採用容器技術的企業,他們是否會想等到爭論塵埃落定時再選擇使用哪一個容器。
git
CoreOS的Plovi和Docker的創始人Solomon Hykes在一點上有着共識:Rocket和Docker實際上不是競爭關係。Hykes說,Rocket「其實是Libcontainer的競爭對手」,而不是總體Docker平臺的競爭對手。Libcontainer是「爲容器制定配置選項」的庫,它對於Docker相當重要,它也是社區的努力結果,能幫助定義容器的將來。
正如InforWorld的Serdar Yegulap所寫,Libcontainer很是重要。可是Plovi顯然以爲Docker忘記了它當初的願望而想去作更多的事情:平臺。
Polvi 說:github
Docker一開始是用來構建平臺的組件,一個構建模塊,一個能夠集成到現有系統使其可使用容器的東西,這是Docker最初的價值。它是一個簡化工具的構建,這也是我以爲Docker能在今天這麼成功的緣由。docker
這在有些方面這有點像「咱們想回到過去的黃金年代」,可是Plovi堅持這不是反Docker,而是但願Docker繼續做爲一個開放組件來幫助構建其它系統:
Docker[如今]自己就是一個平臺,不是構建模塊。這是壞事嗎?不,它只不過再也不是構建系統的最佳組件。包括咱們的系統,在這上面咱們想要使用容器來構建OS。安全
咱們認爲還須要有這樣組件的存在,讓其它系統能與之集成。咱們認爲Docker的初衷仍然是正確的,所以咱們想確保它繼續存在。這就是咱們開發Rocket的緣由。架構
然而,在有些時候,當你想要構建業務時,Docker可能會有意或無心的增長構建難度。Polvi繼續說:
Docker平臺和Rocket是徹底不一樣的東西。Docker平臺是一個產品,Rocket是一個組件。公司可能會選擇Docker平臺替代[Pivotal的]Cloud Foundry。而像Cloud Foundry這樣的公司卻會使用相似Rocket這樣的組件來構建Cloud Foundry。
app
無論你的公司是須要Docker仍是Rocket(或者其餘容器技術),最終都是要構建出想要構建的東西。可是公司能夠用Docker、平臺,加上libcontainer做爲Polvi的可組合組件嗎?
絕對有可能。這正是讓人困惑的地方。
ide
開源世界常常會開發出一些沒有實際價值的東西。有時候有些東西以後會變得有價值,但更多的時候卻沒有。
Docker替代了Linux 內核的LXC,這種容器技術已經存在了好多年。可是Pivotal的Andrew Clay Shafer指出,「Docker解決了[LXC的]可用性問題,使得咱們可使用這種技術。」
一樣,CoreOS極大的改進了Docker。Pivotal的Cloud Foundry的執行官James Watters說,Rocket讓咱們更進一步思考了這個市場,它始終以多平臺容器思想爲中心,它也承諾會改進Docker的安全性。
並非全部人都贊成。
雖然Hykes認可Rocket提供了「一些好的想法,咱們會引入」,可是他認爲Rocket沒有像CoreOS那樣有本質的改進(突破),包括安全性和可組合性。
可能對,也可能不對。Rocket的受歡迎程度說明它的確知足了行業的深層次需求。即便Docker在擴展其功能以提升易用性,但大多數人可能更想要一個更爲獨立的容器,這樣能更容易的將它集成到現有的項目或者環境當中。Libcontainer多是解決方法,可是開發人員看上去更喜歡Rocket的回到初心(back-to-basics)的方式。
工具
這再次把問題拋給了企業:他們須要Docker仍是Rocket?答案極可能是都須要。
有人擔憂這兩種相互競爭的技術帶給客戶的困惑可能比幫助更多。Polvi說,即使如此,業界包括競爭對手們都認同的是容器的價值。
這個全新的領域,每一個人都但願容器能幫助客戶成功。咱們以爲必需要作些事情(包括安全、可組件性和公開標準)來確保容器能應用於企業。咱們認爲Rocket在此有所幫助,而且鼓勵Docker也轉到這個正確的方向上。
idea
這就是競爭所起的做用,更準確地說,這就是開源的意義。Polvi馬上回應,「總得來講,對於開發組件而不是產品,開源很是有效。」尋求開源容器技術的企業,最好記住這一點,開源能幫助更好地開發構建組件,而不是完成整個企業產品的開發。
Polvi補充道,CoreOS最主要的競爭對手不是Docker,而是「想本身搞定全部事情的團隊」。雖然大公司都會有本身專門的團隊來構建基礎架構,但CoreOS(和Docker)相信他們「能夠給那些不想靠本身搭建全部東西,可是想達到大企業同等級別基礎架構的公司提供解決方案。」
從另一方面,Rocket是一個開源組件,能夠幫助企業構建系統,而Docker,根據Polvi的說法,想要本身成爲系統/平臺。這是兩種徹底不同的方式,二者都須要。哪一種更適合你的項目取決於你到底想要構建什麼。