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