Docker 公司发布了它们基于 Docker 的分布式应用的编排工具集的初始版本,编排工具集包括 Machine 、 Swarm 和 Compose 。从 Docker 博客中得知目前的版本尚不可在生产环境使用,但官方正在收集社区反馈。
Docker 博客中解释到,开发者需要可以在开发、测试和生产环境中可移植的分布式应用,这些应用需要在不同的平台提供商之间迁移,比如在不同的云平台或者私有数据中心部署,同时,应用应该是可组合的,一个应用可以分解为多个服务。Beta 版本的Machine、Swarm 和Compose 是Docker 公司使用Docker 生态圈来解决这些问题迈出的第一步。
Machine 为本地机器、私有数据中心以及云服务商提供 Docker 引擎,并可以配置一个本地的 Docker 客户端来安全(通过 TLS)地与已经部署的引擎交互。Machine 对部署平台进行了抽象,用户在对 Docker 零了解且不熟悉目标环境的情况下,可以通过一个简单的命令部署 Docker 引擎。
Machine 的 beta 版本目前支持 12 个环境提供商,比如 Amazon EC2 以及 Microsoft Azure ,另外,在 Machine 的 GitHub 仓库中还有其它 9 个供应商提交的未处理的PR 。Docker 博客表示Machine 目前只支持简单的机器管理(比如启动和停止),运行远程命令、通过SSH 登录、升级Docker 引擎等新功能需要等待下个版本。
Swarm 为 Docker 容器提供了原生的集群,它将几个 Docker 引擎聚集在一起,然后对外暴露为一个单一的虚拟 Docker 引擎。Swarm提供了标准的 Docker API ,因此 Docker 客户端或者其它的第三方工具可以轻松扩展到多台主机,比如 Dokku 、 Shipyard 。
用户可以通过标准的 Docker 镜像来安装 Swarm,无需外部的其它依赖。用户可以通过在本地运行一个命令来创建集群并启动 Swarm,紧接着再通过运行命令将运行 Docker 引擎的主机加入到集群,Swarm 能够管理资源,并可以按需在集群中加入和移除容器。
针对特殊的容器需求,Swarm 也支持约束(Constraints),比如只在一个主机上通过闪存运行 MySQL。用户可以通过 ‘affinities’来指定容器之间的位置关系,比如两个 CPU 密集型的容器不应该放到同一台主机上。
在未进入生产环境之前,Swarm 还有一些计划。例如,Swarm 目前尚不能在失败的主机上重新调度容器,这无法保证应用的容错性。Swarm 目前只可以在单个master 的模式下运行,这远不能满足高可用的环境要求。另外,官方还计划让Swarm 中的组件成为可替换的,比如scheduler。
Compose 是一个编排工具,它可以定义并运行基于 Docker 的分布式应用。Compose 基于 Fig ,Fig 是一个已经存在的工具,它可以运行 Docker 的开发环境,并通过一个简单的文件来定义应用组件,这些组件包括容器、容器配置、连接以及卷。
Compose 有一整套的命令来管理容器化应用的完整开发周期,包括服务的启动、停止和构建。用户可以通过日志输出来查看运行服务的状态,只需在服务上运行一个命令即可。Compose 的路线图包括提供对测试、模拟和生产环境的支持,与Swarm集成,为横跨多个团队和镜像仓库的应用提供支持,进一步自动化开发容器的构建流程。
Machine、Swarm 和 Compose 的 beta 版本的发布详情可以在 Docker 博客中找到, Machine 、 Swarm 和 Compose 可以从 Docker 网站下载。Docker 公司也正在通过 docker-dev 邮件列表征求概要设计方面的反馈,单个项目的反馈可以提交到对应的 Docker 工具 GitHub 仓库。
查看英文原文: Docker Release Initial Versions of Machine, Swarm and Compose Tools
评论