首页 > 代码库 > 选择虚拟机还是容器?-【软件和信息服务】2014.09
选择虚拟机还是容器?-【软件和信息服务】2014.09
最近业内有人在探讨一个趋势-“虚拟机:永远的光荣还是垂死挣扎呢?”这个探讨主要源于Docker公司和Linux容器(Container)的探讨。很多人疑惑到底是否容器技术终将取代虚拟机技术。可能你也听说了Linux容器技术,但并非每个人都花时间研究了容器技术的来龙去脉,这不是一条140字的微博能够说清的,因此先分享一点背景知识。
关于容器技术
容器技术提供了操作系统级的进程隔离,类似于硬件的虚拟化技术,这也是为什么现在会有人提出容器技术将取代虚拟机技术的主要原因。当然,容器技术还是不同于今天的虚拟机技术,它是在操作系统内部来进行进程级的隔离。而我们熟知的虚拟机(基于Hypervisor的虚拟化,这里不讨论操作系统上的虚拟机技术)是基于硬件资源的虚拟化技术上进行隔离,位于操作系统下面。实际容器技术已经有多年的历史,比如FreeBSDJail和SolarisZones等。甚至谷歌也使用容器技术实现了一些功能,并且将这些代码贡献给了Linux社区,从而Linux内核已经有一些容器相关的组件。
但是即使有谷歌大佬的助推,也有很多开源大军的努力,容器技术都没能引起大家太多的关注。直到大约一年多前Docker这家公司将Linux的容器技术向前推进了一步,使得它可简化应用封装,让应用真正能够跨不同的Linux发行版运行,包括提供了适应开发流程的API,从而让容器技术真正引起整个业界的瞩目。
容器和虚拟机并非简单取舍
第一次听到容器这个概念,很容易将容器技术和虚拟机技术进行对比,但是二者真不是取舍的关系。因为IT的目标是让客户成功,让客户成功就意味着要很好地运行和管理客户的应用,这不是只靠虚拟机或者容器就能够完美实现的事情。要想顺利运行一个应用就需要一个高效、安全和高可用的架构,这是企业应用的基本需求。比如:检查点/回复能力来确保移动性、资源隔离(包括计算、网络、存储QoS等)、存储的快照、复制等确保存储的可用性等等。也就是说,所有的企业应用都要具有这些能力的基础架构支撑,无论该应用是运行在虚拟机上或容器里。目前已经久经考验的虚拟化技术已经形成了完整的生态圈,确保基础架构的弹性、可靠性和安全。当然,应用的管理也一样,虚拟机已经有完善的管理生态圈,确保运行在虚拟机里的应用能够很容易达到企业级管理的需求。刚刚起步的容器技术无论从应用运行还是管理维护方面来说,都还是一个小弟,还需要历练。
虚拟机和容器:SDDC里的最佳拍档
其实,虚拟机和容器不是二选一的选择题,而是可以将二者放在一起,共同提升SDDC的服务能力。当然,无论虚拟机还是容器技术,都是专注解决软件定义计算的部分,只是SDDC的一个部分,当然也是一个很重要的部分。
首先,容器技术为应用提供了很好的移植性,让应用可以轻松跨不同架构迁移。但是应用和数据往往不是负载迁移的拦路虎,而运维的需求,包括性能容量管理、安全和管理工具集成往往让应用部署到新环境困难重重。因此,仅仅解决应用的跨平台移植只是解决了迁移挑战的一个小问题。
其次,即使我们相信容器技术和虚拟机技术都能达到同样的安全隔离等级,基于Linux的容器技术仍然没有在企业级获得验证。Linux容器只是将操作系统的子系统设计成可以跨应用工作,试图在后来添加隔离特性。这同今天成熟的hypervisor完全不同,Hypervisor基于裸设备设计,从根上解决虚拟机隔离问题。这些Linux容器子系统需要很长时间才能达到虚拟机一样的成熟度。合规性是另外一个挑战,任何企业系统都有合规性的要求。虚拟机技术花费了大量时间获得企业界认可,并通过一系列合规性的审核,从而获得今天的江湖地位。我们不怀疑容器技术可能也终将满足企业合规性要求,但这需要数年的时间。
最后,与其将容器技术和虚拟机技术割裂开来,不如将二者设计成最佳拍档,因为容器技术绝对可以运行在虚拟机里,享受虚拟机带来的所有优势,包括:获得业界认可的隔离能力和安全属性,另外还可以获得软件定义计算之外的所有SDDC的特性,当然也可以获得虚拟化大量生态圈的支持。
无论用什么技术,目标都是要确保客户的成功。将虚拟机和容器技术放在一起,共同打造企业SDDC才是王道,因为这两个技术天生可以相互依存:容器技术为客户应用提供绝佳的移植能力,而虚拟机技术则可以为基础计算提供安全保障,满足客户可靠性、稳定性、合规性需求,同时加上基于虚拟化发展起来的SDDC的其他几部分技术,才能真正将客户架构平台打造成应用和数据的舒适港湾,让客户从此乘第三平台翱翔。
注:本文已经发表在《软件和信息服务》2014年9月刊上,如果想了解@云界漫步 对云计算的最新观点,请直接订阅“中国云梦”微信公众号。也可微信扫描下面的二维码,直接订阅。订阅”中国云梦“后,直接回复”10038“阅读该文。
本文出自 “中国云梦” 博客,请务必保留此出处http://virtualman.blog.51cto.com/200540/1554361
选择虚拟机还是容器?-【软件和信息服务】2014.09