在2014年接近尾聲時,CoreOS在Docker釋出了Rocket,聲稱Docker的流程模型有着“根本性的缺陷”。雖然CoreOS的創始人Alex Polvi盡量緩和語氣,但是他堅持自己的基本觀點,Docker不再是建構系統的最佳元件。
容器技術最近異軍突起,是以很容易看出為什麼Polvi這麼積極地跑馬圈地。因為容器之争才剛剛開始,不過,更嚴重的問題是供應商之間這樣來回的争吵是否會吓跑那些想要采用容器技術的企業,至少讓他們等到争論塵埃落定時。
平台 vs. 元件
CoreOS的Plovi和Docker的創始人Solomon Hykes在一點上有着共識:Rocket和Docker實際上不是競争關系。Hykes說,Rocket“實際上是libcontainer的競争對手”,而不是整體Docker平台的競争對手。Libcontainer,是“為容器制定配置選項”的庫,它對于Docker至關重要,它也是社群的努力結果,能幫助定義容器的未來。
正如InforWorld的Serdar Yegulap所寫,Libcontainer非常重要。
但是Plovi顯然覺得Docker忽略了它自己的核心願望而想去做更多 – 成為平台。
Polvi 說:
"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。"
不管你的公司是需要Docker還是Rocket(或者其他容器技術),最終都是要建構出想要建構的東西。但是公司可以用Docker,平台,加上libcontainer作為Polvi的可組合元件嗎?
絕對有可能。這正是讓人困惑的地方。
Rocket有存在的必要嗎?
開源世界經常會開發出一些沒有實際價值的東西。有時候有些東西之後會變得有價值,但更多的時候卻沒有。
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可能是解決方法,但是開發人員看上去更喜歡Rocker的回到初心(back-to-basics)的方式。
消除困惑
這再次給企業們提出了問題:他們需要Docker還是Rocket?答案很可能是都需要。
有人擔心這兩種互相競争的技術帶給客戶的困惑可能比幫助更多。Polvi說,即便如此,業界,包括競争對手們,都認同的是,容器的價值。
在這個全新的領域,每個人都希望容器能幫助客戶成功。我們覺得必須要做些事情(包括安全,可元件性,和公開标準)來確定容器能應用于企業裡。我們認為Rocket在此有所幫助,并且鼓勵Docker也轉到這個正确的方向上。
這就是競争所起的作用,更準确地說,這就是開源所起的作用。Polvi立刻回應,“總得來說,對于開發元件而不是産品,開源非常有效。”尋求開源容器技術的企業,最好記住這一點,開源能幫助更好地開發建構元件,而不是完成整個企業産品的開發。
這還意味着,Polvi繼續說,CoreOS最主要的競争對手不是Docker,而是“将所有東西自己攢在一起的内部組織。”
“雖然大企業會繼續有自己專門的小組來建構其系統的基礎架構,CoreOS(和Docker)相信他們“可以給那些不想靠自己搭建所有東西,但是想達到大企業同等級别基礎架構的公司提供解決方案。”
從另外一方面,Rocket是一個開源元件,可以幫助企業建構系統,而Docker,根據Polvi的說法,想要自己成為系統/平台。這是兩種完全不一樣的方式,兩者都需要。哪種更适合你的項目取決于你到底想要建構什麼。
好啦,今天的分享到這裡就結束了,如果需要更多的技術性文章,可以直接通路馬哥教育官網!