本文讲的是使用Docker还是Rocket?也许可以一起来,【编者的话】InfoWorld的专家分析了近期来搅容器局的Rocket和Docker的战争,按照CoreOS创始人的说法,Rocket应该是回归到Docker最初的样子,只是一个简单的组件,而不是一个有雄心壮志的平台,企业和开发者们同时需要Rocket和Docker,它们应该互补。但是我认为Polvi套话一堆,Rocket进展并不顺利,并且也没有大的技术突破,要共存,还得看造化。
在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可能会有意或无意的增加构建难度。Polvi继续说:
我们认为还需要有这样组件的存在,让其它系统能与之集成。我们认为Docker的初衷仍然是正确的,因此我们想确保它继续存在。这就是我们开发Rocket的原因。
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可能是解决方法,但是开发人员看上去更喜欢Rocket的回到初心(back-to-basics)的方式。
消除困惑
这再次把问题抛给了企业:他们需要Docker还是Rocket?答案很可能是都需要。有人担心这两种相互竞争的技术带给客户的困惑可能比帮助更多。Polvi说,即便如此,业界包括竞争对手们都认同的是容器的价值。
在这个全新的领域,每个人都希望容器能帮助客户成功。我们觉得必须要做些事情(包括安全、可组件性和公开标准)来确保容器能应用于企业。我们认为Rocket在此有所帮助,并且鼓励Docker也转到这个正确的方向上。这就是竞争所起的作用,更准确地说,这就是开源的意义。Polvi立刻回应,“总得来说,对于开发组件而不是产品,开源非常有效。”寻求开源容器技术的企业,最好记住这一点,开源能帮助更好地开发构建组件,而不是完成整个企业产品的开发。
Polvi补充道,CoreOS最主要的竞争对手不是Docker,而是“想自己搞定所有事情的团队”。虽然大公司都会有自己专门的团队来构建基础架构,但CoreOS(和Docker)相信他们“可以给那些不想靠自己搭建所有东西,但是想达到大企业同等级别基础架构的公司提供解决方案。”
从另外一方面,Rocket是一个开源组件,可以帮助企业构建系统,而Docker,根据Polvi的说法,想要自己成为系统/平台。这是两种完全不一样的方式,两者都需要。哪种更适合你的项目取决于你到底想要构建什么。
原文链接:Docker or Rocket for containers? Why not both? (翻译:崔婧雯 审校:郭蕾)
原文发布时间为:2015-01-07
本文作者:崔婧雯
本文来自云栖社区合作伙伴DockerOne,了解相关信息可以关注DockerOne。
原文标题:使用Docker还是Rocket?也许可以一起来。