容器与虚拟机,替代还是融合?

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 容器和虚拟机有着各自的优势,虽然在应用场景上有一些重叠,但主要应用场景还是有区别的,未来这种两种技术会长期共存,甚至走向融合。

云栖号资讯:【点击查看更多行业资讯
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!

最近一两年来,以容器为代表的云原生技术一直是IT行业最为热门的话题。随着云原生技术的崛起,有企业甚至跳过了IaaS层直接在物理机上部署容器。容器的风头几乎盖过云计算,甚至引发了OpenStack的未来堪忧的说法,容器与虚拟化谁将会是市场主流的话题时常被提起。现在还看不到答案,但市场有些了变化。4月底,红帽在其一年一度的技术大会Red hat Summit 2020上宣布推出OpenShift虚拟化的预览版,支持在容器里部署虚拟机,更早些时候,VMware宣布其最新一代云平台vSphere 7提供原生地管理容器和虚拟机的能力。虽然出发点不同,一个是从容器出发兼容虚机,一个是从虚机出发兼容容器,但殊途同归,两者都能实现容器与虚机的同时管理。现在看起来,容器与虚拟机之间有融合和和平共存之势。

image

云原生“来势汹汹”

云原生技术的兴起是这几年软件行业比较新的变化之一,它给该行业也带来不小的冲击,或者说带来颠覆也不为过。它让应用程序有了明显的代际之分:传统应用与现代应用,也让越来越多的企业选择了拥抱现代应用。

容器是云原生技术的关键技术,今天微服务、DevOps以及CI/CD等都建立在容器之上。作为一种轻量级的虚拟化技术,相比于虚拟机,容器拥有更高的资源使用效率,因为它并不需要为每个应用分配单独的操作系统,因此实例规模更小、创建和迁移速度也更快。

总体上说,容器有三大核心价值,即敏捷、弹性、可移植性。在敏捷方面,容器能够让软件开发交付效率提升10倍,这意味着这个企业能具备更高的速度去进行快速迭代,以及有更低试错成本帮助企业在经营中赢得先机。在弹性方面,云计算已经利用虚拟化技术带来了一定的弹性可以有效控制成本,而利用容器可以实现秒级弹性扩缩容进一步优化成本,节省达50%以上。而在可移植方面,基于容器可以在不同云环境之间迁移实现无边界的计算。

因此,容器很自然地成为当下最受关注的软件技术之一,特别是随着Kubernetes(K8s)成为容器编排的事实标准,进一步加速了容器的普及。如果说容器为应用的快速开发和弹性奠定了基础,那么K8s就为容器的大规模模式和运维提供了保证。

Gartner曾预测,到2022年全球有75%的企业会使用基于云原生的容器技术构建它们的应用系统。而市场也有了一些迹象,IDC 发布的2019年第一季度公有云市场数据,IaaS市场增速有所减缓,同比增长74.1%;但PaaS市场依然保持高增长,增速为101.9%。各大云提供商也十分热衷于容器技术,AWS、微软Azure、谷歌云、阿里云都推出了容器相关服务,并作为重点市场。

容器与虚拟机之争

容器的普及对虚拟机形成了冲击,也就有了容器与虚拟机之争。容器与虚拟机本质上都属于虚拟化技术,所不同的是两者所在层级不同,容器在操作系统至上,与虚拟机相比少了操作系统,不同容器之间能共享操作系统,因此更轻量,启动更快,效率更好。也正因为如此,与虚拟机相比容器的隔离性要差,安全性不如虚拟机。另一方面,虚拟机应用得更普及,相关工具也更为成熟和完善。

总体而言,容器和虚拟机有着各自的优势,虽然在应用场景上有一些重叠,但主要应用场景还是有区别的。比如,虚拟机更适合当应用程序运行时需要所有操作系统资源和功能的场景,如果需要运行多个这样的应该,使用虚拟机更为合适。相比较而言,容器更适合在更少的服务器上运行更多的应用。大部分情况下大多数企业会同时使用虚拟机和容器。鉴于此,容器和虚拟化应当会在相当长时间内共存,特别是考虑到大多数企业此前已经广泛部署虚拟化技术的现实。

实际上,如何同时管理虚拟化和容器技术就成为企业的一个普遍的需求。作为虚拟化技术的最主要推手VMware很早就做出了反映,此前VMware通过在虚拟化平台上外挂PKS(Pivotal与VMware共同推出的一个K8s平台)来实现虚机与容器的同时管理,但毕竟是外挂,其效率和管理方便性上都有不足。去年的VMworld大会上,VMware发布Tanzu 品牌计划,宣布在虚拟化技术中原生地提供对容器技术的支持。VMware的Tanzu把虚拟机和Kubernetes结合起来,对虚拟机和容器以及物理机统一进行管理,它能实现跨物理机、虚拟机以及内部数据中心、跨多个云来管理应用,从而为工作负载提供一个统一的支撑。

今年3月Tanzu正式亮相,VMware最新一代虚拟化平台vSphere 7对外发布,vSphere 7迎来了近10年很大的变革,VMware对vSphere进行了重构,将K8s嵌入vSphere的控制平面,让它成为一个K8s原生平台,从而原生地支持K8s。这样,那些VMware的传统用户无需在虚拟机和K8s容器环境之间做出选择,从而能自由在vSphere上进行现代应用程序开发和运营,同时继续利用现有的技术、工具和技能组合投资。

另一方面,容器厂商也认识到了虚拟化的客观存在,也在拥抱虚拟化技术,kubevirt 就是基于这个目的推出的。kubevirt是 Red hat 开源的以容器方式运行虚拟机的项目,使用容器的Image Registry去创建虚拟机并提供虚机的生命周期管理。在红帽4月底举行的年度技术大会Red Hat Summit 2020大会上,红帽宣布推出OpenShift 虚拟化的技术预览,OpenShift 虚拟化就源自KubeVirt开源项目。企业可以通过这一功能,在整合了云原生与传统工作负载的OpenShift上开发、部署和管理由虚拟机、容器和无服务器构成的应用。

