容器 VS. 虚拟机:云中应该使用哪一种?

在开足马力使用容器之前,了解容器与虚拟机在私有云、公共云以及混合云部署之间的区别是至关重要的。

虽然目前大多数的云部署都是基于虚拟机的,但是容器技术为云用户带来了显著的好处。但是,在选择一个取代之前技术的替代品时,了解两者之间的主要区别是很重要的。最大的问题在于虚拟机或容器是否最适合公共云、私有云或混合云模式。这个问题的答案取决于三个主要因素:虚拟机和容器之间的功能性差异、私有云和公共云组件之间的相互依存程度以及用户对他们自己云平台进行定制的意愿。

容器与虚拟机:两者之间的不同

虚拟机和容器两种技术分别代表了创建运行应用的虚拟资源的两种不同方法。使用虚拟机就是由一个特殊的软件系统(系统管理程序)在操作系统(OS)层次对服务器进行分区并创建只共享硬件的真正“虚拟机”。而使用容器技术,虚拟化发生在操作系统层次,所以就是共享操作系统以及一些可能的中间件。

就功能方面而言,虚拟机更加地灵活,因为应用运行的“客户“环境类似于裸机服务器。用户可以选择他们自己的操作系统和中间件,而无需考虑同一台服务器上其他虚拟机所使用的操作系统和中间件。但如果是使用容器技术,那么用户在选择应用程序时需要确定一个通用的操作系统和中间件元素,因为每一个容器都在使用核心服务器平台并将其与其他容器共享。

对于那些使用各种软件平台来运行他们应用的企业用户来说,容器技术可能更难以使用,因为它要求对单个主机平台上进行标准化的工作。即便当所有应用程序都在一个单一的操作系统上运行时,用户也可能需要协调每个应用程序来使用一些或所有中间件工具的单一版本——如果软件是依赖于特定版本的,那么这一点是很难做到的。

另一方面,容器资源开销是较少的,因为它们没有为每一个部署的应用程序或组件重复分配平台软件。这种较低的资源开销可让容器技术在每台服务器上运行更多的组件。此外,应用或组件的部署与重新部署都要快于容器。

因为容器往往是通过诸如Docker这类管理平台进行部署的,通常基于容器的云也比基于虚拟机的云更具有可操作性,而相关管理工具也更加多样化。

如何针对公共云、私有云或混合云选择容器或虚拟机

用户可以在私有云部署中获得容器技术的所有好处。而对于使用标准化操作系统和中间件的企业来说,基于容器的私有云很可能是最好的策略。但是,对于公共云和混合云,使用容器则会带来更多的问题,而虚拟机可能是更好的方法。

例如,使用容器技术的企业所面临的一个挑战就是,公共云中的容器托管服务要比虚拟机服务更难找到。虽然一些基础设施即服务(IaaS)供应商(例如亚马逊网络服务,AWS)提供了容器服务,但是这些服务通常也都覆盖了IaaS服务,同时在很多情况下这些服务也仅适用于使用专用服务或集群托管的客户。所有的用户都可以通过公共IaaS服务部署虚拟机,但是使用容器技术则在安装和操作方面更为复杂,这主要是因为难以在公共云中容纳容器联网。

在公共云中部署和管理容器的困难也让在混合云中部署容器变得更为复杂。首先,应用程序容器部署的最佳实践建议对其所有组件采用共同托管以实现方便的网络连接。但是,这样做会使在云爆发或故障转移时转至公共云资源变得更难以实现——这是混合云的两种最常见用例。

其次,如果云容器平台不兼容,那么中间件或操作系统在应用层次的所有差异将限制容器在云中的部署。这就意味着混合无法跨所有应用程序正常工作。

如果云中的组件分布相对比在数据中心内的更一致,或者如果一家企业以非常结构化的方式将这些组件云化(例如从一组特定的数据中心服务器到一组特定的云服务器),那么基于容器技术的混合云是更易于开发和维护的。这种方法使混合环境的组网和集成变得更易于管理,且更不易出现配置错误。但是,使用虚拟机的方法通常更易于使用标准化工具和整合方法将应用和组件从数据中心部署至云。

简便实施容器技术

在迁移至公共云之前,最好是通过在私有云中进行部署来熟悉容器。深刻了解容器是如何工作的以及在运行中如何才能做好容器的维护,这些知识将有助于选择正确的方法、工具和供应商。诸如Docker或Cloud Foundry之类的容器管理工具是容器实施工作中必不可少的,所以应尽量做好事先功课才觉得最适合的那个技术选项。

就长远来看,很可能是由管理工具来部署基于虚拟机和基于容器的云。随着这些工具自身的不断发展,基于虚拟机云和基于容器云之间的操作差异会变小,而主要的区别将与安全性和合规性相关。如果您现在就要做出一个抉择,请确保容器为您的云应用程序提供足够的隔离,因为容器与虚拟机之间的安全性与合规性差异在今后一段时间内是不可能消失的。

本文转自d1net(转载)

时间: 2024-09-20 05:36:09

容器 VS. 虚拟机:云中应该使用哪一种?的相关文章

容器相比虚拟机更为安全的十三个方面

