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

优化组件成本的建议

适用于此 Azure Well-Architected 框架成本优化清单建议:

CO:07 优化组件成本。 定期删除或优化旧的、不需要的和未充分利用的工作负载组件,包括应用程序功能、平台功能和资源。

本指南介绍优化工作负载组件成本的建议。 优化组件成本是指评估和提高工作负载中各个元素的成本效益的过程。 它强调对过时、不必要或很少使用的组件(例如应用程序功能、平台功能和资源)的持续审查和潜在删除或改进。 它还介绍了灾难恢复环境的成本优化以及如何避免引入未优化的组件。 本文中的指南适用于不在设计阶段的现有工作负载。 忽略常规组件优化可能会导致成本膨胀、资源浪费和低效工作负载,从而消耗时间和金钱。

定义

术语 定义
应用程序功能 应用程序软件中的一项不同功能,使用户能够执行特定任务或访问特定信息。
平台功能 平台提供的特定功能。 它可能因平台而异,但通常,平台功能旨在增强用户体验、提高工作效率或启用特定任务或操作。
资源 可以在云服务提供商中创建、配置和利用的单个实体或组件。

关键设计策略

优化工作负载组件是优化工作负载的各种元素,包括应用程序功能、平台功能和资源。 目标是确保工作负载高效且经济高效地使用所有组件。 策略包括删除、修改和避免导致花费超出所需资源的组件。 组件成本优化过程可确保将资源分配给提供最大价值的功能和组件,从而避免不必要的费用。

优化应用程序功能

优化应用程序功能是删除、再投资应用程序功能或根据价值盈利的过程。 它可确保将资源分配给为客户提供最大价值的应用程序功能。 优化应用程序功能有助于避免投资导致技术债务或没有产生足够的投资回报的功能。

评估应用程序功能值

若要确定功能的价值,请考虑它对整个应用程序的影响,以及它提供给客户的价值。 需要考虑的一些因素包括:

  • 客户需求:评估该功能满足客户需求和期望的方式。 客户反馈、调查和使用情况数据对于理解感知的价值非常有用。

  • 业务目标:评估功能如何与业务战略目标保持一致。 考虑功能如何支持创收、客户满意度或竞争优势。

  • 对用户体验的影响:确定功能对增强用户体验和提高可用性或工作效率的影响。

  • 差异化:与市场上的其他应用程序相比,评估该功能是否提供独特的卖点或竞争优势。

评估应用程序功能成本

必须了解与每个功能相关的成本,以便有效地分配和优化资源。 评估成本时,请考虑各方面,例如:

  • 开发工作:评估开发和维护功能或周边特征所需的时间、资源和专业知识。 未充分利用的功能通常成为技术债务的主要来源。

  • 维护和支持:考虑与维护和支持该功能相关的持续成本,包括 bug 修复、安全更新和故障排除。

  • 基础结构和资源利用率:评估该功能对基础结构要求的影响,包括服务器资源、存储和带宽。

  • 集成复杂性:评估将功能与其他系统或第三方服务集成的复杂性和成本。

  • 性能注意事项:评估功能对应用程序性能的影响,包括可伸缩性、响应时间和资源使用情况。

与利益干系人一起查看应用程序功能价值

通过聘请产品经理、软件开发人员和业务分析师等关键人员,评估特定功能对业务目标的价值,与利益干系人一起查看应用程序功能的价值。 这种协作对于成本优化至关重要,因为它提供对维护工作的见解,并识别可能妨碍工作效率或减损开发新有价值的功能的功能。 开发团队可以提供有关维护某些功能所需工作量的重要信息。 鼓励他们直言不讳地谈论可能比价值更大的功能,尤其是当这些功能分散团队创建新功能时。

确定功能的未来

根据分析和评估,确定应用程序功能的未来。 删除任何不提供投资回报的应用程序功能,将其再投资或盈利:

  • 删除:根据数据考虑计划的应用程序功能生命周期结束。 删除功能的原因可能包括客户需求低、维护成本高、复杂性或冗余不值得修复。 创建删除计划,这可能涉及重构代码、更新依赖项或重新组织 UI。

    风险图标风险:可能会无意中删除对某些用户或方案至关重要的功能,并可能对应用程序的性能、操作和安全性产生负面影响。

  • 再投资:某些应用程序功能在其当前状态下可能无法增加足够的价值,但如果你再投资它们,可能会增加价值。 再投资意味着重新创建或提升应用程序功能。 根据其价值和可行性确定的改进的优先级。 确定实施更改的路线图和时间线。 请考虑开发资源、依赖项和对应用程序的潜在影响等因素。

  • 盈利:通过盈利将应用程序功能转化为创收的机会。 有时,功能为用户提供价值,但不值得当前投资。 探索将这些功能盈利的机会,例如将其作为单独的付费加载项提供,或将其授权给其他公司。

