容器会取代虚拟机吗?

2022 年 1 月 13 日 InfoQ

作者 | Molly Calancy
译者 | Sambodhi
策划 | 褚杏娟

虚拟化从根本上改变了数据中心的运作方式,这过去还不是很久。2002 年,VMware 发布了首款虚拟机管理程序 ESX Server 1.5,一定程度上引领了企业级虚拟机的主流应用。对于千禧一代来说,这一切都仿佛发生在昨天。

这项技术使基础设施的利用率发生了革命性的变化,用户可以在同一个硬件上运行多个操作系统,使硬件资源的应用最大化。随后,比虚拟机更年轻时尚、Z 世代也更熟悉的容器,在 2013 年随着 Docker 的发布而大放异彩,也刺激了容器主流应用产品的研发。容器允许多个孤立的应用程序共享同一个操作系统内核。

虽然虚拟机和容器的工作方式不同,但这两种技术非常相似。这也就产生了一个问题:容器会取代虚拟机吗?今天,我们来分析下这个问题。

虚拟机与容器的不同

虚拟机是由软件定义的计算机,运行在 Hypervisor(虚拟机监视器)之上,允许多个操作系统共享同一底层的物理硬件,并在相互隔离的情况下运行。Hypervisor 将底层硬件虚拟化,每个虚拟机都运行自己的操作系统(OS)。

在虚拟机之前,一台服务器仅能支持一个操作系统,用户无法实现在同一台服务器上运行不同操作系统下的业务应用,或者这些应用在运行时不会互相干涉。每个运行的业务应用,比如电子邮件或者 CRM,都必须拥有自己的(通常配置过高,利用率低)硬件集。有了虚拟机后,一台服务器就能同时支持多个操作系统和多个应用,大大降低了企业在硬件和硬件管理方面的开支。

容器同样是由软件定义的计算实例,但是它们在一个共享的主机操作系统上运行。容器将软件打包成可移植的、可执行的单元,具有所有必需的依赖关系,能够在任何地方运行,包括笔记本计算机、服务器、云端等。下表列出了虚拟机和容器的不同之处:

因为无须拖动全部的操作系统代码,所以容器更加轻便(兆字节,相对于虚拟机的千兆字节),启动速度也比虚拟机更快。在一台服务器上,用户可以使用容器来运行比虚拟机多两到三倍的应用。

仅凭这一点,或许就可以说明容器是未来的趋势,而虚拟机则是旧闻。

容器会取代虚拟机吗?

容器是否会取代虚拟机,这个问题看起来简单,但并不容易作出预言。我们可以看一下支持虚拟机和支持容器的人分别都有哪些理由。

支持虚拟机的理由

尽管容器更小、更快,但容器永远不会杀死虚拟机,理由如下:

  1. 熟悉度和成熟度。尽管科技行业对新技术的接受很快,但虚拟机在许多组织中的应用已经非常成熟。大多数企业都有固定的流程、程序和团队来管理虚拟机的部署,包括备份和监控。虽然“我们一直在用的方式”并不总是继续做某件事的最佳理由,但是还有一个理论是“如果它没有坏,就不要去修复”。某个能够在虚拟机上正常工作的单体应用,为了保证其能在容器环境下工作,用户就必须对其进行重构,但有时这种努力并不值得。

  2. 拥有完整的操作系统功能。使用虚拟机与所有操作系统服务一起工作,有时比更协调的“Docker Compose”或具有不必要复杂性的 Kubernetes 集群更可取,特别是对于一些复杂的应用程序。

  3. 异质环境。虚拟机的作用就是可以运行多个操作系统。容器共享同一个操作系统内核,因此需要一个同质的环境。有一种观点认为,企业数据中心正朝着更加同质化的环境发展,以实现标准化,从而提高运营效率。但这种情况尚未大规模发生,许多企业仍然需要运行多个操作系统,并且在可预见的将来也会如此。

  4. 安全性。容器的安全性经常被虚拟机拥趸者攻击。虚拟机支持者认为,容器共享主机操作系统资源而更容易受到攻击,虚拟机则在其虚拟墙内包含操作系统。如果一个容器被攻击了,它可能会感染其他共享主机操作系统的容器。如果一个虚拟机被攻击,虚拟机、主机服务器和其他虚拟机之间则会形成一道额外的屏障。

  5. 两者不是非此即彼的,企业可以兼而有之。用户可以在虚拟机上运行容器,这样就可以让已经拥有虚拟机的企业能够采用容器。他们可以在不必完全放弃虚拟机的情况下,充分利用容器的速度和敏捷性。

支持容器的理由

容器也有很多优势,是什么让它们成为取代虚拟机的竞争者?容器的支持者通常持以下观点:

  1. 速度和可移植性。容器启动只需几秒钟,而虚拟机则需要几分钟,但容器带来的速度优势并不限于启动时间。容器解决了环境一致性问题,开发人员在配置环境和处理错误上花费的时间少很多。像 Docker 这样的容器引擎也有容器镜像库,加快了开发者们的工作,而像开放容器标准(Open Container Initiative,OCI)这样的项目已经制定了容器的标准,从而简化了部署。

  2. 可扩展性。通过 Kubernetes 或 Cycle.io 等容器编排器,容器可以根据流量需求自动扩展,并在需要的时候复制容器镜像,不需要的时候将其关闭。容器的小尺寸和启动速度意味着其扩展速度比虚拟机更快。

  3. 模块化。容器彻底改变了应用开发,使应用可以作为单独的微服务松散地耦合在一起进行开发。DevOps 和 CI/CD 实践大大加快了应用程序的交付速度。正如一位高级软件工程师所说,整个环境像乐高那样堆叠起来,这样的能力很强大。容器的小尺寸和可移植性意味着应用程序可以在小的组件中构建,这些部分可以堆叠在一起,构建一个完整的应用程序。

  4. 易于更新。为容器中微服务而构建的应用程序中的更新和重新部署,要比具有更新和停机需求的全功能操作系统更容易管理。抽象的操作系统。由于容器对操作系统进行了抽象,所以在处理虚拟机化问题上,容器要比虚拟机简单得多。在 Mac OS 和 M1 操作系统中,虚拟化非常棘手,但是容器可以使虚拟环境在它们上面轻松运行。

