以成本效益思維進行設計

已完成
只花在您需要達到投資的最高回報上。

每個架構決策都有直接或間接的財務影響。 瞭解與建置與購買選項、技術選擇、計費模型和授權、訓練、作業等相關聯的成本。

鑒於一組需求,在成本方面優化和做出取捨決策,仍能有效解決工作負載的交叉考慮。

範例案例

Contoso Manufacturing (CM) 會執行自定義建置的倉儲管理系統 (WMS),以處理南美洲的四個倉儲,他們已決定是時候更新解決方案,並將其移至雲端。 他們正在考慮使用新式雲端工具進行目前解決方案的隨即轉移或綠地建置。 CM 的高級領導想要控制成本,並已要求工作負載小組的負責人如何以維護成本效益為目標來處理移轉。

WMS 解決方案是在 IIS 上執行的 .NET 應用程式,並針對其資料庫使用 SQL Server。

測量工作負載設計的總成本

將投資報酬率(ROI)的影響納入考慮,測量技術和自動化選擇所產生的總成本。 設計必須適用於所有功能和非功能性需求的可接受界限內。 設計也必須具有彈性,才能容納預測的演進。 考慮取得、訓練和變更管理的成本。

實作平衡的方法,將 ROI 納入考慮可防止過度工程,這可能會增加成本。

Contoso 的挑戰

  • 工作負載工程小組很高興能將此工作負載放入雲端,並加入其他已經執行雲端原生開發的 CM 小組。
  • 他們知道應用程式中的技術債務,並期望透過重寫大量的應用程式程式代碼並移至許多元件的新雲端原生解決方案來解決。
  • 工程小組希望利用這個機會,將系統完全重新設計為微服務,並將它裝載在 AKS 上,這是團隊的新但令人興奮的技術。

套用方法和結果

  • 雖然工作負載小組清楚想要在雲端移轉期間進行大規模的重構,但他們意識到工作負載需要維持其 ROI。 維護工作負載的 ROI 可能會讓小組使用不需要大量新工程小組訓練的解決方案,而且在移轉過程中無法對工作負載進行大型重寫。
  • 工作負載小組會針對系統設計採取務實的方法,確保其保持符合成本效益,並在預期的參數內運作,而且不會過度設計。 為了確保 ROI 得以維持,並有效率地執行移轉,他們決定最好的方法是在雲端中使用類似解決方案,例如 Azure App 服務。
  • 在移轉期間,他們會選擇性地解決一些技術債務,以便在平臺位於 Azure 上之後進一步演進,並將 ROI 視為選取程式的一部分。

精簡設計

將可降低整體成本的服務優先順序、不需要額外投資,或對功能產生重大影響,以微調設計。 優先順序應該考慮帶來高ROI的商務模型和技術選擇。

您將能夠探索較便宜的選項,這些選項可能會啟用資源彈性或動態調整,也可以證明使用現有投資的合理性。 優先順序參數可能會考慮關鍵工作負載、運行時間和作業所需的成本,以及其他可能有助於小組更有效率的成本。

Contoso 的挑戰

  • 現有的工作負載裝載在超交集式 (HCI) 設備上,而小組的成本中心會收取計算、網路和記憶體成本的費用。
  • 工作負載已在 Windows 虛擬機上部署生產前和生產環境。
  • 具有自我裝載執行器的 GitHub Actions 可用來執行 GitHub Actions 作業。

套用方法和結果

  • 在評估數個雲端原生選項之後,小組會決定將 Web 元件移至 Azure App 服務 會提供 Windows IIS 應用程式相容性,而不需要重大的訓練。
  • 小組決定繼續使用 GitHub Actions 搭配自我裝載執行器,但是他們會移轉至虛擬機擴展集,且能夠在不使用節點時調整為零節點。

設計您的架構以支援成本護欄

透過平臺解決方案、原則、基礎結構和應用程式設計模式或自動化來實作成本防護,以協助確保您的雲端環境成本會保留在預算內。

透過治理原則或內建應用程式設計模式強制執行,可以防止附帶或未經核准的費用。

Contoso 的挑戰

  • 現有的系統沒有成本護欄,但很少改變,所以建立這種護欄的動機很少。
  • HCI 環境的擁有者已設定套用至此工作負載的資源限制,有效地阻止工作負載耗用過多的計算和記憶體資源。
  • 小組擔心移至雲端會造成產生非預期成本的風險,且不確定如何將風險降到最低。

套用方法和結果

  • 小組會自行教育 Microsoft 成本管理解決方案。
  • 小組計劃為 Azure App 服務 方案設定規模限制。
  • 小組計劃為某些較高價格的虛擬機 SKU 設定拒絕原則,以禁止部署這些 SKU。
  • 小組計劃實作自動化,以協助控制記憶體成本。 根據上次存取日期等準則,特定數據類型會自動從經常性存取記憶體移至冷記憶體或封存記憶體。 HCI 環境中無法進行這種類型的自動化。

檢定您的知識

1.

其中哪一項是測量工作負載總成本時應考慮的因素之一?

2.

微調成本的工作負載設計時,您應該優先處理哪一項?

3.

如果工作負載小組想要確保工作負載的 Azure 成本受到控制,他們應該執行哪一項?