从四年前Docker普及软件容器开始,围绕容器化的一整个生态系统成长了起来,并在这有限的时间段里经历了两个截然不同的成长阶段。在这两个阶段中,用于生产容器系统的模型在不断演进,以适应用户社区、项目及日益壮大的贡献者生态系统的数量和需求。
Moby项目是一个新的用于推进软件容器化运动的开源项目,它将协助生态系统让容器成为主流。它提供了一个组件库、一个用于将这些组件组装成基于定制容器的系统的框架,以及一个所有容器爱好者进行试验和交流想法的场所。
下面来回顾一下我们是如何走到今天这步的。在2013-2014年之间,先驱者们开始使用容器并在一个庞大的开源代码库(Docker及其他一些项目)中协作以帮助这些工具成熟起来。
接着在2015-2016年之间,容器被大规模应用到了原生云应用程序的生产环境中。在这个阶段,在数百个生态系统项目及数千个贡献者的支持下,用户社区迅速增长到足以支撑成千上万的部署。也就是在这个阶段中,Docker将生产模型转变成了一个基于开放组件的方案。通过这种方式,让我们可以同时提升创新和协作的表面积。
有助于合作方生态系统及用户社区成长的新的独立的Docker组件项目迅速崛起。在这段时间中,我们将各个组件从Docker代码库中剥离并快速进行创新,以便系统制作者们可以在构建自己的容器系统时独立地重用它们,比如runc、HyperKit、VPNKit、SwarmKit、InfraKit、containerd等等。
处在容器浪潮的最前沿,我们看到2017年新兴的一个趋势是容器正在成为主流,它广泛地传播到了计算的各个类型中:服务器、数据中心、云服务、台式机、物联网及移动设备;涉及每个行业和垂直市场:金融业、医疗业、政府、旅游业、制造业;以及每个用例:先进的Web应用程序、传统的服务器应用程序、机器学习、工业控制系统、机器人。在容器生态系统中,很多新加入者的共同点在于他们针对某个特定的基础设施、行业或用例构建了特有的系统。
作为一个公司,Docker以开源作为创新实验室与整个生态系统进行协作。Docker的成功与容器生态系统的成功密不可分:只要生态系统成功了,我们就成功了。因此我们一直在规划容器生态系统成长的下一个阶段:什么样的生产环境模型可以帮助我们扩展容器生态系统以实现将容器作为主流的承诺?
去年,我们的客户开始寻求Linux之外其他平台上的Docker方案:Mac和Windows桌面版、Windows服务器版,以及类似亚马逊AWS、微软Azure或谷歌云的云平台,而我们也创建了针对这些平台的多个Docker版本。为了让这些特定版本能在一个相对短的时间内,以小团队、可扩展的方式完成构建和交付,而无须重新发明轮子,很明显我们需要一个新的方案。我们借鉴了汽车行业中通过组装可重用组件以构建完全不同的车型的主意,要求我们的团队不仅要在组件上协作,也要在组件的组装上进行协作。
我们认为扩展容器生态系统进入下一层次,从而让容器进入主流的最好办法是在生态系统层次进行组装的协作。
为了实现这个新层次的协作,我们宣布了Moby项目,一个新的用于推进软件容器化运动的开源项目。它提供了数个组件的“乐高组合”,以及一个所有容器爱好者进行试验和交流想法的场所。可以将Moby视为容器系统的“乐高俱乐部”。
Moby由以下部分组成:
Moby是为那些想构建自己的基于容器的系统的系统构建者而设计的,而非应用程序开发人员,后者可以使用Docker或其它容器平台。Moby的参与人员可以选择派生自Docker的组件库,也可以选择“自带组件(bring your own components,BYOC)”打包成具备混合和匹配所有组件的选项的容器,以创建一个定制的容器系统。
Docker使用Moby项目作为一个开放的研发实验室,用于进行试验、开发新组件,以及与生态系统就未来的容器技术进行协作。我们所有的开源协作都将迁移到Moby项目中。
请与我们一道,通过组件与组装上的协作将软件容器变为主流,并让我们的生态系统和用户社区成长进入下一个层次。