定    论

容器会在开发环境中取代虚拟机吗?似乎已经有定论了。但是容器会全面取代虚拟机吗?事实可能并非如此。

开发者不会再像以前那样构建一个单一的应用。通过使用容器,他们能够从以前环境的不一致中解脱出来,更多地关注在代码构建、创建更好的软件以及更快速地编写代码。容器在开发者中已经成为了一种主流的虚拟化技术。

但是,容器究竟是应用程序的传递还是基础结构,两者有很大的区别。虚拟机运行缓慢、可移植性较差而且很重,但在部署企业的基础设施和运行传统单体应用时,虚拟机依然是优先考虑的技术。比如,尽管容器是应用程序开发的首选技术,但其他领域的 IT 团队,比如教育行业,不大会愿意花时间来将其定制化的学生信息系统重构为微服务架构,这些企业也无法用一个容器来取代其为学生提供的数以千计的虚拟机。

最终答案是什么?在当今的数据中心里,容器和虚拟机器都占有一席之地。

原文链接:

https://www.backblaze.com/blog/will-containers-replace-virtual-machines/

点击底部阅读原文访问 InfoQ 官网,获取更多精彩内容!

今日好文推荐

解读数据库的2021:资本进来添了一把火,开源已占据半壁江山

下载量和Vue一样大的开源软件被作者恶意破坏,数千款应用受到牵连

西安一码通半个月崩溃两次,被工信部点名;快手再传裁员:最高比例达 30%;阿里调整大淘宝组织架构 | Q 资讯

Apache Flink 不止于计算,数仓架构或兴起新一轮变革

点个在看少个 bug 👇

登录查看更多
0

相关内容

操作系统(Operating System,简称OS,港台译作「作业系统」)是管理计算机硬件与软件资源的程序,同时也是计算机系统的核心与基石。操作系统的型态非常多样,不同机器安装的操作系统可从简单到复杂,可从手机的嵌入式系统到超级计算机的大型操作系统。
《美国太空部队的数字化服务愿景》,17页 pdf
专知会员服务
40+阅读 · 2022年4月4日
企业如何探索元宇宙,如何驾驭炒作和现实?(附报告)
腾讯:2022年十大数字科技应用趋势
专知会员服务
80+阅读 · 2022年1月13日
专知会员服务
34+阅读 · 2021年10月17日
【经典书】机器学习导论,234页pdf
专知会员服务
75+阅读 · 2021年4月20日
【斯坦福经典书】机器学习导论,188页pdf
专知会员服务
77+阅读 · 2021年3月31日
【2020新书】使用Kubernetes开发高级平台,519页pdf
专知会员服务
66+阅读 · 2020年9月19日
德勤:2020技术趋势报告,120页pdf
专知会员服务
190+阅读 · 2020年3月31日
Docker 足够安全吗?
InfoQ
0+阅读 · 2022年3月23日
作为云原生 iPaaS 集成中间件的 Apache Kafka
高级 Kubernetes 部署策略
InfoQ
1+阅读 · 2022年2月14日
Kubernetes 安全指南
InfoQ
2+阅读 · 2021年12月24日
边缘上的容器化
InfoQ
0+阅读 · 2021年11月29日
一文理解 K8s 容器网络虚拟化
阿里技术
0+阅读 · 2021年11月29日
容器并不能解决一切问题
InfoQ
0+阅读 · 2021年11月18日
国家自然科学基金
1+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
1+阅读 · 2012年12月31日
国家自然科学基金
1+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2009年12月31日
Arxiv
0+阅读 · 2022年4月18日
Meta-Learning to Cluster
Arxiv
17+阅读 · 2019年10月30日
VIP会员
相关VIP内容
《美国太空部队的数字化服务愿景》,17页 pdf
专知会员服务
40+阅读 · 2022年4月4日
企业如何探索元宇宙,如何驾驭炒作和现实?(附报告)
腾讯:2022年十大数字科技应用趋势
专知会员服务
80+阅读 · 2022年1月13日
专知会员服务
34+阅读 · 2021年10月17日
【经典书】机器学习导论,234页pdf
专知会员服务
75+阅读 · 2021年4月20日
【斯坦福经典书】机器学习导论,188页pdf
专知会员服务
77+阅读 · 2021年3月31日
【2020新书】使用Kubernetes开发高级平台,519页pdf
专知会员服务
66+阅读 · 2020年9月19日
德勤:2020技术趋势报告,120页pdf
专知会员服务
190+阅读 · 2020年3月31日
相关资讯
Docker 足够安全吗?
InfoQ
0+阅读 · 2022年3月23日
作为云原生 iPaaS 集成中间件的 Apache Kafka
高级 Kubernetes 部署策略
InfoQ
1+阅读 · 2022年2月14日
Kubernetes 安全指南
InfoQ
2+阅读 · 2021年12月24日
边缘上的容器化
InfoQ
0+阅读 · 2021年11月29日
一文理解 K8s 容器网络虚拟化
阿里技术
0+阅读 · 2021年11月29日
容器并不能解决一切问题
InfoQ
0+阅读 · 2021年11月18日
相关基金
国家自然科学基金
1+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
1+阅读 · 2012年12月31日
国家自然科学基金
1+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2009年12月31日
Top
微信扫码咨询专知VIP会员