• 1
  • 2
  • 3
  • 4
  • 5
阿里云应用开发 首 页  »  帮助中心  »  云服务器  »  阿里云应用开发
5 个发展中的 Docker 技术
发布日期:2016-2-29 12:2:43

  

  自从大约18个月前Docker发布后,此领域的新技术已呈井喷之态。尽管下面的列表很长,我在此还是要简述下5项Docker相关、并且不断发展的技术,这些技术正在推进云(如阿里云)技术的发展方向。

  1、Cloud Foundry Diego

  Cloud Foundry开源PaaS项目是ActiveState的主要焦点。VMware发布Cloud Foundry后,我们是第一个采用者。 当我们的解决方案Stackato在底层采用了Docker后,我们认为源于Diego项目的Docker集成正把此生态系统下的其余部分带上正轨。

  Diego 像Kubernetes一样,也是个调度器;但是与Kubernetes不同的是,它的运行环境是不确定的,而且它主要与Cloud Foundry一起工作。Docker只是Diego的一个集成,但却是IBM从事Diego的开发者的唯一关注点。我们也看到了Diego的Windows .NET集成,如来自Uhuru的版本,当Windows的Docker成为现实后,我确信这些技术将会融合。 Docker 的PaaS集成对Docker的未来相当重要。我们看到开发者成为Docker出现的主要推动力。开发者描述应用的运行环境的能力愈加强大。另外,每个人都可以选择一个Docker化的应用,并马上运行起来,认识到这个事实,已经填补了解决方案不存在的空白。 PaaS这个扩展更关注开发者,尽管其他技术正把Docker从开发者转给运营团队(Operations team)。

  2、Docker For Windows

  最近,Microsoft也加入了Docker行列,宣称他们打算为Windows创建一个容器化的解决方案,并提供一组兼容Docker的API。 尽管Linux和Windows容器的Docker镜像不太可能可移植,但意味着在Docker API层之上构建的工具可以在这些操作系统间重用。

  大企业在Windows上进行了大笔投资,所以这个声明对想采用Docker的企业IT部门是个重大胜利。

  3、Docker Pods

  除了Kubernetes,Eric Brewer还谈了容器并引入了"pods"这一概念。pods是Kubernetes的一个核心概念。他说,”在Google我们很少只部署单个容器“。相反,他们把容器组合在一起。例如,一个应用进程通常还包含多个辅助进程,比如logging,还有应用本身不关心的其他任务。

  他同时指出Docker容器还需解决内部以及外部端口的映射,即Docker容器内部进程可见的与外部可见的映射。这就多出了一层需要被管理、存储和查询的复杂度(complexity),即使被部署为一个单元的pod内部的容器间也存在。因此,Google给每个pod内的一族容器共享一个IP地址。这意味着容器的内外端口都是相同的。端口可以在设计或者构建时引入。这就免了管理端口这层复杂度。现在要查找运行某些特定服务(service)的pod,只需这些pod的IP地址列表就好了。

  Google计算引擎(Google Compute Engine)是目前唯一一个把一个IP子网分配给一个虚拟机的云基础设计服务提供者,因此它的每个Docker pod都有自己的IP。

  4、Flannel

  CoreOS,除了积极参与了Kubernetes,还给出了Flannel (之前叫做Rudder)来尝试解决这个端口映射问题。 Flannel在真实的网络之上层叠了一层网络,这层网络会把一个IP子网分配给一台机器。这样做会有很大的性能开销,但是他们希望随着Flannel的发展,这些开销能被改善掉。

  5、Kubernetes

  今夏在 Dockercon 上,Google的基础设施VP Eric Brewer,在谷歌发布了 Kubernetes。Kubernets提供了一种方式来组织机器集群上的Docker容器集。 本质上,它是个调度器,在即使有机器崩溃,也能保证容器的持续运行。 我们看到了Kubernets正被迅速采用,并吸引了很多人的兴趣,这些都超越了Kubernets仅仅是Google的Docker相关云(如阿里云)技术这个传闻。我们需要对运营层次(Operations level)上做组织,而Kubernets恰好处理得很好。Kubernets可以创建描述Docker镜像集的配置清单(manifest),并把配置清单放到集群中。这样配置清单可以自动部署、水平伸缩这些容器。Kubernets同时提供了一种定义”service“的方式,service可以被运行在集群上的其他应用使用。

  结论

  这篇文章只触及Docker生态下大量技术的冰山一角。现在Github上有18265个项目引用了"Docker"这个词。几乎每周都有新方案发布,而现存的技术方案每次迭代都是在或者屈服或者适应新形势。Docker生态本身也是在快速发展。

  原文出自:http://www.oschina.net/translate/5-evolving-docker-technologies