Docker发布编排工具包

jopen 9年前

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的技术做为规模化运行容器的黄金标准。(参见油Tube视频35分钟左右)

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

他说对于Mesosphere与Swarm一体化有两件事情要强调:
  1. Hyperscale(超大规模):对于任何想在高自动化环境中运行容器的大型企业(数百台机器), 不管是内部还是云端部署,Mesosphere的技术都是唯一公开可用的容器编排系统,很多运行数百万容器的企业在使用它,像推ter、 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 (翻译:田浩浩 校对:李颖杰)

===========================
译者介绍
田浩浩,悉尼大学USYD硕士研究生,目前在珠海从事Android应用开发工作。业余时间专注Docker的学习与研究,希望通过DockerOne把最新最优秀的译文贡献给大家,与读者一起畅游Docker的海洋。