“以收单系统为例,虚拟化+纯容器在轻量级云平台上融合,实现了对稳态和敏态业务支撑,核心数据库依托于稳定可靠的虚拟机环境,应用趋于敏态创新型应用类业务则采用容器技术部署,实现动态扩展,弹性伸缩,实践展现了虚拟化环境和容器环境之间的深度融合和协同工作。”——某金融机构IT负责人说。
随着AI的全面来袭,昔日IT圈的热点话题“虚拟化和容器技术路线之争”似乎已被遗忘,二者之间关系现在究竟如何呢?通过以上“收单系统”的例子,我们可以发现“虚拟化、容器”已经从最开始理论上的水火不容,走向了实际应用中的深度融合。
技术上扬长避短,互为补充
谈论二者是如何相互融合的,首先我们要明确各自的概念和技术优缺点,与虚拟化相比,容器少了操作系统,更加轻便灵活,不同容器之间能共享操作系统,业内对此有一种很形象的比喻。
虚拟化技术可以比作是将一套物理房屋(服务器)分割成多个独立的虚拟房屋(虚拟机)。每个虚拟房屋都有自己的独立空间、门窗和设施,互不干扰,这些虚拟房屋可以运行不同的操作系统和应用,就像一个个独立的服务器一样;容器技术本质上也是一种虚拟化技术,可以比作是在一套房屋内(服务器)划分出多个独立的生活空间(容器),这些生活空间共享房屋的基础设施(操作系统),但各自有独立的家具和装饰(应用及其依赖)。
虚拟化技术通过软件层面的抽象,将物理资源转化为逻辑上的虚拟资源,从而实现资源的共享和高效利用,其具有资源利用率高、灵活性和可扩展性强等特点,尤其是虚拟机相互隔离,提高了系统的高可用性和高安全性。
而容器技术通过操作系统层面的隔离,将应用及其运行环境打包成一个独立的容器,从而实现应用的快速部署和运行,具有轻量化、可移植性和高度可扩展等优势。
正因虚拟化技术与容器技术在实现原理和使用方式上存在差别,使得二者各具优势:
-
容器比虚拟机小得多或“轻”得多,并且所需的硬件资源少,一台物理服务器可以承载的容器比虚拟化要多得多。
-
容器可以在几秒甚至几毫秒内启动,相比之下,虚拟化的启动时间比较长。
-
容器共享其主机的操作系统,无法像虚拟主机一样运行不同的操作系统。
-
如果一个容器导致容器主机的操作系统崩溃,则在该主机上运行的所有容器都将失败。
-
容器主机的操作系统内核中的安全漏洞将影响其所托管的所有容器。
通过以上分析,我们可以看到容器轻量化,良好的封装能力和部署简便的特点,但是在资源隔离性、安全性和处理重应用的上,容器技术显得有些力不从心。
在这种情况下,为了发挥两种技术的各自优势,出现多种将二者结合使用的技术方式,比如容器虚拟化的混布、轻量级虚拟化平台、安全容器等,使得容器和虚拟化充分融合,实现了在虚拟机中运行容器,利用现有的虚拟化基础设施来管理其容器,这些技术在提升业务应用的隔离性和安全性的强需求下,发挥容器的轻量级,快速交付和灵活调度能力,实现了更高效、更稳定的IT基础架构。
市场需求加速技术融合
从虚拟化、容器的应用领域和市场规模上,同样可以观察到业务场景多样性需求进一步加速了技术融合。
虚拟化技术自不必多说,一直以来虚拟化技术都被视为云计算的基础,我们一般所说的“云化”,其中重要的一步就是通过虚拟化技术将硬件资源“池化”,在各业务领域有着广泛的应用性。
而容器技术最初主要应用在互联网、电商等领域,随着技术的不断成熟和普及,向金融、政府、制造、医疗等传统行业渗透,因其开放性、灵活性、弹性以及大规模部署和调度的特点,提高了软件开发、测试和部署的效率,市场应用规模迅速扩大。但容器技术需要规模较大IT开发团队做技术支撑,其大规模应用往往集中于客户的头部企业,中小客户由于缺乏IT开发团队,容器化的进程受影响较大。
事实上,同时管理虚拟化和容器已成为用户侧的一个普遍的需求。虽然,以传统业务为代表的“稳态”场景下,用户更加关注可靠性和安全性,虚拟化技术更适合;以互联网属性为代表的“敏态”业务下,用户追求快速响应市场需求,很适合容器技术。但在实际业务场景中,虚拟化和容器可以混合调度,提供弹性统一的laaS底座,容器也可以部署在虚拟化上获得安全隔离性的优势,最终达成两种产品的统一管理、高性能与稳定性、更灵活的技术路线、简化运维、节约成本等目的。
从市场数据上看,二者也将会共存共生,不会出现此消彼长的关系,反而会更加适应对方发展。据IDC报告显示,虚拟化市场一直保持着稳定的增长,2022年,市场规模上虚拟化远高于容器,但市场增速上容器要高于虚拟化,二者都存在广阔的市场空间,技术上的融合为市场提供了更多元化的解决方案和服务。
图:IDC《PRCSDCSoftwareSubmarketMarketSize》数据
总的来说,通过技术发展趋势和市场业务需求,我们可以发现虚拟化与容器虽然在实现原理和使用方式上存在差别,但并非互斥,而是可以互相补充。二者结合起来使用,可以有效减少用户侧的后顾之忧,更好满足现代化云计算环境的基础架构的新需求。
参考资料:
1. Virtualization vs. Containerization: What is the Difference?
2. twt社区
往期内容推荐:
【条漫】一文读懂虚拟化与容器的区别,技术焦虑-1-1-1