Docker从颠覆性技术转变为商品的速度打破了记录。 Docker的采用和普及速度带来了很多混乱。

在这篇文章中,我想关注评论的趋势,该评论已变得越来越流行,最近我刚开始从刚开始使用Docker的用户那里听到更多的声音:如果已经选择使用OpenStack,是否有意义?码头工人

在开始对此进行讨论之前,我想从一个简短的背景开始,以了解这个问题背后的原理。

背景

Docker以最简单的形式提供了一个容器,用于管理共享基础架构上的软件工作负载,同时又使它们彼此隔离。 虚拟机(例如KVM)通过创建所有OS设备的完整操作系统堆栈(通过管理程序)来完成类似的工作。 但是,与虚拟机方法不同,Docker依赖于名为LXC(Linux容器)的Linux操作系统的内置功能。 LXC利用进程隔离的内置操作系统功能来存储内存,并在较小程度上利用CPU和网络资源。 Docker映像不需要完全启动新操作系统,因此,为在共享计算资源上打包和运行应用程序提供了更轻松的选择。 此外,它允许直接访问设备驱动程序,从而使I / O操作比管理程序方法更快。 后者使直接在裸机上使用Docker成为可能,这常常使人们问起,如果他们已经在使用Docker,是否真的有必要使用诸如OpenStack之类的云。

Docker与KVM等管理程序之间的性能差异得到了Boden Russell所做的最新基准测试的支持,并在最近的DockerCon事件中得到了体现。

该基准测试相当详细,并且正如预期的那样,它显示了将KVM虚拟机管理程序引导至Docker容器所需的时间之间的显着差异。 如下图所示,这也表明两者之间的内存和CPU利用率存在相当大的差异。

性能上的这种差异可以映射为两者之间以相似比例的密度差异和总体利用率差异。 这种差异可以轻松地映射为成本的巨大差异,该差异直接受到运行给定工作负载所需的资源数量的影响。

我拿

  • 这个问题与OpenStack无关,可以类似地应用于任何其他云基础架构。 在我看来,之所以经常在OpenStack上下文中提出它,是因为OpenStack在私有云环境中相当流行,这是我们甚至可以考虑使用纯Docker替代方案的唯一环境。
  • 这全都与管理程序有关!

许多性能基准测试将Docker与KVM进行了比较,而与OpenStack无关。 实际上,这个针对KVM映像和Docker容器的特定基准测试是通过OpenStack运行的,这表明这两种技术可以很好地协同工作。 在这种情况下,当我选择在基于Docker的Nova堆栈上运行OpenStack时,大多数利用率参数就变得无关紧要,如下图所示(摘自OpenStack文档) 。

  • 云基础架构提供了一个完整的数据中心管理解决方案,就此而言,容器或虚拟机管理程序仅是更大系统的一部分。 诸如OpenStack之类的云基础架构包括多租户安全性和隔离,管理和监视,存储和网络等。 所有这些服务对于任何云/数据中心管理都是必需的,并且与使用Docker还是KVM几乎没有依赖。
  • Docker尚不是一个全功能的VM,并且在安全性方面有一些严重的限制,缺乏Windows支持(如以下电子邮件线程所示 ),因此尚不能被认为是KVM的完全替代方案。 尽管目前正在进行弥合这些差距的工作 ,但可以肯定的是,添加缺少的功能可能会带来额外的性能成本。
  • 原始虚拟机管理程序性能/容器化与应用程序性能之间存在很大差异,如基准测试结果中的下图所示。 对此的可能解释是,应用程序经常使用缓存技术来减少I / O开销。
  • 如果我们将Docker容器打包在KVM映像中,则差异可以忽略不计。 这种架构通常使用管理程序来管理云计算资源,并在其顶部使用编排层(例如Heat,Cloudify或Kubernetes)来管理管理程序资源内的容器。

结论

这使我得出以下结论:正确看待OpenStack,KVM和Docker的方法是作为补充堆栈,其中OpenStack扮演着整个数据中心管理的角色。 KVM作为多租户计算资源管理,而Docker容器作为应用程序部署包。

在这种情况下,一个通用的模型是将Docker用作以下角色:

  • Docker提供了确定性的软件打包,并且非常适合不可变的基础架构模型。
  • Docker可实现出色的微服务POD容器化
  • 在OpenStack和裸机环境之上使用Docker

综上所述,我确实看到了大多数情况是针对定义明确的工作负载的情况,在这些情况下,并非必须使用云基础架构。 例如,如果我考虑出于DevOps目的而自动化小型商店开发和测试环境,那么我会考虑直接在裸机环境上使用Docker。

编排可以是两个环境之间很好的抽象工具。

在Docker上使用业务流程框架的好处之一是,它可以允许我们在任何给定的时间点在OpenStack或裸机环境之间进行切换。 通过这种方式,我们只需将业务流程引擎指向所选的目标环境即可选择任何一个选项。 OpenStack Orchestration(Heat)宣布从Icehouse版本开始支持Docker Orchestration 。 Cloudify是基于开源TOSCA的编排,可在OpenStack和其他云(如VMware,AWS和裸机)上运行,最近还包括Docker编排 。 Google Kubernetes主要与GCE相关联,但可以自定义以与其他云或环境一起使用。

