• 1
  • 2
  • 3
  • 4
  • 5
阿里云应用开发 首 页  »  帮助中心  »  云服务器  »  阿里云应用开发
Docker与AWS集成标志着Linux容器的新纪元
发布日期:2016-7-11 15:7:11

  

  本文中,Docker的CEO Ben Golub讨论了和AWS的集成及这个大受欢迎的容器技术的未来发展。Ben Golub,Docker公司的CEO引领了自从2005年Roby on Rails崭露头角之后崛起快的最技术之一。过去的19个月,他的公司将一项确保云规模应用移植性的新容器技术进行了普及。亚马逊Web服务(AWS)在它的re:Invent会议上发布了Elastic Computer Cloud(EC2)容器服务,成为“三大”云厂商中第三个加深对Docker支持力度的厂商。

  那么在Golub看来,AWS和Docker集成的事情,EC2容器服务和其他竞争者提供的服务区别在哪里,Docker和前几代的容器技术差别在哪里,它又会怎样向前发展呢。

  AWS在re:Invent上宣布了EC2容器服务。这个服务和AWS之前与Elastic Beanstalk还有Google的Kubernetes有什么不同呢?

  Ben Golub: 通过AWS,你看到的是对Docker本地接口特别大量的使用,和Docker Hub的更好的集成,Docker Hub是我们的托管服务,它提供对超过50000台Docker化的应用,语言和框架的注册和访问,这样人们可使用像私有注册表这样的东西和工作流的功能。这已成为一个显著的新的集成到AWS的基础架构中,那么[区别是]使用Availability Zones,安全功能,和整个范围内的实例的能力。Kubernetes是一个Google赞助的项目,于是就有了一个Google 容器引擎,相当于AWS EC2容器服务的Google计算引擎。我们很高兴AWS的集成使用的是Docker的本地接口并且和Docker Hub进行了集成。

  市场上还有一些关于Docker的安全性的担忧。Docker未来将会如何改善它的安全立场?

  Golub:Docker在这方面已被显著的加强,有能力利用像SELinux和AppArmor这样的东西来提供更好的隔离。我还从根本上相信除了那些让Docker更加安全而采取的工作外,你还能够让Docker以分层的方式运行,所以你可在一个虚拟机里运行。围绕容器签名所展开的那些事情,事实上你能达到一个更安全的状态,因为每个应用都是由小的元素组成,以至于他们是什么和他们从哪里来的可通过统一的策略来管理和确认,你还能降低受攻击面。

  在过去,容器没有被认为是一个好的用作高可靠性,关键应用的选项。如果底层的操作系统当掉的话,用户是如何确保可用性的呢?有什么工具专门解决这个的呢?

  Golub:过去的这些年,许多围绕可用性和安全方面的问题已变得越来越。Docker容器可特别便宜和快速的构建和部署,人们过去感受到的许多痛苦,也就是他们关于怎样获得高可靠性的想法或获得的状态已经在改变中。要将同样应用的不同版本跑在不同的主机上变得难以置信的容易。我们推荐人们构建应用的方式是让他们将各个进程放进各自的Docker容器中,且提供方式来交互,这样对于存储这样的东西即便在你迁移,构建和销毁应用的同时还能够保持。人们能在虚拟机上使用容器,但他们也能用一种完全崭新的方式使用容器,以此来减轻我们以前所担忧的可用性问题,那时每个应用都严格受制于基础架构。

  许多已有的围绕像HA这样的考虑诞生于当应用会存在很长一段时间,并且非常庞大,运行在一个唯一的服务器上,那么你就会担心这个服务器当掉的问题。这有点像是NORAD和互联网的区别--拥有一样很强大的东西但如果出故障,就会是灾难性的和保持冗余性。如果是一个元素崩溃,你不会注意到它,因为你只需要重新路由。

  在Docker的角度上来看分布式应用,应用的各个组件都是Docker化的,能够跨多服务器运行,所以你不大需担心任何一个单独的服务器当掉,任何一个单独的磁盘故障等。当然若你将一组容器跑在一个OS上,那个OS若死掉的话,容器就不能运行了直到你重启操作系统,但那个对于虚拟机也同样存在这个问题。事实上,对于虚拟机还更糟,因为你在一个主机上运行了一堆的虚拟机,每个虚拟机又有自己的客户操作系统那些也可能会发生故障,且它运行在一个可能出故障的系统管理程序上,底层运行的主机操作系统也可能故障。

  容器怎么都不能算是一个新的技术。为什么现在Docker却受到越来越多的关注?到底是什么改变了?

  Golub:我们经常会使用集装箱来打比方。在Docker以前,你看到的只是密封的箱子。曾经有很多针对Linux,Solaris和BSD的隔离技术,但是对于开发者来说不可用,无法被移植,没一个标准的接口,导致的结果是没一个围绕着这一切的生态系统。在Docker之前,容器是一种底层的技术被用在像Google这样的地方,而他们有专业的团队,专业的基础架构,这很大程度上是一种为组织而不是开发人员而设计的工具。

  我们提供干净的接口,使Docker和现有的工具像源代码一样容易集成,这样构建一个容器就和写你自己的代码一样简单。我们提供这种将Docker容器在任意两个服务器之间移动的能力,这就是操作方的兼容性。但是也是因为Docker以这种方式构造,我们定义了一个应用的所有层次和依赖关系,以至于作为一个开发者,你能确保在你的笔记本上工作的应用也会能在产品和正式环境中运行,同样也能跨集群扩展。这也意味着不需很多的返工,所以若你在对你的应用做一个小的变更的时候,你能利用你之前做过的所有工作或者其他人之前做过的工作。

  在那些大牌厂商在开源项目的基础上提供服务的同时,Docker这家公司是如何保持自己在市场上的地位的?

  Golub:我们从很多企业听到的是,他们想要从Docker获得的是一系列的商业软件来帮助他们管理软件开发生命周期和运行跨本地和多个不同的 [公有] 云(如阿里云)的容器的能力。

  Docker还是一个年轻的公司。我们应该如何期待这个技术和公司在接下来的几年里会如何发展?

  Golub:从今年年初,我们的公司规模已扩大了3倍,加入了很多了不起的管理人才。我们现今的关注是在Docker项目,[和]确保多容器模型的编排功能能实现得很好,也在推出围绕管理和Docker容器编排的服务。