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仓库。 |