本文讲的是容器相比虚拟机更为安全的十三个方面[编者的话]容器的安全性一直是架构师们的心病,担心隔离性弱被攻破,而纠结于是否选择容器.本文将围绕容器的安全特性,从容器设置以及容器应用的最佳实践出发,总结13个方面,说明容器为何比虚拟机更加安全的原因.希望能够对您的容器安全加固有所帮助. 去年,普遍观念认为容器的安全性远不如虚拟机.为什么呢 ?由于容器的抽象层极易被攻破,因此容器的安全无疑比通过硬件VT-x优化后的虚拟机抽象层薄弱的多 .一旦攻防松懈,恶意代码便可轻松攻击主机.更糟糕的是,一旦主机妥

容器还是虚拟机 并不一定非此即彼

许多人认为在容器和虚拟机之间只能选择其中一种,但事实并非如此--下面将详细介绍其中的原因. IT专家一直在尝试解决一个问题:应该怎样在容器和虚拟机之间做出选择,而现在的解决方案是同时使用两种技术. 虚拟机和容器技术是实现虚拟化的两种不同方式,二者都能够实现多种应用程序共享相同硬件资源,但是其技术特点.优势以及劣势却完全不同,这周Container World的与会者尤为深刻地感受到了这一点. 从易于使用和自动化的角度来看,容器技术似乎更加占据优势. "相比于虚拟机,容器技术要简单的多,"

反思|容器与虚拟机的真正区别在哪里?

本文讲的是反思|容器与虚拟机的真正区别在哪里,[编者的话]本文主要介绍了容器与虚拟机的区别,在策略.性能以及安全等方面,作者一一回答了目前人们对容器与虚拟机区别的疑问. "Docker和虚拟机有什么不同?",这似乎是我听到的有关容器最常见的问题之一,我一般给出的答案取决于提出此问题的不同方式.但是我喜欢这样开头:"容器和虚拟机仅仅相似于它们都提供了隔离环境." 接着我阐述他们之间的差异,"容器能做的事少得多并且使用起来相当廉价.而虚拟机提供整个虚拟化硬件层

容器与虚拟机究竟有何本质上的差异?

作为一种部署应用程序的全新方式,容器技术在短时间内获得了广泛关注,但是这种技术同样存在某些限制,并且和虚拟机存在本质上的不同. 虚拟化技术已经改变了现代计算方式,它能够提升系统资源使用效率.消除应用程序和底层硬件之间的依赖关系,同时加强负载的可以移植性和安全性,但是hypervisor和虚拟机只是部署虚拟负载的方式之一.作为一种能够替代传统虚拟化技术的解决方案,容器虚拟化技术凭借其高效性和可靠性得到了快速发展,它能够提供新的特性,并且帮助数据中心专家解决新的顾虑. 容器和虚拟机之间的主要区别在于

论数据中心虚拟化两大技术代表:容器和虚拟机

如今,虚拟化技术在数据中心内已经生根发芽,应用非常普及,无论是在服务器.还是网络.存储等设备中都是如此.虚拟化技术起源于服务器,后来在网络设备中也出现,虽然都叫虚拟化技术,但是实现的原理是完全不同的,网络设备中的虚拟化也不能像服务器中的虚拟化可以虚拟化出数百或上千的虚拟设备,实现的技术也完全不同.本文着重讲述的是服务器中的虚拟化技术.服务器是数据中心最为重要的组成部分,所有的应用服务都要安装在服务器上,并运行,所以服务器上的虚拟化技术与应用最为密切相关.从早年的虚拟机技术到如今的容器技术,都是虚

技术讨论:微服务和容器比虚拟机快多少?

本文讲的是技术讨论:微服务和容器比虚拟机快多少?[编者的话]本文是Microscaling Systems的联合创始人Anne Currie在微服务日伦敦站的演讲整理稿,通过阅读本文可以深入了解到当和虚拟机比较时,微服务和容器的速度和效率. Anne Currie,Microscaling Systems的联合创始人,提供了一个关于为何采用容器的很好概述.请享受她最初在微服务日伦敦站的演讲,该演讲研究了什么使得微服务和容器的结合如此强大. 希望你能和我们一样享受这个演讲. 视频 幻灯片 今天,你

苹果Mac虚拟机安装Win7系统的三种方法介绍

  苹果Mac虚拟机安装Win7系统的三种方法介绍          解决方法一: 1.我们这里以免费的虚拟机Virtual Box为例; 2.启动 Virtual Box 以后,点击窗口左上角的"新建"按钮; 3.接下来为虚拟取一个名称,可随意取.系统类型保持不变,版本在下拉列表中选择 Windows 7.点击"继续"按钮; 注:如果你安装的是 Windows 64 系统的话,在下拉列表中选择时,请选择 Windows 7 (64 bit). 4.然后为虚拟机分配

jdk1.7 HotSpot虚拟机 怎么查看使用的哪种垃圾收集器

问题描述 jdk1.7 HotSpot虚拟机 怎么查看使用的哪种垃圾收集器 怎么查看虚拟机使用的哪种垃圾收集器?是G1,还是CMS? 启动java的参数中没有配置-XX:+UseG1GC这种参数 $ ./java -version java version "1.7.0_45" Java(TM) SE Runtime Environment (build 1.7.0_45-b18) Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08,

Java虚拟机对内部锁的四种优化方式

自Java 6/Java 7开始,Java虚拟机对内部锁的实现进行了一些优化.这些优化主要包括锁消除(Lock Elision).锁粗化(Lock Coarsening).偏向锁(Biased Locking)以及适应性锁(Adaptive Locking).这些优化仅在Java虚拟机server模式下起作用(即运行Java程序时我们可能需要在命令行中指定Java虚拟机参数"-server"以开启这些优化). 1 锁消除 锁消除(Lock Elision)是JIT编译器对内部锁的具体实