happybigqiang 2015-01-13
当Docker开展的18个月前,我们就开始了一项任务,以建立“按钮”的方式,可以使任何应用程序立即持续的运行在任何地点的任何服务器上。
我们的第一个任务是定义一个标准的容器格式,将任何应用程序打包在一个轻量级的容器中,可以让它运行在任何的基础框架上。
正是有很多的辛勤工作者参与到了Docker的整个社区,Docker的功能才会变得很强大,我们可以做出一些比较成功的Docker容器,让其可以运行在所有主要的基础设施上;因此,我们建立一个强大的生态系统,包括:
在这个过程中,我们构建了一个健壮、开放的设计和治理结构,可以让用户、供应商和贡献者来帮忙指导 Docker 项目的发展方向。
在过去的九个月,我们对 Docker 进行拓展,使之超出饿了一个简单容器的范畴。不过 Docker 继续定义着单一容器格式。很明显,绝大多数我们的用户和贡献者以及供应商都希望 Docker 可以支持在运行在多个主机的多个离散容器中分发应用程序。
我们认为,当我们转向一个多容器、分布式应用的世界时,单个Docker容器应用的简单、开放的接口,无论何地的可移植性,健壮的生态工具集如果丢失,将是非常令人遗憾的。因此,我们一直在推广更加全面的编排服务集(set of orchestration services),涵盖网络、调度、组合、集群等功能。更多细节可以在这周阿姆斯特丹举办的 DockerCon上获取到,其中一些设计点值得注意:
当然,不同的人对开源项目如何开发有不同的看法。如上文提到的,绝大多数的用户、贡献者、生态系统内的厂商都希望这个项目支持标准的、多Docker容器的分布式应用。很多厂商,无论大小,都欢迎并正在为此贡献努力(关于Docker开放治理的更多信息,查看下这篇文章)。
我们仍致力于生态系统内的用户、厂商和贡献者。无论大家向Docker贡献的形式,是作为构建Docker容器格式的独立项目,还是作为Docker编排API的插件,或者其他形式,我们都希望开放、分层的方法都能给全部相关者提供选择。但是,一小部分厂商不认可这个方向。有些表达了他们的担忧,当Docker扩大适用范围,他们创造差异化、增值业务的空间就变小了。某些情况下,这些厂商甚至希望创建为他们特定基础设施或业务量身定做的编排方案,因此不欢迎可移植性的概念。当然在另外一些情况下,会有些技术性或者哲学意义上的区别,这些区别看上去与Rocker最近的发布声明有关。我们希望能在后续的文章中解释Rocker项目带来的一些技术争论。
这里,我们要强调这只是一个健康的,开源过程。就像 Docker 是开源的,并遵守Apache开源协议,人们可以自由使用,修改,或者为了自己的需求进行改造。他们可以只把Docker作为一个简单的容器。他们可以自由的将更高级别的服务加入到Docker。当然他们也可以自由的推广另外一种概念作为新标准,就像Rocket团队已经做的那样。