优化资源使用情况

Last reviewed 2024-09-25 UTC

Google Cloud 架构框架费用优化支柱中的这一原则提供了建议,可帮助您规划和预配资源,使其符合云工作负载的要求和使用模式。

原则概览

如需优化云资源的费用,您需要彻底了解工作负载的资源要求和负载模式。这项了解是制定明确费用模型的基础,可让您预测总拥有成本 (TCO),并在整个云采用历程中确定费用驱动因素。通过主动分析和预测云支出,您可以就资源预配、利用率和费用优化做出明智的选择。通过这种方法,您可以控制云支出、避免过度预配,并确保云资源与工作负载和环境的动态需求保持一致。

建议

如需有效优化云资源用量,请考虑以下建议。

选择特定于环境的资源

每个部署环境对可用性、可靠性和可伸缩性都有不同的要求。例如,开发者可能更喜欢能够让他们快速部署和运行应用一段时间的环境,但可能不需要高可用性。另一方面,生产环境通常需要高可用性。为了最大限度地提高资源利用率,请根据您的业务需求定义特定于环境的要求。下表列出了特定于环境的要求示例。

环境 使用要求
生产
  • 高可用性
  • 可预测的性能
  • 运营稳定性
  • 利用强大的资源保障安全
开发和测试
  • 成本效益
  • 具有可弹性扩容的灵活基础架构
  • 当数据持久性不是必需时,使用短时性基础架构
其他环境(例如预演环境和质量检查环境)
  • 根据环境特定要求量身分配资源

选择特定于工作负载的资源

您的每个云工作负载在可用性、可伸缩性、安全性和性能方面可能都有不同的要求。如需优化费用,您需要根据每个工作负载的具体要求选择资源。例如,无状态应用可能不需要与有状态后端相同的可用性或可靠性级别。下表列出了更多特定于工作负载的要求示例。

工作负载类型 工作负载要求 资源选项
任务关键型 持续可用、强大的安全性和高性能 高级资源和 Spanner 等托管服务,可实现数据的高可用性和全球一致性。
非重大 经济高效且可自动扩缩的基础架构 具有基本功能的资源以及 Spot 虚拟机等暂时性资源。
事件驱动 根据当前的容量和性能需求进行动态伸缩 Cloud RunCloud Run functions 等无服务器服务。
实验性工作负载 低成本且柔性环境,助力快速开发、迭代、测试和创新 提供基本功能的资源、Spot 虚拟机等暂时性资源,以及设有支出限额的沙盒环境。

云计算的一个优势是,您可以根据给定工作负载利用最合适的计算能力。有些工作负载在开发时就考虑到了利用处理器指令集,而有些工作负载可能并非如此。相应地对工作负载进行基准测试和性能分析。对工作负载进行分类,并做出特定于工作负载的资源选择(例如,为 Compute Engine 虚拟机选择适当的机器系列)。此做法有助于优化成本、实现创新,并维持工作负载所需的可用性和性能水平。

以下示例展示了如何实现此建议:

  • 对于面向分布在全球各地的用户提供服务的任务关键型工作负载,请考虑使用 Spanner。Spanner 可确保所有区域中的数据可靠性和一致性,从而无需进行复杂的数据库部署。
  • 对于负载水平波动的工作负载,请使用自动扩缩功能,确保在负载较低时不会产生费用,同时保持足够的容量来满足当前负载。您可以为许多 Google Cloud 服务配置自动扩缩,包括 Compute Engine 虚拟机Google Kubernetes Engine (GKE) 集群Cloud Run。设置自动伸缩时,您可以配置伸缩上限,以确保费用保持在指定预算范围内。

根据费用要求选择区域

对于云工作负载,请仔细评估可用的 Google Cloud 区域,并选择符合您的成本目标的区域。费用最低的区域可能无法提供最佳延迟时间,或者可能不符合您的可持续发展要求。明智地决定在何处部署工作负载,以实现所需的平衡。您可以使用 Google Cloud 区域选择器了解成本、可持续性、延迟时间和其他因素之间的权衡。

使用内置的费用优化选项

Google Cloud 产品提供内置功能,可帮助您优化资源使用情况并控制费用。下表列出了您可以在某些 Google Cloud 产品中使用的费用优化功能示例:

产品 费用优化功能
Compute Engine
GKE
  • 使用集群自动扩缩器根据当前负载自动调整 GKE 集群的大小。
  • 使用 节点自动预配功能,根据工作负载要求自动创建和管理节点池,并确保实现最佳资源利用率。
