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告诉我:
从某种意义上说,就有点像我们想要回到过去的好时光。但是Polvi坚持自己并非反对Docker,而更多的是希望Docker保持一个用于构建其他系统的开放组件:
在某种程度上,问题是在它构建业务的过程中,Docker可能有意或无意中使它难以构建其他业务,Polvi继续:
贵公司需要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寻求成为一个平台。它们是两种非常不同的方法,都是需要的。在一个特定的项目中,究竟哪个适合你,很大程度上取决于你想构建一个怎样的东西。 (责任编辑:IT) |