优化工作负载资源

优化工作负载资源涉及删除任何未使用的资源,以及优化工作负载所需的任何未充分利用的资源。 这种工作可以节省资金、避免浪费,并确保工作负载仅使用增值的资源。

删除未使用的工作负载资源。 未使用的资源是工作负载或操作进程不使用的部署服务。 这些资源可能长期空闲、孤立或被遗忘。 它们不提供投资回报,应将其删除。 未使用资源的常见原因包括:

  • 警报。
  • 演示版本。
  • 环境解除授权。
  • 功能停用。
  • IP 地址。
  • 网络防火墙。
  • 概念证明。
  • 快照。
  • 存储帐户。
  • 临时测试环境。
  • 临时会审环境。

若要删除工作负荷中未使用的资源,请考虑以下步骤:

  1. 清点:跨环境对工作负载中的所有资源进行全面清查。

  2. 查找孤立资源:不再需要资源或删除其父资源时,资源可能会成为孤立资源。 例如,可以删除虚拟机,但不会删除其关联的存储帐户。 查看工作负载以识别不需要的资源或孤立资源。

  3. 删除空闲组件:通常存在与已部署资源相关的成本。 即使资源允许你停止或重新分配,你也可以继续为资源付费。 请考虑删除空闲的资源。 如果需要数据,请先备份数据,然后删除资源。 最好重新部署资源并还原数据,而不是让资源保持空闲状态。

优化未充分利用的资源。 未充分利用的资源代表浪费的支出,因为你为未充分利用的资源容量付费。 识别和优化这些资源,以降低成本并更有效地分配资源。 若要评估和优化未充分利用的资源的成本,请执行以下步骤:

  1. 监视资源:使用工具来监视实际使用的 CPU、内存和存储量。 根据此信息选择符合需求的最佳计划。

  2. 分析利用率:查看数据,找出不使用的资源。 请注意一段时间内使用率较低的资源,或者忙碌和慢速时间之间的使用差异很大。

  3. 调整大小:检查分配给未使用的功能的资源是否过多。 如果是这样,请调整其大小以更好地匹配实际需要的内容。

  4. 自动缩放:使用自动缩放根据忙碌程度调整所使用的资源。 请确保设置最大缩放限制,以避免可能成本高昂且不必要的突然高峰。

进行这些调整后,请进行测试,确保一切仍按原样工作。 持续监视资源利用率,并在工作负荷需求随时间变化时调整资源分配。 定期查看和优化资源利用率,以保持成本效益和性能优化。

优化灾难恢复资源。 优化灾难恢复环境是为了确保有效地使用分配给灾难恢复的资源。 暖 (主动-被动) 灾难恢复策略是使用不足的常见来源。 在暖灾难恢复策略中,一个环境接收所有负载,而另一个环境处于空闲状态,直到发生灾难。 若要优化灾难恢复环境,请考虑热 (主动-主动) 、冷 (主动关闭) 或主动重新部署方法如何帮助避免资源利用不足。 下面是这三种灾难恢复方法的概述:

  • 热计划:主要环境和辅助环境同时为流量提供服务。 工作负载可以在这些环境之间平衡负载,并实时响应需求。 在两个活动环境之间分配负载,使你能够使用更便宜的资源,减少单点瓶颈,并充分利用容量。 这可能会导致资源消耗或闲用方面的成本降低。 热方法可能需要在同步和保持两个环境之间的奇偶校验方面投入更多资金。

  • 冷计划:冷灾难恢复模型涉及备用环境,该环境在灾难触发故障转移需求之前一直处于休眠状态。 由于备用环境未主动运行,与计算、存储和网络操作相关的成本将降到最低。 费用涉及存储备份、虚拟机 (VM) 映像或模板。 冷模型中的故障转移可能需要更长的时间,因为需要启动资源,并且可能需要还原数据。 在提交此方法之前,请确保恢复时间与企业恢复时间目标保持一致, (RTO) 。

  • 主动重新部署:此策略使用基础结构即代码。 发生故障转移事件时,使用预定义的模板和脚本部署辅助环境。 在灾难恢复环境中没有预先部署的计算资源,可以节省与维护空闲资源相关的成本。 仅在故障转移方案中的实际部署期间产生成本。 与冷方法一样,此模型可能会引入更长的恢复时间,尤其是在基础结构的复杂性很高的情况下。 应测试和测量恢复时间,以确保它满足恢复时间目标。

