你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

有关设置支出防护措施的建议

适用于此 Azure 精心构建的框架成本优化清单建议:

CO:04 设置支出防护措施。 “护栏”应包括发布门槛、治理策略、资源限制和访问控制。 将平台自动化优先于手动流程。

本指南介绍了有关设置支出防护措施的建议。 支出防护措施是控制和管理指定预算内成本的措施。 它们有助于防止意外或过度支出,并促进资源经济高效的利用。 如果没有支出防护措施,工作负荷成本可能会超过预算,从而导致计划外支出可能会使财务资源紧张。

定义

术语 定义
治理策略 一组规则,用于强制实施合规性并启用对工作负荷资源的审核。
调控 一组策略、流程和控制措施,可帮助确保工作负荷得到有效、安全且符合组织和法规要求。
基础结构即代码 (IaC) 用于定义和部署基础结构的描述性模型,包括网络、虚拟机、负载均衡器和连接拓扑。
释放门 发布管道中必须满足的条件或检查点,才能继续部署。 发布门有助于确保在发布软件之前满足特定条件。

关键设计策略

通过实施措施来控制和管理指定预算内的成本来设置支出防护措施。 这些措施包括治理策略、访问控制、发布入口、预算阈值和警报。 自动化可降低人为错误的风险,提高效率,并帮助持续应用支出防护措施。 将平台自动化优先于手动流程。 平台提供的自动化工具和服务可以简化资源预配、配置和管理。

使用治理策略

治理策略可以充当资源类型、配置、标记、位置和数据管理等各方面的支出防护措施。 许多云平台都有一种自动执行治理策略的服务。 使用自动化策略来控制资源使用情况、强制实施责任,并消除对受限资源类型的支出。 下面是应考虑强制执行的一些策略:

  • 受限制的资源类型:策略可以指定组织内允许或禁止的资源类型。 例如,组织可能有一个策略来限制使用某些昂贵的资源类型来控制成本。

  • 资源限制:设置资源限制以控制成本并防止过度预配。 包括可预配的资源数、资源大小以及策略中资源使用情况持续时间的限制。 这些限制有助于防止过度支出并优化资源利用率。 例如,资源限制可以最大程度地减少与加密挖掘相关的未经授权的帐户泄露的影响。

  • 定义的资源配置:策略可以定义资源的特定配置。 可以对提升成本优化的资源强制实施设置,例如自动缩放和数据存档

  • 受限位置:可以使用策略将资源部署到特定区域或位置。 考虑限制位置以避免昂贵的数据传输费用,并维护数据主权法规的合规性。

  • 托管数据:使用策略强制实施有助于优化成本的数据管理做法。 例如,可以实施策略,这些策略要求对访问频率较低的数据使用低成本存储层或定义数据保留过期规则的策略。

  • 强制执行的元数据:建立强制使用特定元数据的策略,以便更好地跟踪和成本分配。 还可以在自动化或手动评审中使用元数据。 例如,使用元数据通过备份标记自动执行资源备份。 一致的元数据策略有助于将成本与支出防护措施保持一致。

  • 有限的空闲资源:使用策略标识空闲资源,以便删除或重新调整其用途。 请考虑设置在不使用实例的小时内自动关闭实例的策略。

风险图标风险:如果实现自动缩放,请根据测试设置最大缩放阈值。 最大阈值有助于避免导致成本溢出的大规模缩放峰值,但设置的阈值太低可能会对性能产生负面影响。 有关详细信息,请参阅 有关优化缩放成本的建议。

配置访问控制

配置访问控制以设置阻止超支的限制,并帮助确保只有经过授权的个人才能消耗资源。 访问控制有助于降低对成本优化产生负面影响的意外或不必要的更改的风险。 若要实现成本优化访问控制,请执行以下步骤:

  1. 确定必要的控制。 确定需要访问控制的资源和服务。

  2. 定义访问策略。 根据最低特权访问原则定义访问策略,仅向用户授予执行其任务所需的权限。 例如,某些用户可能只需要读取访问权限,而另一些用户可能还需要写入或删除权限。

  3. 实现身份验证。 实现身份验证方法,例如用户名/密码、多重身份验证或与标识提供者的集成,以帮助确保只有经过授权的用户才能访问资源。

  4. 使用基于角色的访问控制 (RBAC)。 设置 RBAC 以根据其作业职责向用户分配角色和权限。 使用 RBAC 可帮助你有效地管理资源访问。

  5. 查看和更新控件。 定期查看和更新访问控制,以确保它们符合组织不断变化的需求。 删除不必要的访问权限,并根据需要调整访问级别。

