Docker发布编排工具包


【编者的话】Docker在其官方博客中宣布编排工具集第一个版本已经可以下载,但仍不可在生产环境使用。其中Machine与Swarm是Beta版,而Compose发布的是1.1版本。这三个工具请读者重点关注,它们是今年Docker的重头戏。

Docker今天发布了其在12月份欧洲DockerCon上介绍的编排工具包。这三个编排工具旨在保证Docker拥有“100%的移植性”,包括实现混合云架构来运行容器式或分布式应用程序。

当去年在阿姆斯特丹宣布编排工具包时,Docker间接地回应起初社区对此问题的关切。Docker强调的是自由,而开发者不得不控制如何在生产环境中构建、装载与启用多容器、多主机应用程序。

这三个编排工具有:Docker Machine、Docker Swarm与Docker Compose。Machine与Swarm是Beta版,而Compose发布的是1.1版本。

Docker Machine

Docker Machine是一个可以通过一个命令直接安装Docker引擎的工具。Docker公司企业营销副总裁兼系统管理员与运维David Messina说它非常适合用于混合环境中,你再也不用学习一套独立的命令来获取并启用一个Docker容器应用。Messina还说对于Docker Machine,用户可以使用一个统一的命令来减少跨基础设施的成本。目前Beta版本已经有十二个驱动程序,其中包括Amazon EC2、Google Cloud Engine、Digital Ocean与VMware。

虽然现在还无法确认有多少用户会使用Docker来编排混合云架构中的分布式应用,但Messina认为“Machine一定是达成这一愿景的关键的推动者“。

Docker Swarm

Docker Swarm是一个集群和调度工具,它会基于应用程序的生命周期、容器的使用与性能的需求自动优化分布式应用程序的基础架构。

Messina说:“Swarm有多个模型来确定调度,包括了解特定的容器应用有怎样的资源需求,比如计算和内存资源。”处理调度算法时,Swarm将决定哪个引擎和主机应该运行,比如有些情况下,我们应该首先考虑应用之间的关系,而有关系的那些容器可能就需要运行在同一个主机上。

“Swarm的核心内容是,当你使用多主机、分布式应用程序时,你仍想要保持开发的经验而且保证应用的可移植性。Swarm提供了连续性,但你也想拥有的灵活性,例如,对于正在使用的应用程序可以使用特定的集群的解决方案的能力。这确保集群功能一直是可移植的,不管是从笔记本电脑还是到生产环境中。”

保持Swarm灵活性

Swarm为生态圈合作伙伴提供了Swarm API,以支持第三方的编排工具。这是Docker一直提倡的“batteries-included-but-swappable”(译者注:想象一下以前能换手机电池的诺基亚手机:))。有些用户可能愿意使用Docker Swarm以确定多容器分布式应用程序架构的优化集群。其他人会想用Swarm的集聚和调度部分来设置自己的参数,而还有一些人将目光转向生态系统合作伙伴的替代编排优化产品来推荐最佳集群组合。

Apache Mesos(译者注:想要了解Mesos的朋友可以参考这里)的企业赞助商Mesosphere是Docker最初的生态系统合作伙伴,他们使用Swarm API创建了替代的优化产品,期待将来有来自Amazon、Google、Joyent与MS Azure等的可供选择的解决方案。

Mesosphere营销副总裁Matt Trifiro说:“Swarm首次公布后,Mesosphere和Docker就聚集在一起,因为两家公司的工程师立即看到了如何将这两个项目结合在一起。”

在DockerCon EU上,Docker创始人兼CTO Solomon Hykes挑出Mesosphere的技术做为规模化运行容器的黄金标准。(参见YouTube视频35分钟左右)

Trifiro说,对于大规模运行的分布式应用程序,Mesosphere的编排工具,相对于Swarm的“batteries-included”版本,更适合以确定优化的集群及调度业务流程。

他说对于Mesosphere与Swarm一体化有两件事情要强调:

  1. Hyperscale(超大规模):对于任何想在高自动化环境中运行容器的大型企业(数百台机器),不管是内部还是云端部署,Mesosphere的技术都是唯一公开可用的容器编排系统,很多运行数百万容器的企业在使用它,像Twitter、Groupon和Netflix,以及在一些最大的消费类电子产品和金融服务公司。

  2. Multitenant Diversity of Workloads(工作负载的多租户多元化):如果想在同一个集群上以高弹性的方式运行Docker Swarm应用以及其它应用,那就只能选择Mesosphere的技术。例如,你可以在一台Mesosphere集群上相互运行Cassandra、Kafka、Storm、Hadoop和Docker Swarm应用,他们都共享相同的资源。这样可以更有效地利用集群资源,大大降低了运营成本和复杂性。


Docker Compose

使用Docker Compose工具可以构建在Swarm上运行的多容器应用程序。Compose工具使用YAML文件来维护所有应用程序容器的逻辑定义以及它们之间的连接。使用Compose构建的应用程序可以在不影响其它服务的情况下自动更新。

潜台词:我们可以做的更好

Docker发布Swarm以及Swarm API也消除了12月份社区所猜测的种种疑虑。Docker一直致力于为社区合作伙伴建立一个生态系统经济,他们已经构建了加强DevOps、监控、持续改进、质量保证以及需要在一个容器化、分布式应用环境中定位的其他程序的产品。社区成员一开始担心Docker会直接构建编排工具,而不是担心能不能够创造一个像Mesosphere那样的集成产品,竞争编排工具将需要使用一个精密变通的解决方法,以提供一个替代Docker已经有的产品。

Docker编排公告一再强调说是100%的可移植性以及Swarm API的 “batteries-included-but-swappable”的性质巧妙地解决这一问题。

Messina说:“Docker官方的编排公告中有提到,Docker的编排工具会对生态圈中所有的编排工具开放,Docker社区需要建立多容器和多主机的分布式应用程序。编排工具都非常灵活,它允许合作伙伴通过API进行开发。”

原文链接:Docker Releases Orchestration Tool Kit (翻译:田浩浩 校对:李颖杰)

===========================
这里有一个Docker编排工具的Demo视频(感谢扁豆焖面先生的推荐)
===========================
译者介绍
田浩浩,悉尼大学USYD硕士研究生,目前在珠海从事Android应用开发工作。业余时间专注Docker的学习与研究,希望通过DockerOne把最新最优秀的译文贡献给大家,与读者一起畅游Docker的海洋。

5 个评论

Docker 组件demo:
http://www.tudou.com/plcover/Ica4-YYZ-r0/
Compose是编排工具可以理解,为什么其中Machine和Swarm也是编排工具?
编排工具 你可以这样理解:如果把docker比喻成交响乐里面的各种乐器,那么这三个工具相当于指挥。Compose指挥每个docker的弹奏方式;Swarm指挥docker乐器的分工管理;Machine指挥docker乐器的安置和摆放。
这个视频不错!周一上班了,我把他放到文章里
Deploying Crate Using Docker Swarm
http://www.tudou.com/programs/view/OxaFmFtCrQA

要回复文章请先登录注册