Docker 的未来

jopen 10年前

Dokku的作者以及Docker早期的贡献者Jeff LindsayCenturyLink的一个采访中讨论了他正在参与的Docker的相关项目以及他们打算如何解决涉及到面向Docker服务的架构的问题。

Jeff联合Flynn开发了一个类似Heroku的下一代开源PaaS平台。他的目标是像Heroku这样的PaaS服务商一样,使用容器作为服务代替虚拟机:

我非常希望容器能成为理想的日常工具。[...] 人们使用容器的方式更像是SaaS,所以当你运行容器时将会使用给定的API来管理和重新配置它,你不需要像之前那样修改配置文件。[...]我就是喜欢提供API的所有系统。

有几个项目就是围绕Docker来开发的,以便构建面向服务的架构。

Discoverd是一个简单又强大的服务发现系统,目前基于Etcd,但是也可以使用ZooKeeper或者其它的分布式一致性存储系统。 类似Consul和Etcd这样的项目只是提供基础的服务发现功能,但是Discoverd在它之上提供了一个更加具体和更易扩展的API来实现服务发现。

Ambassadord是 Docker远程代理(Ambassador)模式的实现,它允许跨主机连接Docker容器,支持静态转发、基于DNS的转发或者基于 Consul+Etcd的转发。通过使用iptables,Ambassadord可以基于端口来选择跳转到哪个主机,因此,集群中只需要一个代理即可。

Registrator(原名Docksul)是一个为Docker而设计的服务注册项目,它监听跨主机运行的容器的启动和停止,检查并向Consul或者Etcd注册它们(容器)。

Consulate是由Consul、Ambassadord和Registrator驱动的针对Docker的分布式服务发现和路由网格的项目。Consulate在主机中运行后,集群中的任意容器之间都可以互相通信,它是软件定义网络方案的一种选择,它使用服务发现技术。

Duplex是一个简单的应用程序通讯协议和库,受ZeroMQ的启发,它打算在一个弱中间人的(brokerless)的消息架构中运行RPC。Duplex允许在libchan之上运行RPC并支持完整的RPC语义,libchan是Docker的轻量级网络包。

Configurator把传统的软件配置文件如Nginx、Haproxy、Apache转变为工具。它也是confd的一个替代,可以在无中心存储的情况下运行。Configurator暴露出来的REST API可以通过程序的方式来修改这些服务的配置。

此外,Jeff也在开发Manifold,Manifold是一个基于Consulate的服务发现和分布式调度系统。Manifold用以替代Apache Mesos,它不仅简化了概念模型,而且还易扩展和可控制。Manifold类似于CoreOS的Fleet,它允许定义在集群中部署容器的策略,但是并没有绑定Systemd。

另外,为了更好的促进Docker在国内的发展以及传播,InfoQ开设了《深入浅出Docker》专栏,邀请Docker相关的布道师、开发人员、技术专家来讲述Docker的各方面内容。InfoQ希望Docker专栏能帮助读者迅速了解Docker,希望新的技术、新的理念能让更多的人受益。

查看原文链接:http://www.infoq.com/news/2014/08/the-future-of-docker

来自: InfoQ