使用发布入口

发布入口是发布或部署可以继续之前必须满足的检查点或条件。 使用发布入口来帮助确保发布经济高效且符合优化目标。 发布入口提供了一种结构化的方法,用于识别和实施成本节约措施。 若要实现工作负荷成本优化发布入口,请考虑以下步骤:

  1. 建立发布门条件。 确定在释放或部署资源之前必须满足的条件或条件。 包括支出限制、资源利用率阈值或项目里程碑等因素。

  2. 合并释放门。 将发布入口合并到部署管道中。 可以使用自动化工具或自定义脚本来确保资源部署受定义的条件的约束。

  3. 监视支出。 根据定义的条件持续监视支出和资源使用情况。 如果组织超过支出阈值,发布入口应阻止进一步部署,直到解决问题。

配置成本警报

必须针对预算、成本异常和基于承诺的计划利用率设置警报,以优化成本。 这些警报提供云支出的可见性,并启用主动成本管理。 请小心管理警报的通知收件人,并使收件人列表保持最新状态,并具有当前职责和访问权限。 为优化成本而创建的一些警报包括:

  • 预算警报:设置预算警报,根据预定义的阈值跟踪支出。 可以通过创建每月预算、计费帐户或资源组来监视成本,并在接近或超过预算金额时接收通知。 预算警报可帮助你随时了解支出情况,并采取预防措施来控制成本。

  • 成本异常警报:异常警报会通知你有关可能表示效率低下或异常支出模式的意外成本变化。 可以将这些警报配置为识别实际成本或预测成本中的异常。 使用成本异常警报调查成本变化的根本原因,并在必要时采取纠正措施。

  • 基于承诺的计划利用率警报:实施基于承诺的计划利用率警报来监视计划使用情况。 如果你有基于承诺的计划,则针对计划利用率设置警报可以帮助你有效地管理和最大化这些承诺的价值。 如果基于承诺的资源利用率低于所需的阈值,则可以配置这些警报以通知利益干系人。 优化基于承诺的资源,并确保使用承诺的好处。

使用 IaC

基础结构即代码是使用代码管理和预配基础结构资源的做法,通常采用配置文件的形式。 实施此策略,以使用基于代码的模板定义和自动化基础结构资源的部署和配置,例如虚拟机、网络和存储。

IaC 策略提供了一种结构化且可重复的方法来管理和控制基础结构资源。 IaC 可帮助你根据需要部署资源、在不连续运行资源的情况下删除资源,并确保根据预定义规则部署和配置资源,从而优化成本。 按照以下步骤使用 IaC 进行成本优化:

  1. 创建 IaC 模板。 创建基于代码的模板语言来定义基础结构资源及其配置。 这些模板允许你以声明方式指定基础结构资源的所需状态。 在基础结构代码中实现成本优化最佳做法。 请考虑使用预留实例或节省计划来正确调整资源大小。 使用经济高效的存储选项,并应用资源元数据进行成本分配和跟踪。

  2. 存储模板。 将 IaC 模板存储在版本控制系统中,以跟踪更改和管理不同版本。 可以使用版本控制来维护基础结构配置的历史记录,并促进团队成员之间的协作。

  3. 使用参数。 使用模板中的参数使其可重用和可配置。 通过使用参数,可以轻松地为不同的环境或方案自定义基础结构部署。

  4. 使用临时环境。 使用临时环境进行开发、测试和暂存,以优化成本。 仅在必要时才应运行临时环境。 使用 IaC 工具创建这些环境,并在完成后删除环境。

  5. 使用 IaC 工具。 使用 IaC 工具和框架自动部署和配置基础结构资源。 使用自动化根据定义的策略一致可靠地部署资源。

  6. 监视已部署的资源。 定期监视资源及其成本,以确保符合支出策略。 使用监视和警报工具识别与定义的护栏的任何偏差,并根据需要采取纠正措施。 检查未使用的资源并删除它们,最好是自动化。

