Dokku 的作者以及 Docker 早期的贡献者 Jeff Lindsay 在 CenturyLink 的一个采访中讨论了他正在参与的 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 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论