Share via


優化環境成本的建議

適用於此 Azure Well-Architected Framework 成本優化檢查清單建議:

CO:08 將環境成本優化。 調整支出,以排定生產前、生產、作業和災害復原環境的優先順序。 針對每個環境,請考慮必要的可用性、授權、作業時數和條件和安全性。 非生產環境應該模擬生產環境。 在非生產環境中實作策略性取捨。

本指南說明成本優化工作負載環境的建議。 每個環境都應該針對其特定用途量身打造,並針對成本效益進行優化。 請務必在最重要的位置進行策略性取捨和配置資源,而不會危害重要元件。 藉由以不同方式處理環境並據以優化環境,您可以達到成本優化和符合所需目標之間的平衡。

定義

詞彙 定義
復原點目標 (RPO) 事件期間數據遺失的最大可接受持續時間。
復原時間目標 (RTO) 應用程式在事件發生之後可能無法使用的最大可接受時間。
服務等級協定 (SLA) 服務提供者與服務客戶之間的合約合約。 合約會定義 SLO) (服務等級目標。 不符合合約可能會對服務提供者造成財務後果。

主要設計策略

優化環境成本的目標是找出每個環境價值、成本和風險的正確平衡,包括生產、生產前和災害復原 (DR) 環境。 針對其特定用途自定義每個環境,以節省金錢並有效率地使用資源。 判斷每個環境的優點,例如效率或客戶滿意度。 您想要評估環境的投資報酬率 (ROI) ,即使它不會獲得直接收益也一樣。 在高風險環境上花更多金錢來降低問題,並在低風險環境中節省成本。 目標是在每個環境中平衡價值、成本和風險。

評估環境價值

評估每個環境的價值,意謂著瞭解其對企業更廣泛的影響、評估用戶滿意度,以及判斷其與整體組織目標如何一致。 此評量可協助您做出有關資源分配的明智決策,並將成本與環境優先順序一致。 價值本質超出環境所產生的營收。 在評估環境的價值時,您必須以與工作負載目標產生共音的方式排列費用的優先順序。 若要評估每個環境的價值,請考慮下列因素:

  • 考慮使用者:考慮誰使用每個環境,以及他們所需的環境。 例如,客戶會使用生產環境,其必須可靠且符合特定 SLA,才能達到效能和運行時間。

    另一方面,開發環境主要適用於工作負載小組,例如開發人員和測試人員。 此環境不需要符合面向客戶的 SLA,但應該有必要的工具和資源,小組才能有效地運作。

    當您瞭解每個環境中使用者的獨特需求時,可以更妥善地配置資源,並避免額外的成本。 此避免有助於確保每個環境都能正常運作且符合成本效益。

  • 符合組織價值量值:讓您的成本降低工作與組織的優先順序保持一致,例如收益或員工滿意度。 針對每個環境,請瞭解定義成功的方式,讓您可以將動作保留在目標上。 例如,如果您的組織著重於收益最大化或員工滿意度,請將支出決策與這些計量保持一致。

判斷環境成本

判斷環境成本是瞭解每個工作負載環境中基礎結構、服務、授權和營運費用的成本。 成本管理工具是取得跨環境消費模式和趨勢的深入解析的關鍵。 若要判斷環境成本,請考慮下列策略:

  • 識別成本驅動程序:識別驅動每個環境中成本的重要因素。 這些因素可能包括資源使用率、記憶體使用量、數據保留、數據傳輸和特定服務。

  • 評估風險:評估與消費決策相關聯的風險,以及其對環境和商務營運的潛在影響。 請考慮數據安全性、合規性、效能、稽核和 SLA 需求等因素。

  • 監視及調整您的支出:持續監視和分析消費模式、價值傳遞和風險因素。 定期檢閱並調整您的消費優化策略,因為環境與企業的需求。

優化生產環境

優化生產環境中的成本牽涉到實作策略以減少不必要的費用,並提升營運效率。 專注於區分生產環境部署,並符合使用者的需求。 以下是優化生產環境的建議:

  • 區分區域:對服務較少客戶的區域花費較少。 例如,您應該將更多投資在提供 90% 用戶的區域,而不是提供 10% 用戶的區域。 調整您的部署策略,以符合每個區域和用戶區段的需求。

  • 區分縮放:實作水平和垂直調整策略。 有效率地調整資源以符合需求,而不需過度布建。

  • 區分基礎結構:選擇符合成本效益的硬體和基礎結構解決方案,以符合所需的效能和延展性。 請考慮效能、成本、可靠性和延展性等因素。

  • 調整租使用者模型:根據租使用者模型自定義環境。 例如,在付費租用戶的服務與功能上花費更多費用,而對非付費租用戶花費較少的費用。

優化DR環境

DR環境是指工作負載在干擾性事件之後用來復原的基礎結構和程式。 干擾性事件包括自然災害、網路攻擊和硬體失敗。 平衡維護DR環境的成本,以及干擾性事件的潛在影響。 請考慮下列策略:

  • 評估系統和數據的重要性:評估系統和數據的重要性,以判斷每個元件所需的保護和資源層級。

  • 判斷 RTO 和 RPO:若要協助判斷DR環境的設計,請定義每個系統或應用程式可接受的停機時間和資料遺失限制。

  • 優化冷DR環境:冷DR環境幾乎沒有基礎結構或執行中的服務。 您可以使用基礎結構即程式代碼 (IaC) ,在干擾性事件期間快速部署基礎結構。 您的備份和記憶體原則必須符合環境的 RPO 和 RTO。 請確定數據備份的數量和頻率比所需的還要強固。

    取捨:冷DR環境是符合成本效益的選項,但您可能會有很長的復原時間。

  • 優化經常性DR環境:所有基礎結構和服務都會在經常性DR環境中執行。 數據會即時鏡像主要月臺。 它提供近乎即時的故障轉移,並在發生災害時將數據遺失降至最低。 請考慮主動-主動部署,以將成本優化。

  • 優化暖 DR 環境:暖DR方法是冷DR環境與經常性DR環境之間的中間點。 暖環境部分作用中,且會定期與主要月臺同步。 它提供成本與復原時間之間的平衡。 不過,這是成本最低的優化方法。 請考慮將成本優化冷或經常性的方法。

優化生產階段前環境

優化生產階段前環境牽涉到策略性地管理開發、測試和預備區域內的資源,以密切模擬生產環境,同時降低不必要的成本。 生產階段前環境不需要生產環境的完整規模和可用性。 最大的機會是針對特定測試和開發需求量身打造這些環境,而不需要完全複製生產環境。 降低成本的領域包括使用低成本資源、關閉不必要的服務,以及套用生產前使用量所提供的折扣。 請考慮下列策略來優化生產前環境:

評估生產階段前環境

預先生產環境配置不足或不當可能會導致過度布建或資源布建不足。 若要評估工作負載的生產前環境,請考慮下列指引:

  • 瞭解環境類型:識別您工作負載所需的生產前環境類型,例如開發、測試和預備環境。 每個環境都應該有已定義的角色和特定函式,以確保有效率的資源配置。

  • 符合使用者的需求:設定生產前環境之前,請先了解使用者的需求和期望。 根據功能和規格的需求量身打造,以避免不必要的功能或資源費用。

  • 合併環境:判斷您是否可以結合環境,而不會影響其功能。 結合具有不重疊之函式的環境。 例如,您可以將使用者驗收環境與品質保證環境合併。 函式是相異的,而且當另一個環境正在使用時,通常會閒置一個環境。

    風險:當您結合環境以確保不會造成衝突或危害測試或開發程式時,請小心。

下表提供常見生產前環境的範例。

生產階段前環境範例 Description
開發環境 開發人員會使用此環境來撰寫及測試程序代碼。 它提供沙箱空間,讓開發人員可以實驗、建置及整合程式代碼變更。
品質保證環境 此環境專供質量保證活動使用。 其用於測試,以在部署到生產環境之前識別並修正錯誤或問題。
安全性環境 此環境適用於安全性測試。 這是為了確保應用程式安全免於威脅和弱點。
使用者驗收測試環境 在此環境中,終端使用者和專案關係人會測試應用程式來驗證其功能,並確保其符合需求和期望。
預備環境 此環境與生產環境非常類似。 部署至生產環境之前,其適用於最終測試和驗證。

套用治理

套用治理是關於限制生產前環境中的部署選項,以控制費用並降低風險。 在生產階段前,您可以彈性地量身打造設定和部署資源。 生產前環境越偏離生產環境,潛在風險就越大。 使用治理來限制生產前環境。 請考慮下列指導方針:

  • 限制效能層級:評估生產前環境的效能需求。 選擇平衡成本和效能的效能層級。 服務通常會有不同的效能層級,而其中一些層級更適合用於測試。 某些服務具有提供類似生產功能但未隨附 SLA 的階層。 這些服務可降低成本,但仍提供測試和開發所需的功能。

  • 了解生產前 SKU:某些 SKU 是專為開發環境所設計。 若要將成本優化,請評估服務和階層。 如果工作負載不需要高效能,請選擇低效能層。

  • 控制實例和 CPU 的數目:根據工作負載需求,判斷生產前環境所需的最佳實例和 CPU 資源數目。 避免過度布建資源,以將成本降至最低。

  • 限制保留和記錄:在生產前環境中定義記錄和數據保留原則。 根據合規性需求和成本考慮,考慮保留記錄和數據的必要持續時間。 避免過度記錄和保留,以減少記憶體成本。

  • 使用一致的 CPU 架構:在生產前和生產環境中使用相同的 CPU 架構。 例如,x86 應用程式不會以原生方式在 Azure Resource Manager 上執行,反之亦然。 使用與生產環境相同的 CPU 架構,以確保相容性,並將潛在問題降到最低。

  • 使用相同的操作系統:避免在生產前環境中將操作系統 (從 Windows 變更為 Linux) 或核心。 針對 Windows 建置的軟體通常不會在 Linux 上以原生方式執行,而不需要相容性層,反之亦然。 檔系統和目錄結構不同,這可能會導致應用程式修補問題。 一致的環境有助於降低相容性問題的風險,並確保部署順暢。

  • 限制調整:若要將成本優化,您可以限制自動化以減輕失控自動化。 例如,在開發環境中設定最大縮放限制為 3,並在生產環境中設定為 10。 限制調整以協助控制資源使用量和自動化成本。

  • 關閉不必要的資源:關閉未主動使用的資源時關閉資源,例如在關閉時數和週末。 您可以使用自動化工具或腳本來排程資源的關機和啟動。 有些廠商提供 API,可讓您以程式設計方式停止和啟動資源。 請考慮使用 IaC 來建立暫時環境,以在不再需要時加以移除。

  • 限制可用的區域:請考慮在不同區域中執行生產前環境的潛在優點,其中 Azure 資源可能較便宜。 限制這些區域的生產前部署,以優化這些環境的成本。

平衡與生產環境的相似度

生產前環境通常不需要且昂貴,才能完全鏡像生產環境。 目標是確保每個生產階段前環境都與生產環境適當不同,以避免不必要的成本。 不過,當生產階段前和生產環境不同時,有將 Bug 部署到生產環境的風險。 這些環境愈不同,風險就越高。 量身打造生產前環境以符合您的需求,可協助您管理風險,同時將成本優化。 若要平衡相似度與生產環境,請考慮下列建議:

  • 避免確切的複本:避免讓生產前環境成為實際生產環境的複本。 它可能會不必要地增加成本。 Create 符合成本效益的預先生產環境,但可讓您在部署之前找出並解決潛在風險。

  • 避免極端偏差:避免過度偏離生產環境,例如使用不同的服務。 不同的服務可能無法精確地模擬真實世界的風險。 判斷風險閾值,且不要只超過閾值以節省成本。

  • 縮短運行時間:請考慮縮短生產階段中進程的運行時間,以節省成本。 請謹慎處理可能發生的新弱點,例如未偵測到的記憶體流失。

  • 檢閱授權:檢閱安全性工具的授權方案。 如果生產環境與生產階段前設定之間的節點數目明顯不同,請重新評估您的需求以微調成本,而不會危害安全性。

優化開發環境

開發環境是專為開發、測試和偵錯而設計。 它們具有較短的生命週期,而且通常會視需要建立,並短暫存在。 相較於其他生產階段和生產環境,開發環境通常具有較低的可靠性、容量和安全性需求。 它們可能具有較少的功能,而且可以接受較低的資源使用率。 若要優化您的開發環境:

  • 評估工具:定期評估您目前工具設定的成本效益,包括集成開發環境 (IDE) 、授權和相關工具。 請考慮提供類似功能的免費或開放原始碼替代方案,而不會危害品質。 隨著開發環境發展,持續重新評估這些工具的需求和效率。

  • 考慮硬體:評估您目前硬體設定的成本和效能。 投資更佳且更有效率的硬體可以提升生產力並降低長期成本。 請考慮升級現有系統以延長其生命週期並改善效能,而不是經常更換硬體。

  • 優化環境數目:分析個別開發環境與共用環境的優點和缺點。 個別環境可以模擬生產設定、防止開發人員之間的干擾,並提供自定義的設定。 不過,當開發人員數目增加時,調整成本會變得更高。 共用環境可以節省成本,但如果問題同時影響整個開發小組,則可能會發生可靠性考慮。 根據成本、風險降低、效率及開發人員滿意度尋找正確的平衡。

  • 定期清除:定期清除並優化您的開發環境,以避免孤立資源、未使用的數據和概念證明實驗累積。 實作清除程式或自動化工具,以識別和移除未使用的資源。 只保留基本和作用中的元件。 定期清除有助於降低記憶體成本,並確保有效率的資源使用率。

  • 實作取樣調整:不要將所有元件調整為其最大容量,而是考慮您選擇性地調整重要元件的取樣方法。 這種方法可以符合成本效益,同時將風險降至最低。 評估不調整特定元素的風險對權益比率,並考慮對環境的潛在影響。

  • 優化數據管理:開發環境對於數據保留和備份頻率的需求可能很低。

考慮端點模擬

您可以使用端點模擬或模擬端點,將生產前環境中的成本優化,特別是 GPU 等昂貴資源。 識別生產階段前環境中成本最高或耗用大量資源的元件或服務。 使用模擬端點來模擬這些昂貴元件的回應,而不需要叫用這些元件。 若要模擬 API 回應,您可以使用 WireMock、Postman 的模擬伺服器或自定義實作等工具。

模擬和模擬端點有助於節省成本,但您必須確定它們代表生產環境的程度足以進行測試。 在精確度與成本之間取得平衡,以協助避免生產環境中的未來問題。 例如,如果 GPU 是主要成本因素,請考慮在生產階段中不需要實際 GPU 處理能力的工作 GPU 模擬。 模擬可能不會完全代表實際 GPU 的效能或奇數,因此當實際 GPU 行為對生產前測試而言不重要時,請使用它。

Azure 指導

判斷及優化環境成本:Microsoft 成本管理 是一套工具,可協助組織監視、配置及優化其 Microsoft Cloud 工作負載的成本。 成本管理可供有權存取計費或資源管理範圍的任何人使用。

Azure Advisor 是一種工具,可提供成本優化建議,包括識別需要優化之虛擬機使用量的區域。 使用 Advisor 協助您做出明智的決策,並將 Azure 環境中的成本優化。 Azure 提供成本管理工具和功能,可協助排定費用的優先順序。 您可以使用這些工具來追蹤和分析環境的成本、設定預算,以及接收成本優化建議。

套用控管:透過 Azure 原則,您可以定義原則規則來限制資源類型、SKU 和實例,以強制執行您可以在 Azure 環境中部署的資源類型限制。 您可以維持對已布建資源的控制權,並確保符合貴組織的原則和最佳做法。

若要使用 Azure 原則 來限制資源類型,您可以定義指定允許的資源類型的原則規則。 將這些規則套用至相關的 Azure 訂用帳戶或資源群組。 Azure 原則 可防止使用者部署不允許的資源。

使用 Azure Resource Manager 以宣告方式定義和管理資源。 您可以根據每個環境的特定需求來微調配置給每個環境的資源。 使用範本並將資源組態參數化,以將成本優化。

優化生產前環境: Azure 提供開發/測試定價選項,可為非生產環境提供折扣費率。 您可以將更多資源和預算配置給重要的生產環境,以將非生產環境中的成本優化。 您也可以使用 Azure 授權供應專案,Azure Hybrid Benefit。

您可以使用 Azure API 管理 進行 API 模擬。 API 管理 做為後端服務的外觀,可讓 API 提供者抽象化 API 實作並演進後端架構,而不會影響 API 取用者。

成本優化檢查清單

請參閱一組完整的建議。