Azure 便利化

使用治理策略:使用 Azure Policy 定义并强制实施符合成本优化目标的治理策略。 可以使用 Azure Policy 在管理组、订阅和资源组上设置规则。 这些策略可以规范资源预配、使用限制和成本分配。 使用策略促进资源权限化、识别和消除空闲或未充分利用的资源,并鼓励使用经济高效的服务和体系结构。

Azure 为常见用例提供内置策略,这些用例提供了一种标准化且高效的方法来在整个 Azure 资源中强制实施规则和准则。 建议定义自己的自定义策略,以满足 Azure 内置策略未涵盖的独特业务要求或特定行业法规。 有关详细信息,请参阅 Azure Policy 内置策略定义

Azure 允许设置限制或配额以防止意外成本。 除了资源使用情况的大小和持续时间外,还可以定义可预配的资源数限制。 设置这些限制以帮助防止过度预配和控制成本。

  • 标识未充分利用或空闲的资源。 使用 Azure 顾问 通过识别空闲和未充分利用的资源来优化和降低总体 Azure 成本。 从顾问仪表板中的成本部分接收成本建议。

  • 添加资源元数据。 使用 Azure 治理实现资源标记和分类。 使用相关元数据标记资源,以便跟踪和分配不同部门、项目或成本中心的成本。 了解成本归因有助于识别高支出领域、优化资源分配以及促进更好的成本管理。

配置访问控制:使用 Azure RBAC 管理对资源的访问。 可以使用 RBAC 根据其角色向用户、组或应用程序授予权限。 实现 RBAC 以帮助确保只有授权用户有权访问资源,降低未经授权的资源使用和潜在成本影响的风险。

使用发布入口:使用 Azure Pipelines 发布管理来定义和强制实施发布入口。 可以设置手动或自动检查点,以帮助确保满足特定条件,例如安全检查、合规性要求和成本阈值。

使用基础结构即代码。 可以使用 Azure 工具和服务通过代码部署和管理基础结构资源。 通过使用 Azure 资源管理器 (ARM) 模板、Azure Bicep 和 Azure DevOps 等工具,可以声明方式定义和部署基础结构资源。 Azure 具有适用于每个 Azure 资源的 Bicep、Azure 资源管理器 和 Terraform 模板

使用 Azure Pipelines 或其他持续集成和持续交付(CI/CD)工具自动执行生成、测试和部署过程。 Teams 可以使用管道定义一系列步骤和操作,每当对代码库进行更改时,这些步骤和操作都会自动运行。 自动执行这些过程,以减少手动工作量,确保一致性,并加快软件交付。

请考虑对临时或非生产环境使用低成本资源来优化成本。 Azure 为资源提供各种定价层。 Azure 开发测试实验室定价和 Azure 预留是可以探索临时环境的成本节省方法。

Git 存储库(如 Azure ReposGitHub)提供用于管理代码和基础结构配置的版本控制功能。 Teams 和开发人员可以使用自动化存储库来协作、跟踪更改和维护其代码库的历史记录。

Azure 部署环境 使开发团队能够使用基于项目的模板快速轻松地创建应用基础结构,这些模板可建立一致性和最佳做法,同时最大程度地提高安全性。 对安全环境的按需访问以合规且经济高效的方式加速软件开发生命周期的各个阶段。

Azure 开发人员 CLI 是一种开源工具,可加快将应用程序从本地开发环境迁移到 Azure 所需的时间。 无论在终端中工作、集成开发环境(IDE 还是 CI/CD),Azure 开发人员 CLI 都提供开发人员友好的命令,这些命令映射到工作流的关键阶段。

配置成本警报:使用 Microsoft成本管理 来优化成本并强制实施支出防护措施。 可以使用成本管理功能来设置预算和警报,使用 Power BI 等工具可视化成本信息,并分析成本模式和性能瓶颈。

组织遵循情况

中心团队应使用云采用框架指南在整个组织中设置支出防护措施,以便工作负荷团队了解中心团队可以提供哪些服务。

我们鼓励组织采用政策驱动的防护措施。 有关示例实现,请参阅 采用策略驱动的防护措施

成本优化清单

请参阅完整的建议集。