優化環境成本的建議

適用於此 Azure 架構完善的架構成本優化檢查清單建議:

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

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

定義

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

關鍵設計策略

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

評估環境值

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

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

    另一方面,開發環境主要是針對工作負載小組,例如開發人員和測試人員。 此環境不需要符合面向客戶的 SLA,但小組應該具備有效運作所需的工具和資源。

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

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

判斷環境成本

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

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

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

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

優化生產環境

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

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

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

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

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

優化災害復原環境

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

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

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

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

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

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

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

優化生產前環境

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

評估生產前環境

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

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

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

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

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

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

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

套用治理

套用治理是限制生產前環境中的部署選項,以控制費用並降低風險。 在生產階段前,您可以彈性地量身打造組態並部署資源。 生產前環境越偏離生產環境,風險就越大。 使用控管來限制生產前環境。 請參考下列指引:

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

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

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

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

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

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

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

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

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

平衡與生產環境的相似性

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

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

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

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

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

優化開發環境

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

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

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

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

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

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

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

考慮端點模擬

您可以使用端點模擬或模擬端點,將生產前環境中的成本優化,特別是針對 GPU 等昂貴資源。 識別生產前環境中的元件或服務,這些元件或服務最耗費資源或資源。 使用模擬端點來模擬這些昂貴元件的回應,而不叫用它們。 若要模擬 API 回應,您可以使用商業或 開放原始碼 API 模擬伺服器,或自定義實作。

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

Azure 便利化

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

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

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

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

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

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

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

成本優化檢查清單

請參閱一組完整的建議。