从透明度和问责等基础做法开始,你将逐步构建复杂的功能,包括系统分析、用户驱动见解、生产学习和最终高级效率技术。 这一进展旨在改变你的方法,从对成本惊喜做出反应,到主动塑造符合业务目标的财务结果。
建立团队责任和基础流程,以在整个生命周期内管理工作负荷成本。
成熟度模型的级别 1 可帮助工作负荷团队了解其预算,并设置流程和工具,以在工作负荷生命周期内管理成本。 在设置更成熟的流程(如构建成本模型)之前,应专注于基本成本管理最佳做法,以启动工作负荷,而不会导致预算问题。
以下建议有助于在高效构建工作负荷时明智地管理成本。
关键策略
• 与所有团队成员、经理和决策者共享财务目标、预算详细信息和工作负荷支出
为利益干系人提供有关工作负荷的已分配预算、成本明细和财务目标的详细信息。 分享有关各种费用的详细见解,例如基础结构成本、软件许可证和运营费用。 这种做法虽然不常被想到,但却是重要的。 它有助于在工作负荷团队和领导团队之间建立信任,并表明工作负荷团队正在考虑管理费用。 由于对领导团队的承诺,此协作还有助于激励工作负荷团队继续努力进行成本管理。
使用协作工具鼓励团队成员分享成本优化想法和见解。 为团队提供协作处理其想法和见解的机制。 此方法使团队成员能够跨工作负荷团队的所有学科提供建议。 当你营造一种协作的成本优化文化时,你是在加强这样一种心态:管理工作负荷成本依赖于每个团队成员的共同努力。
为了激励成本优化思维模式,请考虑确认那些表现出财务责任并有助于成本优化的个人和团队。 可以使用性能评估、奖励或其他识别计划。
• 收集来自所有源的详细成本数据,包括已开票和按流量计费的数据
发票数据表示实际计费金额,测量数据根据计费计划进行预测。 若要全面了解工作负荷的成本,请浏览服务提供商提供的所有可用工具和方法。 每月账单可能不会给利益干系人足够的有关支出的详细信息。 汇总数据,以节省时间调查不明确的费用并解释晦涩的术语。 收集使用情况数据后,将这些数据集中到统一系统中。
充分利用具有不同视图筛选器的账单仪表板。 利益干系人和工作负荷团队成员可以使用筛选器轻松查看与其最相关的信息。
• 确定成本驱动因素
若要确定不同的工作负荷组件对总体成本的贡献,请使用采用的工具收集计费数据。 特别注意与流程(如数据传输或事务)相关的成本,以及它们对整体成本的贡献。 在部署之前,在初始资源成本估算期间,通常会忽略这些成本。
还应了解与云资源不直接相关的因素如何影响预算。 这些因素可能包括针对团队成员的培训以及云提供商未管理的软件许可。
✓ 决定是自建还是采购
工作负荷团队需要做出的第一个决定是他们是否应使用现成的解决方案或内部构建解决方案。 通常,Well-Architected 框架有利于保持简单。 使用现成的解决方案遵循这一理念。 支持良好的解决方案可以减轻运营负担,减少开发所需的时间,以便开发人员可以改为专注于应用程序的核心功能。
折衷: 在决定是否构建或购买解决方案时,请考虑成本。 内部构建解决方案通常意味着前期投入开发时间及相关资源。 但是,由于您无需维护支持合同或许可证,因此持续性成本更低。
为了帮助你为团队做出正确的决策,请评估以下几点。
- 所需的控制级别: 决定需要多少控制解决方案的功能。
- 必要的自定义量: 确定适合不断变化的工作负荷的自定义级别。
- 市场预期时间: 了解利益干系人对将工作负载推向市场的期望,以及如何最好地满足该时间线。
- 所需的技术专业知识: 确定需要保留多少专业知识才能生成和作解决方案。
- 预期的运作负担:估计需要运营团队花费多少时间和精力来支持解决方案。
这些评估可帮助你了解每个选项的总成本,以便可以相互权衡。 总成本可能不是唯一的决定因素。 但是,如果选项存在重大差异,请选择低成本选项来加快工作负荷开发速度。
投资于你的团队技能
在团队知识欠缺的领域进行技能提升投资。 强大的云技能可促进良好的长期决策并优化日常工作效率。 考虑云提供商或其他合作伙伴提供的培训或认证。 通过最大程度地减少成本高昂的错误,提高工作负荷团队和其他决策者的工作效率,从而节省时间和金钱。
创建系统的成本分析和报告,以了解支出模式。
初始部署后,通常专注于开发新功能并推动销售,同时忽略成本管理。 在级别 2,支出预计将增加,因此你需要采取结构化的方法。 评估工具和技术的成本、构建基线并确定关键成本驱动因素。
成本管理似乎压倒一切,但早期系统的成本分析是维持财务控制和支持增长所必需的。
关键策略
• 开发基线成本模型
成本模型是工作负荷的总体成本的估计值。 成本因平台服务、数据存储、用户和系统流以及作等因素而细分。 至少应进行系统的成本分析并创建基本 成本模型。 本练习可帮助你就资源分配和优化做出明智的决策。
创建所有 Azure 资源的清单,并指定每个资源的哪些方面会导致更高的成本。
询问有关技术选择及其与成本约束中的可伸缩性和可靠性等目标的一致问题。 对于每个资源,请记下成本,并确定成本是过高还是太低。 在评估潜在增长的同时,根据预期负载进行测量。
请注意流的成本,并区分关键和非关键流。 将关键流(例如电子商务应用程序中的用户体验)优先于非关键流,例如用于审核的后台作业。
计算数据存储和数据访问模式的成本。
• 生成成本报表
生成用于财务可见性并分析成本模式的基本成本报告。 此外,为超出特定支出量时设置成本警报。
建议使用 Microsoft成本管理 来分析、监视和控制服务支出。 如果此选项不可用,请生成一个系统来跟踪使用情况并生成每月报表。
• 设置责任
成本管理责任不可谈判。 在早期阶段,分配一名团队成员每月查看预算和成本报告,并通知团队意外峰值。 责任人应评估工作负荷支出,并相应地指导团队。
最初,问责可能很灵活。 随着初创公司逐步成熟,实施更严格的管控措施。
• 评估优化机会
成本模型应能很好地了解关键成本驱动因素,成本报表应提供证据。 评估这些驱动程序并探索优化机会。 请考虑以下策略:
评估工作负荷使用的每个 Azure 资源的计费模型。 确定是否需要每个计划捆绑的所有功能。 例如,如果需要使用 Azure Front Door 的专用终结点等特定功能,可能需要高级计划。 否则,请考虑选择较低的计划来节省成本。
在基于消耗的计费和基于承诺的计费之间进行选择。 建议从基于消耗的计费开始,以便了解产生的成本。 如果负载是一致的,可以在后续阶段探索 Azure 为一致负载提供的折扣。
评估编码做法。 使用代码检测识别运行代价高昂的进程,发现性能问题,避免不必要的成本。 收集进程持续时间和失败率等指标,以做出数据驱动的决策,以便将来进行优化。
• 决定初始缩放策略
横向扩展是首选,因为它比纵向扩展更具成本效益且更易于实现。 扩展规模涉及停机时间和更高的成本。
考虑性能测试和指标,并根据评估进行横向扩展或纵向扩展。
合并用户反馈和作信号以优化成本优化策略。
在工作负载开发和操作的早期阶段,可以依靠内部开发反馈环来优化工作负载。 在此成熟度级别,必须扩展反馈循环,以包括内部和外部用户以及其他利益干系人。 对工作负荷进行成本优化优化时,还需要考虑与其他支柱(尤其是性能效率和可靠性支柱)的权衡。
成本优化支柱的第 3 级侧重于通过将内部和外部反馈集成到策略中,同时确保满足性能和可靠性目标,为生产准备工作负荷。
关键策略
投资具有影响力的流程并精确微调其他流程
考虑分配给应用程序流的优先级。 在查找简化和降低非关键流成本的方法时,优先处理关键流的开发工作。 非关键流的可靠性要求可能较低。 因此,你可能能够简化其设计。
对于每个流,请消除不必要的元素,选择适当的性能层,调整可变需求的缩放设置,并微调配置,以满足性能和预算需求。 监视流,以识别空闲计算实例、未使用的数据和低网络带宽等低效率。 使用本机日志记录和分析工具来帮助聚合和分析这些指标以查找趋势。
• 使用警报强制实施成本防护措施
创建支出阈值和相关警报,以强制实施成本防护措施。 此方法可确保工作负荷保持在预算范围内。 警报示例包括以下类型:
通过预算警报,可以设置支出阈值、监视成本并接收通知,以帮助控制支出并保持知情状态。
成本异常警报会通知你意外的成本变化。 它们使你能够调查和解决效率低下或异常支出模式。
基于承诺的计划使用情况警报可帮助监视和优化基于承诺的资源的使用情况,方法是在使用量低于所需阈值时通知利益干系人。
• 制定策略以优化资源使用情况
构建非生产环境和生产环境时,您可能不经意间部署了过度预配的资源。 随着时间的推移,你可能会积累一些用于概念验证(PoC)或测试的资源,而这些资源已不再需要。 制定策略来识别未使用和未使用的资源对于保持优化云环境的持续改进至关重要。 请考虑以下建议:
为每个环境使用正确的资源类型和 SKU。 研究云平台提供的基础结构选项,并选择适合每个用例的资源类型和 SKU。 通常,有一些特定的资源类型和 SKU 专用于 PoC 和开发/测试环境。 这些资源类型和 SKU 的成本明显低于标准或高性能资源,但不能将其用于生产工作负荷。
配置并强制实施策略以限制用户的资源类型、SKU、区域和部署权限。 自动化策略有助于管理环境更改。 此过程可降低未经授权的部署的风险。
使用基础结构作为代码对所有环境更改进行标准化。 此方法有助于强制实施环境更改策略,并简化作做法,以减少人为错误的风险。
监视 CPU、内存和存储等使用情况指标,以帮助确定资源是否未充分利用并可以缩减。
检查非生产和生产环境中未使用的资源,以便安全地关闭或删除这些资源。
利用云平台提供的工具来帮助识别资源优化。 例如,Azure 顾问提供 成本优化建议 ,用于识别潜在效率低下的问题,并建议解决这些问题的步骤。
折衷: 调整资源时,请考虑性能和可靠性目标。 如果妥协有助于平衡性能、可靠性和成本,或者预算限制阻碍工作负荷增强,请与利益干系人互动。
• 优化许可证和其他静态成本
部署云资源时,采取战略方法来购买许可证和其他固定月度成本。 这些成本包括服务器和数据库许可、软件许可和预先购买的预留。 请考虑以下节省成本的策略:
研究现有选项,例如 Azure 混合权益,可将现有许可证用于迁移至云端或新部署的系统。 研究组织维护的任何批量许可或企业协议,以利用云资源或软件许可可能节省的成本。
对适用的系统(如 Visual Studio 中的开发/测试许可证)使用非生产许可和开发/测试许可。
在适当的时候预先购买云资源的容量。 预留容量可以显著减少每月使用成本,并帮助维护更一致的支出。
风险: 购买预留时,请确保为用例选择最经济高效的模型。 例如,如果某资源可以在夜间或季节性缩减,那么智能调整其扩展可能更具成本效益。 此外,请通过基线测试和容量规划来提前确定需要购买的正确 SKU。
• 优化自动缩放策略
初始缩放策略可能基于内部开发反馈循环。 这些策略侧重于调整缩放以满足开发需求。 随着工作负荷的发展,整合内部和外部用户反馈,以确保性能保持在可接受的范围内。
调整缩放阈值并引入冷却期,以缓解临时负载峰值。 持续监视和微调系统,以优化成本并满足要求。 定义接下来要使用的比例尺单位。 这些单元取决于工作负荷设计、用例、组件、流和业务需求等因素。
再比如,对于关键任务型工作负载,一个扩展单位可能是整个部署集群。 或者,对于具有非关键流的更简单工作负荷,规模单位可能基于分配给工作负荷的特定 SKU 的计算实例数。 选择允许工作负荷处理负载预期增加且不会浪费容量的规模单位。 更新成本模型以包含预测的缩放需求。
• 优化数据资产
数据是云成本的主要驱动因素。 适当的数据管理有助于保持成本一致,并在预算内保持一致。 使用以下策略来管理数据资产:
对数据进行分类和标记,以应用相应的控件,并确定不同数据类型和存储的相应可靠性和性能级别。
仅捕获基本数据、压缩冷存储的数据,并使用适当的保留策略删除不需要的数据。 删除重复数据以消除冗余数据,并让用户了解高效的数据存储做法。
使用增量备份、启用压缩并将旧备份移动到冷存储来优化备份。
通过应用相应的复制模型(无论是同步还是异步)来优化复制,以便根据要求优化复制。 调整复制频率,以满足特定需求。 持续评估要求和配置。
整合内部和外部反馈,查看存储访问模式并调整数据生命周期管理策略。
使用工具来帮助优化查询。
折衷: 将备份和复制策略与恢复目标进行比较。 请注意,减少复制频率或将较旧的备份卸载到冷存储可能会影响恢复时间,因此在实施这些优化时需小心谨慎。
• 优化代码、软件开发实践和功能开发策略
低效的代码可能会降低系统性能。 这种效率低下可能导致资源使用成本较高。 优化代码可以提高效率,并允许工作负荷处理更多负载,而无需纵向扩展资源。 使用以下策略优化代码:
使用以下方法来优化网络路径:
简化开发做法可以提高生成速度。 此方法可帮助工作负荷团队节省宝贵的时间,并有效地为生产提供增强功能。 使用以下策略简化开发做法:
通过优化配置、删除不必要的步骤和进程、并行化任务、使用缓存和启用增量生成来防止冗余编译,从而加快生成速度。
使用生产模拟优化测试。 生产模拟让开发者可专注测试生产环境中难以重现的场景。
通过定义明确的目标和指标,使用监视工具来跟踪关键绩效指标,并优先考虑可作见解,从而优化开发规划实践。
使用 AI 编码帮助工具(如 GitHub Copilot)减少实际开发时间。
评估你的功能开发策略,以确保优先考虑有价值的功能。 整合内部和外部用户和利益干系人提供的反馈,以确定最能增强用户满意度和推动更高参与度的功能。 在某些情况下,可能会专门设计功能来优化成本。 将这些功能与功能优先级进行比较,以评估其相对值。
通过使用生产中的运营数据来驱动有针对性的成本优化。
成熟度模型的级别 4 阶段假定已部署到生产环境中,并且已长时间运行工作负荷,以收集有关其通常运行方式的有用信息。 在此级别,将这些生产见解应用于你的环境。
生产环境中的更改直接影响工作负荷的其他方面。 例如,节省成本的优化可能会影响一个或多个其他 Well-Architected 框架支柱。 因此,成熟的变更管理做法至关重要。 对工作负荷进行节省成本调整时,请仔细查看和测试更改,并制定回滚计划,以降低性能、安全性和可靠性影响。
关键策略
• 基于生产学习优化成本模型
在生产环境中部署并运行工作负载足够长时间以便了解正常的使用模式后,请重新审视成本模型以规划未来。 成本模型应预测将来的费用、分配资金,并调整偏差。 在方案分析中,成本模型评估不同业务变化的财务影响,并预测客户行为的成本影响。 对于资源优化,它标识未充分利用的云资源、预测缩放成本,并比较云提供商的计费模型,以便你可以选择最经济的选项。
在本练习中,确定运行成本与先前开发的成本模型保持一致程度,并调查差异的原因。 发现意外的成本很常见,并为其分配责任通常是无生产性的。 而是评估驱动意外成本的组件的值。 与利益干系人协作,确定是调整工作负荷设计,以便更好地与成本模型保持一致,还是应修改成本模型。
权衡:请注意,采用新技术时,难以准确预测可变成本。 规划预算时,可能需要查找妥协。 确保利益干系人了解如何确定可变成本估算值以及控制这些成本的策略。
风险: 削减成本措施可能会对可靠性、安全性、性能和卓越运营产生不利影响。 仔细分析每个计划成本削减措施的影响,并确定进行更改是否值得产生潜在影响。
优化数据使用以降低成本
使用生产见解优化数据策略。 具体而言,请查找以下因素的优化机会:
- 在优化存储解决方案时,务必考虑管理的轻松性。 评估当前部署的存储解决方案是否最适合你的用例,以及过渡到其他技术是否会降低作负担或使用成本。 例如,你可能最初在虚拟机上部署了 SQL Server,以便轻松迁移工作负荷,或者因为它是工作负荷团队最熟悉的技术。 迁移到平台即服务(PaaS)解决方案可以显著减少运营开销和降低成本,具体取决于各种因素。
• 增加资源密度
在实际情况下,通过跨工作负荷合并共享服务来优化成本。 例如,可以在单个服务器或 PaaS 实例上托管多个 Web 应用。 多个工作负荷可以共享数据库、网络、安全性和其他服务。 执行成本收益分析,以评估合并资源是否足够有价值值得团队执行。 确定合并候选项后,请仔细规划实施并遵循良好的变更管理做法。 确保利益干系人了解风险。
风险:合并资源会使工作负荷更可靠且安全性更低。 任务关键型工作负荷和业务关键型工作负荷应将可靠性和安全性置于整合之上。
风险:执行不善的整合可能导致未来效率低下。 全面查看合并计划,确保不会在执行迁移之前创建可能影响将来的瓶颈。 迁移后,请特别注意对合并资源的监视,以确保它们按预期方式执行。
• 评估和优化应用程序功能
监视生产中的功能使用模式,以评估其与成本模型的一致性。 确定是否应维护、重构或删除某个功能。 在某些情况下,盈利功能可能是战略业务决策。 这些功能可能无法证明当前投资的合理性,但仍可以为客户提供价值。 以付费加载项或订阅的形式提供这些功能有助于抵消投资成本。
• 通过调节需求将缩放成本降到最低
有助于优化资源缩放成本的策略是调节需求,而不是添加容量。 此方法可能包括将需求卸载到其他资源,或者通过各种策略(例如优先级队列、缓冲、负载均衡和缓存)来减少需求。 考虑这些策略时,请评估它们对 Well-Architected 框架的其他支柱的影响。 通过限制缩放限制和设置预算来控制供应,有助于将费用保持在定义的阈值内。 跟踪使用情况并使用成本管理平台和预算警报来帮助有效监视和控制支出。
折衷: 将任务卸载到其他资源可以降低缩放成本,但它可能会带来操作和维护方面的挑战。 执行全面的成本效益分析,确认所选卸载方法高效可行。 确保节约与可能引入的复杂性之间取得平衡。
• 通过所有权强制实施成本责任
任命直接负责个人(DRI)有助于工作团队更好地掌控其工作成本。 DRI 负责通过监视使用情况、实施成本节约策略并确保支出符合预算和业务目标来管理和优化成本。 DRI 做出与云资源分配相关的决策,确定潜在的成本降低领域,并确保高效使用云服务以避免不必要的费用。
DRI 还充当防御前线,防范高于预期的工作负荷成本。 DRIS 可以帮助确定这些高成本的原因,并主动与工作负荷团队合作,在成为成本紧急情况之前将其减少到预期范围。
通过持续创新将成本优化转化为竞争优势。
在成熟度模型第 5 级,你应该已经具有许多成本优化机制和流程。 级别 5 侧重于通过保持一致且可预测的工作负荷预算、生成高度准确的预测以及应用高级优化来最大化投资回报(ROI)。 请考虑以下建议来实现这些目标。
关键策略
• 在软件开发过程中强制实施支出防护措施
使用发布闸门作为成本控制,通过设定与成本相关的通过标准。 例如,可以设置支出限制,以确保发布不会将意外成本添加到工作负荷预算中。 将这些入口合并到持续集成和持续交付管道中,以确保它们包含在每个部署中。
• 投资知识构建
通过制定技能培训计划,使负责工作负载的团队能够自主承担成本优化的举措。 鼓励团队成员通过参加会议、网络研讨会和其他相关活动,向行业思想领导者学习。 提供内部培训以支持跨技能并创建沙盒环境,以便进行实践学习体验。 将培训与成本优化计划(例如优化缩放策略)相结合。 高技能的团队提高效率,并可以减少对未来项目的第三方依赖。
确保您的成本模型包括特定财务周期的计划培训,例如即将到来的季度。
• 优化高可用性和灾难恢复成本
运行实际灾难恢复(DR)演练或体验实际 DR 事件后,你可能会发现成本优化的机会。 你可能会发现,成本较低的 DR 策略足以满足某些组件,同时仍满足恢复目标。 例如,对于非关键流,可能不需要热备用设计。 在此方案中,请考虑改为实施在恢复过程中部署的方法。
作为持续改进实践的一部分,定期重新访问恢复目标,以确保它们适用于可靠性和成本要求。
• 优化工作负荷设计
在观察工作负载经过一段时间运行后,可能发现无需重构就已达到优化极限。 重构可能非常耗时且成本高昂。 但是,如果重构产生长期成本节省,则重构可能是值得投资的。 它还可以通过采用更有效的技术和管理做法来扩展工作负荷的生命周期。 请考虑以下策略:
合并相似流程。 通过将类似的流合并到共享资源或一组资源,减少冗余或资源使用率不足。 例如,可以在单个计算实例上托管多个 Web 应用,也可以在单个逻辑服务器上托管多个数据库。
拆分不相似流程。 将具有不同计算需求的任务分配至专用资源可以提高效率并降低成本。 此方法通过最大程度地减少干扰并根据每个任务的优先级优化资源分配来提高可伸缩性、容错性和适应性。
重新架构工作负荷以提高效率。 查看整个工作负荷体系结构,寻找提高效率的机会。 优先采用微服务设计,并探索使用无服务器或托管服务,这些服务可以减轻操作负担,并通过自动缩放轻松实现合适的规模调整。 体系结构的最终目标是仅在部署活动需要时才自动部署非生产环境。 然后,可以销毁这些环境,以最大程度地减少不必要的使用成本。
根据使用模式持续监视和调整资源大小,以优化成本。
✓ 演变您的团队运营
研究并采用 Scrum、Kanban 和瀑布等高效开发方法。 定期重新评估团队的效率,以确定所选的方法是否最适合。 确定每个员工的任务成本(称为 单位成本),并寻找降低这些成本的机会。 查看最昂贵的任务并评估其 ROI。
评估是否可以将特定任务卸载到其他团队。 例如,集中式云团队可能会管理其他业务部门或工作负荷的作任务,而集中式安全团队可以处理监视和测试。 卸载任务时,请仔细规划移交,确保所有相关团队之间的清晰沟通,并遵循既定的变更管理流程。