开源!垄断!似乎这两个词语是矛盾的,但是在6月19日~21日西雅图召开的DockerCon 2016大会上,业内却对Docker公司的策略产生了这样的疑问。
一直以来,Docker 作为一种开源的应用容器引擎,让开发人员可以将应用和依赖包打包到一个可移植的容器中,并发布到任何流行的 Linux 机器上,当然也可以实现虚拟化,并且不依赖于任何语言、框架或包装系统。
近两年,Docker的发展可以说风生水起,不仅其本身被众多开发人员和企业认可,同时也诞生了以Docker为中心的生态圈。Docker公司的商业模式究竟会如何发展?这一直是业界非常关注的话题,也关系到整个Docker生态系统的未来。而此次DockerCon 2016大会上,随着Docker 1.12.0的发布,Docker生态系统势必将产生不小的变化。
下面就让我们看看Docker 1.12.0到底有哪些不同之处。
随着分布式集群环境下部署容器的需求场景越来越多,对于Docker的管理需求日益强烈。Docker公司创始人兼CTO Solomon Hykes表示,Docker 容器的集群管理,分布式应用在容器集群上的编排管理,一直是 Docker 想为用户解决的痛点之一。Docker 1.12.0 发布之后,通过Swarmkit 项目,使原生 Docker Native 即支持集群与分布式应用系统编排。
SwarmKit项目是Docker公司在本月初发布的,主要用来提供容器集群以及编排能力。SwarmKit通过Containerd类似的方式接入DockerEngine,最终通过新的Docker API对外提供容器集群服务,其意义在于从根本上解决了 “Docker只能单机” 的难题。
其中,SwarmKit的4 项主要功能包括:
- Swarm Mode(集群模式)
单机的 Docker Engine 已经成为历史,新的 Docker Engine 拥有了Swarm Node,包含:以极强的扩展性联合众多 Docker Engine 形成集群;集群内部的多个 Docker Engine 完全有能力实现自组织;无需额外的类似于 ETCD/Consul 的外部存储;集群环境通过 Raft 一致性协议,避免单点故障问题;可以在基础设施之间灵活部署。
- 强加密的节点认证
集群能力的体现,带来的是强大 Docker Engine 的资源整合,如此一来,Docker Engine 集群的安全状态显得尤为重要。而 Swarmkit 带来的特性包括:默认使用极高的安全认证(政治级);实现 node 之间点对点的 TLS 认证;实现内嵌的的极高认证机制;在任何时刻保证节点间的认证。
- Docker Service API
当 Swarmkit 实现编排的同时,也为 Docker Engine 增加了新的 API 功能,面向服务的 API 提供的特性主要包括:
应用系统预期状态的满足;应用系统的自动扩展;应用系统的 rolling update;高级强大的调度功能;以应用为中心的健康检查;节点失效时的应用重新调度。
- 内置路由机制
当集群规模壮大,应用集群规模骤变,负载均衡的需求迫在眉睫,Swarmkit 的结合使得 Docker Engine 自身支持路由功能,而与原生 ovelay 网络的结合,效果愈加显著:Swarm 集群机制的 overlay 网络支持;容器原生的负载均衡;基于 DNS 的服务发现机制;无需额外的集群设置;可以兼容用户现有的负载均衡服务;通过 IPVS 与内核强强联合,实现可靠的负载均衡。
换句话说,Docker 1.12.0 的发布彻底给工具链 Docker Engine 来了个“一窝端”,此前,容器编排由 Docker、Kubernetes、Mesos 三足鼎立的现状是否还能维持亦未可知。
Docker 公司 CEO Ben Golub表示,一直以来,Docker都以将Docker大众化为目标。目前,全球已有 46万个应用的 Docker 化,并且实现两年增长 3000%,仅 DockerHub 一方,即有 41 亿次的镜像下载,近半年增长 26 亿次。如此大的用户群和增量,都预示着未来Docker的不容小觑,而其生态圈的构建也势必影响着众多用户和合作伙伴。