优化平台功能

优化平台功能涉及消除或更新平台功能(例如性能层和配置设置)以优化成本。 它有助于使支出与工作负载的要求保持一致,并避免不必要的功能支出。 下面是优化平台功能成本的一些提示:

  • 了解所购买产品的功能:在进行优化之前,需要清楚清点云平台中的服务及其功能。 了解工作负载中平台或服务的特性和功能。 请注意所选的特定层以及每个层提供的功能。 例如,如果不需要自动缩放或高级网络,则较低级别的计划可能就足够了。

  • 禁用未使用的功能:识别和禁用成本不高的平台功能。 你可能具有不需要的存储快照、未使用的磁盘、冗余安全功能或未充分利用的网络功能。

  • 使用正确的版本:较新版本的服务可以以相同的价格提供类似的性能。 例如,具有较新硬件的虚拟机通常可以以更少的成本提供相同的性能。

  • 使用正确的配置:可能需要支付比所需更高的可用性或性能费用。 消除工作负载不需要的可用性或性能保证。

  • 消除不需要的自动化:评估自动化过程,并消除任何可能产生额外费用的未使用的自动化。

  • 消除工具冗余:删除不需要的工具或提供相同功能的工具。 评估用于生成软件、编写代码、安全性和监视的工具中的潜在冗余。 例如,如果使用 GitHub Actions 来生成软件,则无需购买另一个生成软件的工具。 在购买功能或工具之前,检查工作负载中是否有可以完成该作业的工具。 消除工具冗余,避免浪费资金,并充分利用已有的内容。

阻止未优化组件

防止未优化的组件是主动确保组件在添加或修改之前至关重要并对其进行优化。 摆脱浪费的最佳方式是首先避免浪费。 使用策略,通过解决根本上的低效问题来防止不必要的支出,确保工作负载从一开始就经济高效地运行。 为了帮助防止浪费,请考虑以下策略:

  • 在更改解决方案之前查找根本原因:在解决问题之前,请确保知道实际原因。 例如,如果网站速度缓慢,请不要立即切换到新系统。 首先,弄清楚为什么它很慢。 你可能会发现真正的问题在于其他问题,例如错误的数据库查询。 解决实际问题以节省时间和金钱。

  • 应用元数据:应用元数据以组织和跟踪资源。 可以使用元数据对资源进行分类和分组,以便更轻松地跟踪、删除和避免孤立资源。 跨资源创建一致的元数据策略。 请考虑添加所有者、预期资源持续时间 (例如 sunset-30d) 或其他标记。

  • 记录非标准更改:记录在工作负载的正常控制流程之外对基础结构或配置所做的任何更改,以降低意外成本。 例如,可以增加资源的缩放 (增加或缩小) 容量以满足短期需求或会审问题,但忘记将其缩减。 创建非标准更改列表,并在不再需要更改时将其用作还原的提醒。

  • 保持简单:简化基础结构并最大程度地降低复杂性,以帮助降低成本。 仅使用满足要求的必要资源和服务。

Azure 便利化

优化应用程序功能:可以使用 Azure MonitorApplication Insights 来监视应用程序的使用情况,并确定使用或不使用的区域。 根据收集的见解,可以做出明智的决定来删除或优化未使用或未充分利用的功能。

优化工作负载资源和平台功能:Azure 顾问提供 成本建议 ,提供用于识别和消除未使用资源的建议。 可以使用顾问来分析资源使用情况,并接收有关要删除或缩减的资源的建议。 Azure 顾问中的 “成本优化”工作簿 充当一些最常用的工具的集中中心,可帮助你提高利用率和效率目标。 它提供一系列建议,包括 Azure 顾问成本建议。 它还有助于识别空闲资源并管理未正确解除分配的虚拟机。

Azure Monitor 支持 工作簿。 使用 Azure Monitor 工作簿,可以查找或创建一个工作簿,用于查找和报告已定义范围内的孤立资源。 可以使用 Azure 自动化 在处于非活动状态期间关闭虚拟机。 资源关闭通过最大程度地减少闲置资源的使用来帮助降低成本。

可以使用 Azure 中的 自动缩放功能 根据预定义的条件自动缩放应用程序,因此不必过度预配容量。 自动缩放有助于高效且经济高效地分配资源。

从设计的角度来看, Azure 负载均衡器 可以跨可用性区域和区域分配负载。 这些负载均衡器可以帮助消除空闲资源,例如,在灾难恢复方法中。

成本优化清单

请参阅完整的一组建议。