在设计中采用成本效益思维模式

已完成
只将钱花在实现最高投资回报所需的地方。

每个体系结构决策都有直接和间接的财务影响。 了解与构建和购买、技术选择、计费模型和许可、培训、运营等相关的成本。

在一系列要求下,在成本方面进行优化并做出权衡决策,同时仍然有效地解决工作负载的跨领域问题。

示例方案

Contoso 制造 (CM) 运行着一个自定义构建的仓库管理系统 (WMS),用于处理其在南美洲的四个仓库,他们已经决定是时候更新解决方案并将其迁移到云了。 他们正在考虑使用新式云工具对当前解决方案进行直接迁移或全新构建。 CM 的高级领导层想要控制成本,并询问了工作负载团队的领导他们将如何在保持成本效益的目标下实现迁移。

WMS 解决方案是在 IIS 上运行的 .NET 应用程序,它将 SQL Server 用于其数据库。

衡量工作负载设计的总成本

衡量技术和自动化选择产生的总成本,同时考虑对投资回报率 (ROI) 的影响。 设计必须在所有功能和非功能要求可接受的边界内奏效。 设计还必须灵活,以适应预测的发展。 考虑购置、培训和变更管理的成本。

实施平衡的方法并将 ROI 考虑在内时,可防止过度工程,以及它可能导致的成本增加。

Contoso 的挑战

  • 工作负载工程团队很高兴将此工作负载迁到云中,加入其他已经在进行云原生开发的 CM 团队。
  • 他们了解该应用程序中的技术债务,并期望通过重写大量应用程序代码并为许多组件迁移到新的云原生解决方案来处理该问题。
  • 工程团队希望利用这个机会将系统完全重新设计为微服务,并将其托管在 AKS 上,这对团队来说是新技术,但也是令人兴奋的技术。

应用方法和结果

  • 虽然工作负载团队明确希望在云迁移期间进行大规模重构,但他们意识到工作负载需要保持其 ROI。 保持工作负载的 ROI 可能会使团队偏向使用不需要大量新工程团队培训的解决方案,并且无法在迁移过程中对工作负载进行大规模重写。
  • 工作负载团队采用务实的方法来设计系统,确保它保持经济高效,并在预期的参数内工作,避免过度的工程设计。 为了确保维持 ROI 并高效地执行迁移,他们决定最佳方法是在云中使用对应的解决方案,例如 Azure 应用服务。
  • 在迁移期间,他们将选择性地解决一些技术债务,以便在平台登陆 Azure 后进一步改进它,并将 ROI 视为选择过程的一部分。

优化设计

微调设计,优先考虑可降低整体成本、不需要额外投资或对功能没有重大影响的服务。 优先级别应考虑带来高 ROI 的业务模型和技术选择。

你将能够探索更便宜的选项,实现资源灵活性或动态缩放,或者可证明现有投资的合理性。 优先级参数可能会考虑关键工作负载、运行时和操作所需的成本,以及其他可能帮助团队更高效工作的成本。

Contoso 的挑战

  • 现有工作负载托管在超融合 (HCI) 设备上,团队的成本中心针对计算、网络和存储成本进行费用追溯。
  • 工作负载已在 Windows 虚拟机上部署了预生产和生产环境。
  • 具有自承载运行器的 GitHub Actions 用于执行 GitHub Actions 作业。

应用方法和结果

  • 在评估多个云原生选项后,团队决定将 Web 组件移动到 Azure 应用服务可提供 Windows IIS 应用程序兼容性,而无需重大更改,并且不需要大量的培训。
  • 团队决定继续将 GitHub Actions 与自承载运行器一起使用,但他们将迁移到虚拟机规模集,以便能够在不使用节点时缩放到零节点。

设计体系结构以支持成本防护措施

借助平台解决方案、策略、基础结构和应用程序设计模式或自动化,实现成本防护措施,以帮助确保云环境成本保持在预算范围内。

通过治理策略或内置应用程序设计模式进行强制实施可能会防止意外或未经批准的费用。

Contoso 的挑战

  • 现有的系统没有成本防护措施,但它很少更改,所以建立这种防护措施的动机很小。
  • HCI 环境的所有者设置了适用于此工作负载的资源限制,从而有效地阻止工作负载消耗过多的计算和存储资源。
  • 团队担心迁移到云将带来意外成本的风险,并不确定如何最大程度地降低该风险。

应用方法和结果

  • 该团队自行了解了 Microsoft 成本管理解决方案。
  • 该团队计划为 Azure 应用服务计划设置规模限制。
  • 该团队计划为某些价格较高的虚拟机 SKU 设置拒绝策略,以禁止部署这些 SKU。
  • 该团队计划实施自动化来帮助控制存储成本。 某些数据类型将根据上次访问时间等条件自动从热存储移动到寒存储或存档存储。 HCI 环境中无法实现这种类型的自动化。

知识检查

1.

以下哪个是衡量工作负载总成本时应考虑的因素之一?

2.

针对成本微调工作负载设计时,应优先考虑哪一项?

3.

如果工作负载团队希望确保工作负载的 Azure 成本得到控制,则他们应做以下哪一项?