Google Cloud Well-Architected Framework:金融服务 (FS) 视角中的本文档简要介绍了优化 Google Cloud中 FS 工作负载费用的原则和建议。本文档中的建议与 Well-Architected Framework 的费用优化核心一致。
要针对金融服务工作负载进行有效的费用优化,需要具备以下基本要素:
- 能够识别浪费性资源利用与价值驱动型资源利用。
- 根深蒂固的财务责任文化。
如需优化费用,您需要全面了解整个组织的成本动因和资源需求。在一些大型组织中,尤其是那些处于云之旅早期阶段的组织,通常由一个团队负责优化大量网域的支出。此方法假设中心团队最适合发现提高效率的高价值机会。
在云采用的初始阶段或对于非关键工作负载,集中式方法可能会取得一些成功。不过,单个团队无法在整个组织中推动费用优化。当资源用量或监管审查级别增加时,集中式方法将不可持续。集中式团队面临可伸缩性挑战,尤其是在处理大量金融产品和服务时。拥有产品和服务的项目团队可能会抵制外部团队所做的更改。
为了有效优化成本,支出相关数据必须高度可见,并且必须激励接近工作负载的工程师和其他云用户采取行动来优化成本。从组织的角度来看,成本优化的挑战在于确定应优化的领域,确定负责这些领域的工程师,然后说服他们采取所需的优化措施。本文档提供了应对这一挑战的建议。
本文档中的费用优化建议与以下核心原则相对应:
使用 Google Cloud 工具识别浪费
Google Cloud 提供了多种产品、工具和功能来帮助您识别浪费。请考虑以下建议。
利用自动化和 AI 技术,系统地确定需要优化的内容
Active Assist 可为各种服务提供智能建议,例如用于微服务的 Cloud Run、用于数据分析的 BigQuery、用于核心应用的 Compute Engine 以及用于关系型数据库的 Cloud SQL。Active Assist 建议免费提供,无需您进行任何配置。这些建议可帮助您识别空闲资源和未充分利用的承诺。
通过统一界面集中监控和控制 FinOps
Cloud Billing 结算报告和 FinOps 中心可让您实现全面的费用监控。这种全面的视图对于财务审计员和内部财务团队至关重要,有助于他们跟踪云支出、评估财务状况、评估各个业务部门或成本中心的 FinOps 成熟度,并提供一致的财务叙述。
通过分析和丰富支出数据来确定价值
Active Assist 可有效识别明显的浪费。不过,确定价值可能更具挑战性,尤其是在工作负载位于不合适的产品上或工作负载与业务价值缺乏明确一致性时。对于金融服务工作负载,业务价值不仅仅是降低成本。其价值包括风险缓释、监管合规和获得竞争优势。
如需全面了解云支出和价值,您需要从多个层面进行全面了解:支出从何而来、支出推动了哪些业务功能,以及重构或优化相关工作负载的技术可行性。
下图展示了如何应用数据-信息-知识-智慧 (DIKW) 金字塔和 Google Cloud 工具来全面了解云费用和价值。
上图展示了如何使用 DIKW 方法将原始云支出数据提炼为富有实用价值的分析洞见和决策,从而推动业务价值。
- 数据:在此层中,您将收集云资源的使用情况和费用数据的原始、未经处理的数据流。您的中央 FinOps 团队使用 Cloud Billing 账单、结算导出和 Cloud Monitoring 等工具来获取精细、详细的数据。例如,一个数据点可能是名为
app1-test-vmA的虚拟机在us-central1区域运行了 730 小时,费用为 70 美元。 - 信息:在此层中,您的中央 FinOps 团队使用 Cloud Billing 结算报告和 FinOps 中心等工具来构建原始数据,以帮助回答“人们在哪些类别的资源上花钱?”等问题。例如,您可能会发现,在美国两个区域中,n4-standard-2 机器类型的虚拟机总共花费了 1,050 美元。
- 知识:在此层中,您的中央 FinOps 团队会使用适当的业务背景信息来丰富信息,包括谁花了钱以及出于什么目的。您可以使用标记、标签、资源层次结构、结算账号和自定义 Looker 信息中心等机制。例如,您可能会确定,美国的
app1测试团队在 7 月的第二周花费了 650 美元,作为压力测试练习的一部分。 - 智慧:在此层中,您的产品和应用团队会使用情境化知识来评估云支出的业务价值,并做出明智的战略决策。您的团队可能会回答以下问题:
- 花费 5,000 美元构建的数据分析流水线是否产生了业务价值?
- 我们能否在不降低性能的情况下,重新设计流水线以提高效率?
请考虑以下有关分析云支出数据的建议。
分析 Google Cloud提供的支出数据
首先,使用导出到 BigQuery 的详细 Cloud Billing 数据以及 Monitoring 日志中提供的数据。为了获得富有实用价值的分析洞见并做出决策,您需要对这些数据进行结构化处理,并使用业务背景信息丰富这些数据。
通过可用工具直观呈现数据
通过在 BigQuery Export 的基础上使用数据洞察等工具,利用自定义报告来增强内置 Google Cloud 信息中心。财务团队可以构建自定义信息中心,将云支出与财务指标、监管报告要求和业务单位盈利能力相结合。然后,他们可以提供清晰的财务叙述,供高管利益相关方进行分析和决策。
分配支出以明确责任
了解云支出的驱动因素后,您需要确定谁在花钱以及原因。这种程度的了解需要强大的成本分配实践,其中包括将与业务相关的元数据附加到云资源。例如,如果 Banking-AppDev 团队使用特定资源,您可以将 team=banking_appdev 等标记附加到该资源,以跟踪该团队在该资源上产生的费用。理想情况下,您应该将 100% 的云费用分配给支出来源。在实践中,您可能会从较低的目标开始,因为构建元数据结构以支持 100% 的费用分配是一项复杂的工作。
请考虑以下建议,制定元数据策略以支持费用分摊:
- 有效性:确保标记有助于识别与业务相关的关键绩效指标 (KPI) 和监管要求。这种关联对于内部退款、监管报告以及使云支出与业务部门目标保持一致至关重要。例如,以下标记可清楚地标识支出团队、其所在区域以及他们负责的产品:
team=banking_appdev、region=emea、product=frontend。 - 自动化:如需实现高水平的标记合规性,请通过自动化强制执行标记。手动标记容易出错且不一致,这在可审核性和财务准确性至关重要的金融服务环境中是不可接受的。自动标记可确保资源在创建时被正确分类。
- 简单性:衡量简单、不相关的因素。金融服务环境错综复杂。为确保此类环境中的费用分摊规则易于理解和执行,规则必须尽可能简单。避免针对高度特定(极端)情况过度设计规则。复杂的规则可能会导致运营团队感到困惑和抵触。
使用标记定义分配策略后,您需要确定该策略的实施粒度。所需的粒度取决于您的业务需求。例如,某些组织可能需要跟踪产品级费用,某些组织可能需要每个成本中心的费用数据,而其他组织可能需要每个环境(开发、预演和生产)的费用数据。
请考虑以下方法,为您的组织实现适当级别的费用分摊粒度:
- 使用 Google Cloud 中的项目层次结构作为费用分摊的自然起点。项目代表 Google Cloud中的政策执行点。默认情况下,Identity and Access Management (IAM) 权限、安全政策和费用会归因于项目和文件夹。查看从 Cloud Billing 导出的费用数据时,您可以查看文件夹层次结构以及与费用数据关联的项目。如果您的Google Cloud 资源层次结构反映了组织的支出责任结构,那么这是实现费用分配的最简单方法。
- 使用标记和标签可实现更精细的控制。它们提供了灵活的方法来对结算导出中的资源进行分类。标记和标签有助于按应用和环境详细细分费用。
通常,您可能需要将项目层次结构与标记和标签结合使用,以实现有效的费用分配。无论您选择哪种费用分摊方法,请遵循前面所述的建议,制定可靠的元数据策略:有效性、自动化和简单性。
推动责任落实,激励工程师采取行动
Cloud FinOps 团队负责推动组织关注成本和价值。各个产品团队和工程团队必须采取必要的措施来优化费用。这些团队还负责金融服务工作负载的费用行为,并确保其工作负载提供所需的业务价值。
请考虑以下建议,以提高责任感并激励团队优化费用。
建立集中式 FinOps 团队进行治理
Cloud FinOps 实践不会自然而然地发展。专门的 FinOps 团队必须通过执行以下操作来定义和建立 FinOps 实践:
- 构建所需的流程、工具和指南。
- 创建、传达和强制执行必要的政策,例如强制性标记、预算审核和优化流程。
- 鼓励工程团队对费用负责。
- 在工程团队不承担费用所有权时进行干预。
获得高管支持和授权
包括 CTO、CFO 和 CIO 在内的高级领导层必须积极倡导在整个组织范围内向 FinOps 文化转变。他们的支持对于优先考虑成本责任、为 FinOps 计划分配资源、确保跨职能参与以及推动遵守 FinOps 要求至关重要。
激励团队优化成本
工程师和工程团队可能没有自我激励来专注于费用优化。通过实施以下激励措施,使团队和个人目标与成本效益保持一致,这一点非常重要:
- 将通过费用优化节省的部分资金重新投资于实现优化的团队。
- 公开认可和表彰成本优化工作和成功经验。
- 使用游戏化技巧奖励有效优化费用的团队。
- 将效率指标纳入效果目标。
实施反馈和退款技术
确保团队能够清楚地了解他们拥有的云资源和费用。将财务责任分配给团队中的相应人员。使用正式机制强制执行严格的标记,并实施透明的规则来分配共享费用。
专注于价值和 TCO,而非成本
在评估云解决方案时,请考虑长期总拥有成本 (TCO)。例如,为应用自行托管数据库似乎比使用 Cloud SQL 等托管式数据库服务更便宜。不过,如需评估长期价值和 TCO,您必须考虑与自托管数据库相关的隐性费用。这些费用包括用于修补、伸缩、安全强化和灾难恢复的专门工程工作,这些都是金融服务工作负载的关键要求。托管式服务可提供明显更高的长期价值,从而抵消基础架构成本。托管式服务提供强大的合规性功能,具有内置的可靠性功能,并有助于减少运营开销。
请考虑以下建议,重点关注价值和 TCO。
使用特定于产品的技术和工具进行资源优化
利用 Google Cloud产品提供的费用优化工具和功能,例如:
- Compute Engine:自动扩缩、自定义机器类型和 Spot 虚拟机
- Google Kubernetes Engine:集群自动扩缩器和节点自动预配
- Cloud Storage:对象生命周期管理和 Autoclass
- BigQuery:基于容量的价格和费用优化技术
- Google Cloud VMware Engine:承诺使用折扣 (CUD)、优化存储空间和其他费用优化策略
享受超值折扣优惠
利用 Google 提供的折扣,确保云资源的结算费率尽可能低。各个产品和工程团队通常负责管理资源优化。中央 FinOps 团队负责优化结算费率,因为他们可以了解整个组织的资源需求。因此,他们可以汇总需求,并最大限度地提高基于承诺的折扣。
您可以利用以下类型的Google Cloud 资源折扣:
- 企业折扣是协商折扣,基于贵组织承诺以较低的结算费率在 Google Cloud 上达到的最低总支出。
- 基于资源的 CUD 是为了换取您承诺在一年或三年期间使用最低数量的 Compute Engine 资源。基于资源的 CUD 适用于特定区域中的资源。对于大多数 Cloud Billing 账号, Google Cloud 会启用基于资源的 CUD 共享,并在与该账号关联的所有项目中共享 CUD。
- 基于支出的 CUD 是为了换取您承诺在一年或三年内为特定产品支付最低金额。基于支出的折扣适用于结算账号级。折扣按区域或全球应用,具体取决于产品。
除了企业折扣之外,您还可以使用 CUD 来节省大量费用。
除了 CUD 之外,您还可以使用以下方法来降低结算费率:
- 将 Spot 虚拟机用于容错和灵活的工作负载。Spot 虚拟机比常规虚拟机便宜 80% 以上。
- BigQuery 提供多种价格模式,包括按需价格和基于版本的价格,后者基于承诺和自动扩缩要求。如果您使用大量 BigQuery 资源,请选择适当的版本,以降低分析工作负载的每个槽费用。
- 仔细评估您需要使用的服务的可用 Google Cloud 区域。选择符合您的成本目标以及延迟时间和合规性要求等因素的区域。如需了解费用、可持续性和延迟时间之间的权衡,请使用 Google Cloud 区域选择器。