虽然VMware和红帽的从不同出发点出发,但目的是一样的,而这背后的推动力则是企业的现实需求。对用户而言它们的行动无疑是受欢迎的,因为这能让企业少了后顾之忧,不再需要进行非此即彼的选择,不用纠结容器究竟应该部署在虚拟机还是裸机上,从而可以更灵活支持未来的各种应用。

【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/live

立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK

原文发布时间:2020-05-25
本文作者:邹大斌
本文来自:“51cto”,了解相关信息可以关注“51cto

相关文章
|
1月前
|
运维 Kubernetes Cloud Native
探索云原生技术:容器化与微服务架构的融合之道
【9月更文挑战第18天】在数字化转型的浪潮中,云原生技术以其灵活性、可扩展性成为企业创新的强大引擎。本文将深入探讨云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同推动现代应用的开发与部署。通过实际代码示例,我们将揭示这些技术如何简化运维,加速产品上市时间,并提高系统的可靠性和弹性。无论你是开发人员、架构师还是IT决策者,这篇文章都将为你提供宝贵的洞见和实践指导。
37 2
|
20天前
|
监控 应用服务中间件 nginx
详细解释容器以及虚拟机centos7.9容器化部署基础服务(容器化部署nginx)
容器是一种轻量级、可移植的软件打包和隔离技术,将应用程序及其依赖项打包,确保在任何环境中一致运行。容器共享主机操作系统内核,相比虚拟机更高效、轻量,具有快速启动和高资源利用率的特点。容器的关键技术包括命名空间(如 PID、NET 等)、控制组(cgroups)和联合文件系统(UnionFS)。使用容器可以提高开发和部署效率,简化管理,确保环境一致性。例如,在 CentOS 7.9 上部署 Nginx 时,可以通过 Docker 下载和运行 `nginx:1.20` 镜像,并通过端口映射使外部请求访问 Nginx 服务。此外,还可以将测试页面复制到容器中,进一步验证容器的功能。
|
1月前
|
运维 Kubernetes Cloud Native
云原生之旅:容器化与微服务架构的融合之道
在数字化转型的浪潮中,云原生技术以其高效、灵活的特性成为企业IT架构升级的重要选择。本文将探讨云原生的核心概念——容器化和微服务架构,并阐述它们如何相互融合,共同推动现代应用的开发与部署。通过深入浅出的解释,我们将揭示云原生如何助力企业快速适应市场变化,实现业务的持续创新和价值最大化。
|
1月前
|
Kubernetes Cloud Native Docker
云原生技术:容器化与微服务架构的融合之道
【9月更文挑战第4天】在数字化时代的浪潮下,企业追求敏捷、高效、可扩展的IT架构成为共识。云原生技术作为现代软件部署的黄金标准,其核心理念在于推动应用的快速迭代与无缝迁移。本文将深入探讨云原生技术的精髓——容器化与微服务架构如何相互促进,共同构建起适应云计算环境的应用生态系统。我们将通过实际案例,揭示如何在云平台上利用这些技术实现服务的解耦、弹性伸缩及自动化管理,进而提升企业的竞争力。
|
2月前
|
应用服务中间件 Linux nginx
Linux虚拟机磁盘扩容、Docker容器磁盘满的问题、Docker安装nginx
这篇文章讨论了Linux虚拟机磁盘扩容的方法,包括外部配置、具体扩容步骤和扩容后的效果验证。同时,文章还涉及了Docker容器磁盘满的问题及其解决方法,如删除不必要的镜像和容器,以及调整Docker的安装路径。此外,还提到了意外情况的处理,例如误删除停止的容器后的应对措施。最后,文章还提供了使用Docker安装nginx的步骤和成功访问的截图。
Linux虚拟机磁盘扩容、Docker容器磁盘满的问题、Docker安装nginx
|
2月前
|
Kubernetes Cloud Native 网络安全
云原生入门指南:Kubernetes和容器化技术云计算与网络安全:技术融合的新篇章
【8月更文挑战第30天】在云计算的浪潮中,云原生技术如Kubernetes已成为现代软件部署的核心。本文将引导读者理解云原生的基本概念,探索Kubernetes如何管理容器化应用,并展示如何通过实践加深理解。
|
2月前
|
运维 监控 Devops
构建高效稳定的云基础设施:DevOps与容器化技术融合实践
【7月更文挑战第58天】 在当今的软件开发领域,"DevOps"和"容器化"已成为提升项目交付速度、确保环境一致性以及实现持续集成和持续部署(CI/CD)的关键策略。本文深入探讨了如何将DevOps理念与容器化技术相结合,以构建一个既高效又稳定的云基础设施。通过分析现代运维的挑战,我们提出了一套实践方案,并讨论了该方案在现实环境中的具体应用及潜在益处。文章不仅为读者提供了理论指导,还分享了来自一线实践的经验教训,旨在帮助组织优化其云基础设施管理,提高业务竞争力。
|
2月前
|
存储 缓存 监控
在Linux中,如何优化虚拟机和容器的性能和资源使用?
在Linux中,如何优化虚拟机和容器的性能和资源使用?
|
2月前
|
Linux KVM 虚拟化
在Linux中,如何进行虚拟机和容器的备份和迁移?
在Linux中,如何进行虚拟机和容器的备份和迁移?
|
2月前
|
存储 监控 Linux
在Linux中,如何实现虚拟机和容器之间的互操作性?
在Linux中,如何实现虚拟机和容器之间的互操作性?