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

优化组件成本的建议

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

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 负载均衡器 可以跨可用性区域和区域分配负载。 这些负载均衡器可帮助消除空闲资源,例如,在灾难恢复方法中。

成本优化清单

请参阅完整的建议集。