更新日期:2020 年 12 月 10 日
计算服务通常有以下四种服务模式:
- 基础设施即服务 (IaaS):这种模式下,用户可以直接按需访问虚拟机以及一套相关服务,从而自动执行常见任务。
- 平台即服务 (PaaS):这种模式下,机器层完全被抽象化,用户通过高级服务和 API 与资源进行交互。
- 容器即服务 (CaaS):是 IaaS/PaaS 的混合,它将机器层抽象化,但保留了 IaaS 模式的大部分灵活性。
- 函数即服务 (FaaS):这种模式下,用户可以创建无服务器的 PaaS 式微服务,而无需构建完整的应用。
本文重点介绍 Google 和 Microsoft 提供的 IaaS 服务。
IaaS 的比较
对于 IaaS,Microsoft Azure 提供的是 Azure 虚拟机 (VM),Google Cloud 提供的是 Compute Engine。Google 和 Microsoft 采用的 IaaS 服务方法相似:两者都是其各自云端环境的基础,几乎所有类型的客户工作负载都在其上运行。
概括来讲,Azure 的 IaaS 与 Google Compute Engine 在术语和概念方面的对应如下所示:
功能 | Azure | Compute Engine |
---|---|---|
虚拟机 | 虚拟机 | 虚拟机实例 |
虚拟机组 | 虚拟机规模集 | 实例组 |
映像 | 映像(仅启动磁盘和全机) | 映像(仅启动磁盘) |
自定义映像 | 通用化 Azure 虚拟机 | 自定义映像 |
虚拟机模板 | 资源管理器模板 | 实例模板 |
自动实例扩缩 | Azure Autoscale | Compute Engine 自动扩缩器 |
支持的虚拟机导入格式 | VHD | RAW、OVA、VMDK、VHD |
部署位置 | 区域或可用区 | 可用区 |
抢占式虚拟机 | 有 | 有 |
增量快照 | 有 | 有 |
虚拟机
Compute Engine 虚拟机实例和 Azure 虚拟机具有许多相同的功能。利用这两种服务,您都可以:
- 从启动磁盘映像创建实例。
- 按需启动和终止实例。
- 不受限制地管理您的实例。
- 标记您的实例。
- 在您的实例上安装各种可用的操作系统。
机器访问
在 Compute Engine 和 Azure 上,您都可以通过 Windows 远程管理服务和远程桌面协议 (RDP) 等标准方法访问 Windows 虚拟机。
对于 Linux 虚拟机,Compute Engine 和 Azure 处理基于 SSH 的机器访问的方式稍有不同。在 Azure 上,如果希望对虚拟机进行基于 SSH 的访问,您必须添加自己的 SSH 密钥,而在 Compute Engine 上,您可以在需要时创建密钥,即使您的虚拟机实例已在运行也是如此。
Compute Engine 还提供通过浏览器进行 SSH 连接功能,该功能可为给定虚拟机实例提供基于浏览器的 SSH 终端。 Azure Cloud Console 和 Cloud Shell 向各自的平台提供临时的命令行界面,而与这两者不同,“通过浏览器进行 SSH 连接”功能提供从浏览器到特定虚拟机实例的直接访问。如果您选择使用此功能(此功能在 Google Cloud Console 中提供),便无需在本地机器上存储密钥。
机器类型
Azure 和 Compute Engine 都提供各种预定义的虚拟机配置,包括特定数量的虚拟 CPU、RAM 和网络容量。
与 Azure 一样,Compute Engine 会将虚拟机分为以下系列:
- 基本实例
- 通用实例
- 计算优化实例
- 内存优化实例
- GPU 实例
- 共享核心实例
此外,Compute Engine 允许您不使用预定义配置。您可以自定义虚拟机实例的 CPU 和 RAM 资源以适合工作负载。
映像
Azure 提供操作系统映像(仅启动磁盘)和 Azure 虚拟机映像(还包括虚拟机的交换磁盘或数据磁盘)。Compute Engine 机器映像仅包含启动磁盘。
Azure 和 Compute Engine 都为常用的操作系统(如 Windows、Ubuntu 或 Red Hat Enterprise Linux)提供了各种平台或社区支持的映像,以及预装了各种常见服务器应用(如 SQL Server)的映像。 在这两个平台上,如果您选择的映像使用需要许可的付费操作系统,那么除了正常的虚拟机费用外,您还需要支付许可费。
这两个平台均具有提供各种预配置的端到端解决方案的市场。Azure 的市场是 Azure Marketplace,Google Cloud 的市场是 Cloud Launcher。利用这些渠道,您可以以最少的配置在一个或多个虚拟机上启动常见的应用。
自定义映像导入
Azure 和 Compute Engine 都提供了将现有机器映像导入各自环境的方法:
- 在 Azure 上,您上传的机器映像必须是与 Azure 版本的 Hyper-V 兼容的 VHD。VHD 通常会转换为 Azure 代管式磁盘。
- Compute Engine 导入工具支持 RAW、OVA、VMDK 和 VHD 机器映像。将映像上传到 Cloud Storage,然后使用
gcloud
命令行工具或 Cloud Console 将映像导入到 Compute Engine 中。如需详细了解如何将映像和其他虚拟资源导入 Compute Engine,请参阅选择导入方法。
如果您构建自己的自定义操作系统并计划在 Compute Engine 上运行,请确保它们满足自定义映像的硬件支持和内核要求。
抢占式虚拟机
Azure 为单个虚拟机或规模集提供热点虚拟机。这些虚拟机在 Azure 数据中心的未使用容量上运行,比标准虚拟机便宜,但可以由各自的计算服务回收,而不会引起注意。由于它们具有短暂性,因此当应用的任务可以容忍中断或可以使用(但不需要)增加的计算能力时,这些虚拟机最为有用。
与此类似,Compute Engine 提供抢占式虚拟机实例,其作用与 Azure 的热点虚拟机相同。但与热点虚拟机相比,抢占式虚拟机实例未与特定服务关联,因而具有的灵活性稍高一些。抢占式虚拟机实例最多可运行 24 小时。如需了解详情,请参阅抢占式虚拟机实例。
自动化作业
扩缩
Compute Engine 和 Azure 都支持自动扩缩功能,可以根据用户定义的政策创建和移除实例。自动扩缩功能可用于在任何给定点维持特定数量的实例,或者根据某些情况调整容量。它还可以根据用户定义的模板创建自动扩缩的实例。
Compute Engine 和 Azure 实现自动扩缩功能的方法类似:
- Azure Autoscale 可在虚拟机规模集内扩缩实例数量。虚拟机规模集根据您选择的自动扩缩政策来创建和移除实例。
- Compute Engine 的自动扩缩器可在代管式实例组内扩缩实例数量。自动扩缩器根据您选择的自动扩缩政策来创建和移除实例。
Azure Autoscale 支持两种类型的自动扩缩:计划自动扩缩和动态自动扩缩。 通过计划自动扩缩,您可以将虚拟机规模集配置为在预定时间进行纵向扩容或缩减。通过动态自动扩缩,您可以将虚拟机配置为根据指标阈值(如 CPU 利用率或消息队列长度)进行扩容和缩容。
Compute Engine 的自动扩缩器可以使用您根据指标(例如平均 CPU 利用率、HTTP 负载平衡服务容量或 Stackdriver Monitoring 指标)定义的动态扩缩政策。与 Azure 一样,您还可以将 Compute Engine 自动扩缩器配置为根据时间表自动扩缩。
部署后配置
Compute Engine 和 Azure 都提供了在部署实例后自动执行其他配置的方法。在 Azure 上,您可以添加 Azure 虚拟机扩展程序,以在部署后进行虚拟机配置。在 Compute Engine 上,您可以添加启动脚本,以便在每次实例启动时执行自动化任务,例如安装软件、执行更新或启用服务。
内部网络
Compute Engine 和 Azure 都会自动将新的虚拟机连接到内部虚拟网络。此外,您还可以在这两项服务中创建其他网络并在这些网络中启动实例。如需查看 Google Cloud 网络和 Azure 网络的完整比较,请参阅网络一文。
块存储
Azure 和 Compute Engine 都支持联网和本地连接的块存储。如需了解其块存储服务的详细比较,请参阅块存储。
费用
本部分比较 Compute Engine 和 Azure 虚拟机的价格模式。
按需价格
Compute Engine 和 Azure 采用相似的按需价格模式对运行的实例进行计费:每项服务按分钟收费。Compute Engine 最低按十分钟的使用量收费。这两项服务都允许您无限期地运行虚拟机。
折扣价格
Compute Engine 和 Azure 提供折扣价格的方式不同。
Microsoft 通过 Microsoft 企业协议提供最大的虚拟机折扣。通过承诺在一个或多个 Microsoft 服务器或 Cloud 组件的安装基础中使用整个软件保障范围,您就可以通过这些协议获得折扣价格。如果您没有 Microsoft 企业协议,也可以通过经销商获得折扣价。
相比之下,Compute Engine 则提供持续使用折扣模式和承诺使用折扣模式。
- 持续使用折扣:Compute Engine 会根据虚拟机实例在给定月份的运行时间自动对您的实例应用折扣。您在给定月份使用实例的时间越长,折扣越大。持续使用折扣可以为您节省多达 30% 的标准按需费率。
- 承诺使用折扣:您承诺在一年或三年期间保留一定数量的虚拟 CPU,并且无论这些 CPU 是否被充分利用,您都需要按约定付费。此模式适用于可预测的稳态使用方式(在这种方式中,您将为未来的工作负载使用特定数量的核心和特定容量的内存)。 承诺使用折扣可以为您节省多达 57% 的标准按需费率。
如需详细了解 Compute Engine 的价格,请参阅 Compute Engine 价格。