如果使用Docker后,还需要OpenStack吗?

640?wx_fmt=png


640?wx_fmt=gif

Solomon Hykes创立了Docker,没有想到过Docker会人气爆棚,成为仅次于OpenStack的最受欢迎的云开源项目。


然而听说过Docker的朋友很少知道其真正的意义,很多人会被各种概念混淆,甚至把OpenStack和Docker进行类比,三周前看到一篇好文章(虽然发此篇时间上已经优势全无,但依仗我们精准的理解,翻译和挑选眼光,还是决定无耻滴发了),答案可以在以下这篇Nati Shalom的博文中找到,在此感谢朱荣泽同学的技术翻译矫正。


Docker从一个新兴的技术到一个商品化模式,这一过程的发展速度很惊人,它炙手可热的同时也给带来一些困惑。


笔者从一些刚开始用Docker的同学听到一些评论和疑问:  假如用了Docker再去用OpenStack是否合适?


讨论之前,先介绍Docker的相关背景:


简单来说,Docker提供了一种程序运行的容器,同时保证这些容器相互隔离。虚拟机也有类似的功能,但是它通过Hypervisor创建了一个完整的操作系统栈。不同于虚拟机的方式,Docker依赖于Linux自带的LXC(Linux Containers)技术。LXC利用了Linux可以对进程做内存、CPU、网络隔离的特性。Docker镜像不需要新启动一个操作系统,因此提供了一种轻量级的打包和运行程序的方式。而且Docker能够直接访问硬件,从而使它的I/O操作比虚拟机要快得多。


Docker可以直接跑在物理服务器上,这引起大家的疑问:假如已经用了Docker,还有必要使用OpenStack吗?


最近Boden Russell在DockerCon上做了关于Docker和KVM的性能测试对比图表。和预期的一样,启动KVM和Docker容器的时间差异非常显著,而且在内存和CPU利用率上,双方差距非常大,如下表所示。


640?wx_fmt=png


双方巨大的性能差异,导致了在相同工作负载下,KVM需要更多的CPU和内存资源,导致成本上升。


观点如下:


1、这个问题和OpenStack没有直接的联系,也可以套在其他云平台上。大家为什么会拿Docker和OpenStack做比较的原因是:OpenStack是私有云环境中最流行的云平台,在私有云环境中,大家认为可以把Docker作为另一种选择。


2、有关于Hypervisor的误区:

很多KVM和Docker的性能测试的对比跟OpenStack一点关系都没有,因为OpenStack只是一种框架。事实上这种性能测试(不管是KVM还是Docker)是跑在OpenStack下,这表明了KVM和Docker可以共存。当使用OpenStack去管理Docker情况下, Docker和OpenStack的争论是没有意义的。


640?wx_fmt=png


3、云平台提供一个完整管理数据中心的解决方案,至于用哪种hypervisor或container只是云平台中的一个小部分。像OpenStack这样的云平台包含了多租户的安全、隔离、管理、监控、存储、网络等其他部分。云数据中心的管理需要很多服务支撑,但这和用Docker还是KVM其实没多大关系。


4、Docker不是一个全功能的VM, 它有很多严重的缺陷,比如安全、Windows支持,因此不能完全替代KVM。现在Docker社区一直在弥补这些缺陷,当然这会带来一定的性能损耗。


5、原生hypervisor的性能、容器化的性能、应用的性能是不一样的东西,相互对比没有意义。


640?wx_fmt=png

640?wx_fmt=png


6、把Docker容器打包进KVM镜像中对Docker运行几乎没有影响。这种架构通常是用hypervisor来管理计算资源,而像Heat、Cloudify、Kubernetes这样的orchestration layer都用于管理在hypervisor中的docker容器。


结论:


正确看待OpenStack、KVM、Docker的方式应该是:  OpenStack用于管理整个数据中心,KVM和Docker作为相应的补充,KVM用于多租户的计算资源管理,Docker Container用于应用程序的打包部署。在这种场景下,Docker的作用是:


1、Docker提供一种特定的软件打包方式,使得软件可以保持在相同的环境下运行。

2、Docker为微服务提供了很好的容器。

3、Docker在OpenStac、裸机上运行几乎一样。


总得来说,对于大部分的应用场景,使用那种云平台都可以。比如我要给一个DevOps小组提供自动化开发和测试环境,我会考虑直接在物理服务器上跑Docker。


Orchestration对于这两种环境(OpenStack和Docker)是很好的抽象工具。


使用Docker的Orchestration框架的好处是可以在任意时候在OpenStack和裸机环境中切换,也就是说你可以指定Docker跑在OpenStack或裸机环境中。OpenStack Orchestration工具Heat从Icehouse版本开始支持Docker。Cloudify是一个基于开源TOSCA 的Orchestration,它可以跑在openstack、VMwara、AWS、裸机环境中,最近也支持Docker。


原文链接: 

http://natishalom.typepad.com/nati_shaloms_blog/2014/11/do-i-need-openstack-if-i-use-docker.html


如何快速成为被仰视的技术牛人

640?wx_fmt=jpeg
(点击图片阅读)



温馨提示:

请搜索“ICT_Architect”“扫一扫”二维码关注公众号,点击原文链接获取更多电子书详细

640?wx_fmt=png

求知若渴, 虚心若愚

640?wx_fmt=gif

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值