选择Docker还是Rocket做容器?为何不选择两个?

更新时间:2015-01-12 09:45:28 点击次数:2321次

摘要:Docker和CoreOS一直在争夺容器市场,它们提供不同的方法,相互补充的地方不少于相互竞争的地方。


随着2014年的结束,CoreOS面向Docker发布了一款 Rocket,挑战Docker被当做“固有缺陷”的进程模型。尽管CoreOS的创始人Alex Polvi曾经软化过他的立场,他始终坚持自己的基本观点: Docker不再是构建系统的理想组件。


容器的迅速崛起是近才出现的,因此很容易看出Polvi积极发表声明的原因。随着容器战争的开始,更大的担忧是,供应商之间反复争吵是否会终吓跑企业采用容器技术,至少直到尘埃落定。


平台和组件


有一点CoreOS的Polvi和Docker的创始人Sonomon都赞同:Rocket和Docker没有竞争性——不见得。Hykes告诉我,Rocket实际上是个Libcontainer的竞争对手,并不是包罗万象的Docker的竞争对手。Libcontainer是一个为容器指定配置选项的库,对Docker至关重要,也是个努力帮助定义容器未来的社区。


InfoWorld的Serdar Yegulalp这样写道:“换句话说,Libcontainer真了不起”。


但是,Polvi明显觉得,Docker忽略了自己的核心,期望拥有更多功能——成为一个平台。Polvi告诉我:


Docker一开始的时候是作为一个组件来构建平台,一个构建块,可以将它分层置入系统来利用容器…这是支撑Docker的原始价值,是一个帮助构建东西的简单工具,我认为这是目前它如此成功的原因。


从某种意义上说,就有点像我们想要回到过去的好时光。但是Polvi坚持自己并非反对Docker,而更多的是希望Docker保持一个用于构建其他系统的开放组件:


Docker(现在)本身是一个平台,而不是构建块。这样不好吗?不,它仅仅不再是构建系统的理想组件。我们的系统就包含这个(构建块),我们想使用容器来构建一个操作系统。


我们认为,组件仍然有存在的必要,来供其它系统进行集成。我们认为Docker原始的价值观是好的,所以我们必须确保这种价值观的存在,那就是为什么我们构建了Rocket。


在某种程度上,问题是在它构建业务的过程中,Docker可能有意或无意中使它难以构建其他业务,Polvi继续:


Docker平台和Rocket是截然不同的东西。Docker平台是一个产品,Rocket是一个组件。企业会选择Docker平台来替代Cloud Foundry这类东西,像Cloud Foundry这样的公司会使用Rocket这样的东西来构建Cloud Foundry。


贵公司需要Docker还是Rocket(或者其它容器技术),也许后会归结到你想构建怎样的东西。但是公司能否通过使用Docker平台,然后和Polvi的可组合组件Libcontainer进行搭配?


绝对可以,这就是它变得混乱的地方。


Rocket有存在的必要吗?


开源世界历史有着悠久的免费历史,没人知道需要收费。有时他们会支付,但更多的时候,他们不会支付。


Docker取代了Linux内核存在很久的容器技术LXC。但是正如Pivotal的Andrew Clay Shafer所指出的:“Docker解决了LXC的可用性问题,使得那种技术得以运用。”


以类似的方式,CoreOS也对Docker进行了重大改进。Pivotal的Cloud Foundry执行官James Watters强调:Rocket是把新东西带进市场非常重要的一步,并维持“中心多平台容器”的观点。Rocket还承诺改善Docker的安全等等。


并非每个人都同意这样的观点。


虽然Hykes承认“Rocket提供了一些好想法,我们将会吸收他们”,他坚持认为Rocket缺少CoreOS寻求的主要改进,包括改善安全性和可组合性。


也许是,也许不是。Rocket的激烈反应表明它服务了深层次的行业需要。尽管Docker为追求整体提高易用性而扩展功能,很多人需要更多的离散Libcontainer,以便他们能够轻易地将现有项目和环境塞进去。Libcontainer或许就是答案,但是开发人员似乎欣赏Rocket返璞归真的方法。


清理混乱


再次来看看留给企业的问题:他们需要Docker还是Rocket?越来越多的答案可能是两者皆有。


还有的担心就是,竞争的技术终会迷惑客户,而不是帮助他们。Polvi告诉我,实际上这里有着很强的共识,包括竞争对手之间,需要共同讲述关于容器的价值:


在我们这个新兴空间里,每个人都想客户成功使用容器。我觉得我们需要做一些事情来保证容器已准备好商用,比如安全、可组合性以及开发标准。


竞争就是这样工作的,更恰当地说,开源就是这样工作的。Polvi立即辩解:“一般来说,开源很适合创建组件,而不是产品”。企业寻求开源容器技术,然后,记住这一点,期待开源可以提供更好的构建块,而非成型的企业产品。


这也意味着,Polvi继续告诉我,CoreOS的主要竞争对手不是Docker,而是“内部团队自己拼凑一切”。虽然大公司有团队构建系统来运行基础设施,CoreOS相信,他们可以为那些需要拥有大公司同一级别成熟度而不愿自己构建的公司提供解决方案。


换句话说,Rocket是一个开源组件,可以帮助企业构建系统。根据Polvi的说法,Docker寻求成为一个平台。它们是两种非常不同的方法,都是需要的。在一个特定的项目中,究哪个适合你,很大程度上取决于你想构建一个怎样的东西。


原文链接:Docker or Rocket for containers? Why not both?

本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是一个个人学习交流的平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽,造成漏登,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

回到顶部
嘿,我来帮您!