容器化是传统虚拟化所带来的障碍的解决方案。从一开始,虚拟机(VM) 就使组织能够事半功倍。单个物理设备可以通过管理程序包含多个隔离的虚拟环境,其好处包括减少开销、方便的移动性和可扩展性。听起来不错——但有一个问题。虚拟机是重型单位。
因为虚拟化的一个重要吸引力在于它在 DevOps 中的使用,所以在平台之间存储和迁移应用程序的能力是必不可少的。填补这一空白的是虚拟化的年轻轻量级兄弟:容器。
什么是容器?
容器或应用程序容器是存储和访问程序的隔离计算环境。容器是当代软件开发和部署的最爱,原因有二。
- 容器是用于软件测试的隔离、不可变且易于使用的环境,类似于沙盒。
- 容器为跨基础设施环境快速迁移应用程序提供了灵活性和可移植性。
虚拟机提供完整的硬件系统模拟,而容器仅模拟操作系统。对于外行来说,这意味着容器只虚拟化操作系统,而不是计算机的整个物理基础设施,如磁盘、驱动器和服务器设备。
容器与虚拟机
在虚拟化中,现代网络出现了两种框架:虚拟机和容器。两者都不是相互排斥的,并且都有助于将一个物理设备的内容移动到另一个物理设备。容器的关键区别和优势在于它们的大小——或者说没有大小。
借助 VM 的应用程序、bin 和库,以及为其提供硬件级虚拟化的客户操作系统,虚拟机将占用千兆字节 (GB) 的空间。相比之下,容器通常只包含一个应用程序,占用空间以兆字节 (MB) 为单位。
容器用例
应用程序现代化
今天的应用程序现代化意味着将程序从传统的本地部署迁移到云解决方案。因为容器是敏捷的,它们增强了组织无缝迁移应用程序和工作流的能力。容器跨环境不可变,使组织能够利用 DevOps 的协同作用更快地开发和部署应用程序。
开发运维
DevOps 模型是软件提供商的范式转变。通过加入开发和运营工程师,组织可以实现更快节奏的服务交付模式。而在开发人员和运营团队在设备、操作系统和流程步骤之间拆分工作之前,容器弥合了差距。这允许组织更有效地构建、测试和交付其服务。
部署微服务
微服务架构允许软件开发人员生成由多个独立可部署服务组成的应用程序。托管在容器中的应用程序的不同组件是可扩展的,并且可以在不中断其他服务的情况下进行更新。
混合和多云
现代组织基础架构平衡了本地设备、私有云操作和(可能)多个公共云平台。随着组织采用这种多样化的方法,容器被证明有几个好处:
- 轻量级设计,可快速迁移
- 用于自动化管理的容器编排平台(如Kubernetes )
- 环境稳定性可灵活应对不断变化的工作负载
虽然虚拟化很热门,但混合基础架构才是未来。我们查看组织基础架构的状态,以及哪些工作负载在本地、公共云和私有云环境之间分配。
容器正在对抗虚拟机
容器是为各种规模的企业采用虚拟化的一种行之有效的方法。虽然虚拟机仍然是企业和关键工作负载虚拟化的最爱,但容器正在逐渐普及。
事实上,这两种虚拟化技术是相辅相成的。虚拟机通过支持资源密集型应用程序的可移植性和增强的服务器利用率来解决基础架构问题。容器通过促进 DevOps 和微服务来解决应用程序开发问题。结合起来,组织可以通过混合虚拟化方法优化这些创新。