在基础设施即服务 (IaaS) 中,虚拟机 (VM) 充当基础构建块,通过互联网提供按需的、可扩展的计算资源。VM 通过将服务器硬件划分为独立的隔离环境来模拟物理计算机,每个环境运行自己的操作系统和应用程序。这种抽象使开发人员无需拥有或维护物理硬件即可部署和管理工作负载。例如,当开发人员在 AWS EC2 或 Azure Virtual Machines 中启动 VM 时,他们实际上是在租用数据中心的一部分计算能力、存储和网络资源,并可以根据需要对其进行配置和扩展。
VM 实现了资源隔离和多租户,这对于 IaaS 至关重要。虚拟机监控程序(如 VMware ESXi 或 KVM)管理物理硬件并为每个 VM 分配资源,确保来自不同用户或团队的工作负载不会相互干扰。这种隔离提高了安全性和可靠性——例如,一个 VM 中配置错误的应用程序不会导致同一服务器上的相邻 VM 崩溃。开发人员还可以根据应用程序的要求定制 VM 规格(CPU、RAM、存储)。数据库服务器可以使用具有高内存和 SSD 存储的 VM,而 Web 服务器可以在具有优化网络带宽的较小实例上运行。Google Cloud 等提供商提供预定义的 VM 类型(例如,通用型或内存优化型)来简化此过程。
最后,VM 支持 IaaS 的灵活性和可扩展性。开发人员可以快速配置或取消配置 VM,以应对流量高峰、在隔离环境中测试新功能或在不停机的情况下部署更新。例如,团队可以在产品发布前启动临时 VM 进行负载测试,然后将其关闭以避免成本。VM 模板(如 Amazon Machine Images)允许克隆预配置的设置,进一步简化了部署。然而,虽然 VM 抽象了硬件管理,但开发人员仍然需要处理操作系统更新、安全补丁和应用程序依赖项。在选择 IaaS 而非 PaaS 等抽象更多堆栈层的平台时,这种控制与维护之间的权衡是一个关键考虑因素。