如果我使用Docker,是否需要OpenStack?

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利用率存在相当大的差异。

benchmark

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

我拿

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

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

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

benchmark
  • 如果我们将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 OrchestrationCloudify是基于开源TOSCA的编排,可在OpenStack和其他云(如VMware,AWS和裸机)上运行,最近还包括Docker编排Google Kubernetes主要与GCE相关联,但可以自定义以与其他云或环境一起使用。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值