翻译自: https://opensource.com/business/14/11/do-i-need-openstack-if-i-use-docker

如果我使用Docker,是否需要OpenStack?相关推荐

  1. Docker 1.0对OpenStack意味着什么

    在本周星期一和星期二售罄的DockerCon上,有很多重要公告. 但是其中最大的是Docker即将发布1.0. 现在它是否能够满足生产工作负载的所有需求是一个热门话题,但是毫无疑问,这个里程碑是使Do ...

  2. 刚刚,OpenStack 第 19 个版本来了,附28项特性详细解读!

    刚刚,OpenStack 第 19 个版本来了,附28项特性详细解读! OpenStack Stein版本引入了新的多云编排功能,以及帮助实现边缘计算用例的增强功能. OpenStack由一系列相互关 ...

  3. OpenStack技术峰会前瞻,含全球前五用户带来的顶级实践分享

    2010年,第一届奥斯汀OpenStack峰会在美国德克萨斯州召开,当时只有75人到场参会.到了2015年夏季峰会的时候,与会人数已经超过了6000.今年奥斯汀峰会再次召开的时候,则有超过7500人参 ...

  4. 白皮书《Leveraging Containers and OpenStack》(下)

    Kata Containers--通过虚拟化保护应用程序 Kata Containers是一个新的开源项目,是轻量级虚拟机的一种新颖实现,可以无缝集成到容器生态系统中. Kata Containers ...

  5. 白皮书:OpenStack与容器的相遇相知(下)

    导 读 本文由OpenStack基金会官方发布,来自基金会.用户.厂商的16位专家作者联合撰写,原文请访问:https://www.openstack.org/containers/whitepape ...

  6. 1.Docker学习之基础知识

    0x00 Docker 快速入门 1.基础介绍 2.Docker 架构 3.Docker 资源隔离 4.Docker 容器文件系统 0x01 Docker 安装 1. Linux 2. Windows ...

  7. 国外一些有价值的docker相关的文章

    国外一些有价值的docker相关的文章 docker 每周都有周报进行更新,有一个网站列出了从开始2015年1月30日的一些有价值的链接: 关于Weave: 在Azure上一个CoreOS集群上安装W ...

  8. openstack 对比 k8s 深度好文

    原文:https://www.cnblogs.com/goldsunshine/p/9872142.html 当下云计算的领域里热度最高的两个项目,无疑是OpenStack和Kubernetes.如果 ...

  9. Kolla Ansible 部署 -T版openstack

    介绍 Kolla的使命是为运营OpenStack云提供生产环境的容器和部署工具.可使用社区最佳实践进行扩展.快速.可靠和可升级.使用Ansible部署Docker容器运行OpenStack,并提供多种 ...

  10. [openstack]Kolla项目介绍

    声明: 本博客欢迎转发,但请保留原作者信息! 博客地址:http://blog.csdn.net/halcyonbaby 内容系本人学习.研究和总结,如有雷同,实属荣幸! kolla项目 kolla项 ...

最新文章

  1. 面对500篇GNN论文,心态差点儿崩了,幸好我有这本小书
  2. MAC IOS ssh 连接下修改环境变量
  3. LeetCode 101. 对称二叉树 思考分析
  4. 多个基因集富集结果泡泡图绘制展示
  5. SPOJ D-query(莫队算法模板)
  6. Github的README中插入图片,Github仓库项目主页显示图片
  7. PR 审批界面增加显示项方法
  8. 什么是北京54坐标系
  9. vnc远程控制软件配置,vnc远程控制软件怎么配置,教程详解
  10. java练习-String类、StringBuilder类、StringBuffer类10
  11. it项目管理第六次作业
  12. 梦幻西游手游300级装备、30级宝石、抽奖后台、坐骑版本搭建技术讲解
  13. Scientific Linux 6(x86_64) 之旅
  14. Linux【第一篇总结】
  15. mysql的下载与安装
  16. 智能合约(一)————智能合约入门
  17. 【React.js】之Redux
  18. 应该如何选择IT培训机构
  19. 位于html文档的最前面,位于HTML文档的最前面,用于向浏览器说明当前文档使用哪种 HTML 或 XHTML 标准规范的标记是...
  20. 实用软件推荐(二)——最强大的截图工具 (Snipaste)

热门文章

  1. JSP自定义标签就是如此简单
  2. 跟我一起学习ASP.NET 4.5 MVC4.0(一)
  3. PostgreSQL SQL OUTLINE插件sr_plan (保存、篡改、固定 执行计划)
  4. 挨踢部落故事汇(6):女攻城狮职位晋升记
  5. 海量数据切分抽取的实践场景(r11笔记第43天)
  6. IOS组件绑定无效错误
  7. [转] boost库的Singleton的实现以及static成员的初始化问题
  8. 两数相除赋值整数变量(T-SQL)
  9. [安卓】Error和Exception的区别
  10. Python实战——2048