Cloud Storage
  • 使用 对象生命周期管理,根据数据的保留期限或访问模式,自动将数据转移到费用较低的存储类别。
  • 使用 Autoclass,根据使用模式将数据动态移动到最具成本效益的存储类别。
BigQuery
  • 使用基于容量的价格,降低稳态工作负载的查询处理费用。
  • 使用分区和聚类技术优化查询性能和费用。
Google Cloud VMware Engine
  • 通过使用 CUD、优化存储空间用量和合理调整 ESXi 集群等费用优化策略来降低 VMware 费用。

优化资源共享

为了最大限度地利用云资源,您可以在同一基础架构上部署多个应用或服务,同时仍能满足应用的安全性和其他要求。例如,在开发和测试环境中,您可以使用相同的云基础架构来测试应用的所有组件。对于生产环境,您可以将每个组件部署在单独的一组资源上,以便在发生事故时限制影响程度。

以下示例展示了如何实现此建议:

  • 将单个 Cloud SQL 实例用于多个非生产环境。
  • 通过在 GKE Enterprise 中使用舰队团队管理功能并搭配适当的访问权限控制,让多个开发团队共享一个 GKE 集群。
  • 使用 GKE Autopilot 充分利用 GKE 默认实现的费用优化技术,例如分箱打包和自动扩缩。
  • 对于 AI 和 ML 工作负载,通过使用多实例 GPU、GPU 分时和 NVIDIA MPS 等 GPU 共享策略来节省 GPU 费用。

开发和维护参考架构

创建和维护一个参考架构库,其中包含专门用于满足不同部署环境和工作负载类型要求的参考架构。为了简化各个项目的设计和实施流程,可以由某个团队(例如云技术卓越中心 [CCoE])集中管理蓝图。项目团队可以根据明确定义的标准选择合适的蓝图,以确保架构一致性并采用最佳实践。对于项目独有的要求,项目团队和中央架构团队应协作设计新的参考架构。您可以跨组织共享参考架构,以促进知识共享并扩大可用解决方案的代码库。这种方法可确保一致性、加快开发速度、简化决策制定,并促进高效利用资源。

查看 Google 针对各种使用情形和技术提供的参考架构。这些参考架构纳入了资源选择、大小调整、配置和部署方面的最佳实践。通过使用这些参考架构,您可以加快开发流程,并从一开始就实现节省成本。

使用组织政策强制执行费用控制

考虑使用组织政策来限制团队成员可以使用的 Google Cloud 位置和产品。这些政策有助于确保团队坚持采用经济高效的解决方案,并在符合您的成本优化目标的位置预配资源。

估算切合实际的预算并设置财务边界

为每个项目、工作负载和部署环境制定详细的预算。 确保预算涵盖云端运维的所有方面,包括基础架构费用、软件许可、人员配置和预期增长。为防止超支并确保与您的财务目标保持一致,请为项目、服务或特定资源设定明确的支出限额或阈值。定期根据这些限制监控云支出。您可以使用主动配额提醒,及早发现可能超支的费用,并及时采取纠正措施。

除了设置预算之外,您还可以使用配额和限制来强制执行费用控制措施,并防止支出意外激增。您可以通过在项目、服务甚至特定资源类型等不同级别设置配额,对资源使用情况进行精细控制。

以下示例展示了如何实现此建议:

  • 项目级配额:在项目一级设置支出限制或资源配额,以建立整体财务边界并控制项目中所有服务的资源消耗。
  • 特定于服务的配额:为特定 Google Cloud 服务(例如 Compute Engine 或 BigQuery)配置配额,以限制可预配的实例数量、CPU 或存储容量。
  • 资源类型专属配额:对 Compute Engine 虚拟机、Cloud Storage 存储桶、Cloud Run 实例或 GKE 节点等单个资源类型应用配额,以限制其用量并防止意外超支。
  • 配额提醒:在配额用量(在项目一级)达到最大值的某个百分比时收到通知。

通过将配额和限制与预算和监控相结合,您可以创建一种积极主动的多层级费用控制方法。这种方法有助于确保您的云支出保持在既定范围内,并与您的业务目标保持一致。请注意,这些费用控制措施并非永久性或严格的措施。为确保费用控制措施始终符合当前的行业标准并反映不断变化的业务需求,您必须定期检查这些措施并进行调整,以纳入新技术和最佳实践。