新闻、帮助、产品更新动态

最新的业界新闻,产品系统更新开发动态,帮助教程和活动发布

正确认识docker容器与容器云

发布日:2017-08-21 09:07       阅读数:

  Docker让开发者可以打包他们的应用以及依赖包到一个可移植的容器中的特性,使其成为软件行业的游戏规则改变者;这有点类似mp3格式帮助重塑了音乐产业。Docker文件格式成为行业标准,并且领导容器技术供应商(包括Docker、Pivotal,Mesosphere以及其他许多)成立CNCF和OCI。今天,CNCF和OCI的目标就是确保跨容器技术的互操作性和标准化接口,并确保使用任何工具构建的Docker容器,都可以在任何runtime或基础设施上运行。
 
  无数的文章、社交媒体在探讨Docker、Kubernetes、Mesos三者之间孰优孰劣。如果你听信了某些一知半解者的言论,你可能会认为这三个开源项目正在为争夺容器霸权而殊死战斗。同时,你也会相信,在这三者间的选择无异于对其所奉宗教的信仰,而且真正的信徒敢于大胆和异教徒作斗争,并且拥护自己的信仰。
 
  那些都是扯淡。
 
  虽然这三种技术都可以使用容器来部署、管理和扩展应用程序,但实际上它们每个都侧重解决不同的问题,并且扎根非常不同的环境之上。事实上,这三种被广泛采用的工具链彼此完全不同。
 
  与其比较这些快速演进的技术的重叠特性,不如让我们回顾一下每个项目的原始任务、架构以及它们之间如何相互补充和交互。
 
  让我们从Docker开始
 
  今天的Docker公司脱胎于一个平台即服务的初创公司dotCloud。dotCloud团队发现,在许多应用程序和客户之间管理依赖关系和二进制文件需要做大量的工作。因此,他们将Linuxcgroups和namespaces的一些功能组合成一个简单易用的包,这样应用程序就可以在任何基础设施上持续运行。这个包就是Docker镜像,它提供以下功能:
 
  将应用程序和库封装在单个包中(Docker镜像),因此应用程序可以跨多环境一致部署;
 
  提供类似于git的语义,例如“dockerpush”,“dockercommit”,这样可以让应用程序开发人员可以轻松地采用新技术,并将其融入到现有的workflow中;
 
  将Docker镜像定义为不可变层,启用不可变的基础设施。提交的更改被存储为一个单独的只读层,这让镜像复用和跟踪更改变得更加容易。另外,层还可以通过传输更新而不是整个镜像来节省磁盘空间和网络流量;
 
  通过使用可以临时存储运行时更改的可写层来实例化不可变映像,从而方便快速部署和扩展应用程序的多个实例。
 
  随着Docker的风靡,开发人员开始从笔记本电脑转移到在生产环境中运行。这就需要借助工具来协调这些容器,我们称为容器编排。有趣的是,ApacheMesos的Marathon成为当时(2014年6月)第一个支持Docker镜像的容器编排工具(我们将在下面详细描述它)。就连Docker创始人、首席技术官SolomonHykes也推荐Mesos为“生产集群的黄金标准”。不久之后,除了Marathon之外,许多容器编排技术出现了,这其中包括:Nomad、Kubernetes、DockerSwarm(现在是Docker引擎的一部分)。
 
  作为一个集群管理器,Mesos的架构是为了解决一组非常不同的挑战:
 
  将数据中心资源整合成一个单一的池,以简化资源配置,同时在私有或公共云之间提供一致的应用程序和操作体验;
 
  在相同的基础设施上使用不同的工作负载,比如分析、无状态微服务、分布式数据服务和传统应用程序,以提高利用率,降低成本和空间;
 
  特定应用程序的任务(如部署、自修复、扩展和升级)设置为自动化day-two操作;提供高可用的容错基础设施;
 
  在不修改集群管理器或现有应用程序的情况下,提供常绿的可扩展性来运行新的应用程序和技术;
 
  将应用程序和底层基础设施弹性扩展到数万个节点。
 
  Mesos的独特之处还在于,可以单独管理各种不同的工作负载——包括传统的应用程序,如Java、无状态Docker微服务、批处理作业、实时分析和有状态的分布式数据服务。Mesos广泛的工作负载覆盖来自于它的两级架构,它支持“应用感知”的调度。应用感知调度是通过将应用程序特定操作逻辑封装到“Mesos框架”(类似于运行中的runbook)来完成的。
 
  MesosMaster资源管理器,提供这些底层基础设施的框架部分,同时保持隔离。这种方法允许每个工作负载有自己专用的应用程序调度器,它了解其对部署、缩放和升级的具体操作需求。应用程序调度程序也独立地被开发、管理和更新,这让Mesos保持高度可扩展性,支持新的工作负载,或者随着时间的推移增加更多的操作能力。
 
  Mesos具备按需管理每个工作负载的能力,使得许多公司将Mesos作为一个统一的平台,并通过其将微服务和数据服务结合运行。运行数据密集型应用程序的一个通用参考架构是“SMACK堆栈”。

编辑:航网科技   来源:深圳航网科技有限公司

本文版权归原作者所有 转载请注明出处

联系我们

客服部:深圳市龙华区龙胜商业大厦5楼B5区

业务部:深圳市南山区讯美科技广场2栋12楼1202

资质证书

  • Copyright © 2011-2020 www.hangw.com. All Rights Reserved 深圳航网科技有限公司 版权所有 增值电信业务经营许可证:粤B2-20201122 - 粤ICP备14085080号

    在线客服

    微信扫一扫咨询客服


    全国免费服务热线
    0755-36300002

    返回顶部