優化元件成本的建議

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

CO:07 優化元件成本。 定期移除或優化舊版、不需要且使用量過低的工作負載元件,包括應用程式功能、平臺功能和資源。

本指南說明優化工作負載元件成本的建議。 優化元件成本是指評估及改善工作負載內個別元素成本效益的程式。 它強調持續檢閱和可能移除或改進過期、不必要的或很少使用的元件,例如應用程式功能、平臺功能和資源。 它也涵蓋災害復原環境的成本優化,以及如何避免引進未優化元件。 本文中的指引適用于不在設計階段的現有工作負載。 忽略一般元件優化可能會導致耗用時間和金錢的擴大成本、資源浪費和效率不佳的工作負載。

定義

詞彙 定義
應用程式功能 應用程式軟體中的不同功能,可讓使用者執行特定工作或存取特定資訊。
平台功能 平臺提供的特定功能或功能。 視平臺而有所不同,但一般而言,平臺功能的設計目的是要增強使用者體驗、改善生產力,或啟用特定工作或動作。
資源 您可以在雲端服務提供者內建立、設定及利用的單一實體或元件。

主要設計策略

優化工作負載元件是關於調整工作負載的各種元素,包括應用程式功能、平臺功能和資源。 目標是確保工作負載會有效率且符合成本效益地使用所有元件。 策略包括移除、修改和避免造成您花費超過需求的元件。 元件成本優化程式可確保您將資源配置給提供最大價值的功能和元件,以避免不必要的費用。

優化應用程式功能

優化應用程式功能是根據價值移除、重新啟用或獲利應用程式功能的程式。 它可確保您將資源配置給可提供最大價值給客戶的應用程式功能。 優化應用程式功能有助於避免投資參與技術債務或未產生足夠的投資報酬率的功能。

評估應用程式功能值

若要判斷功能的價值,請考慮其對整體應用程式的影響,以及提供給客戶的價值。 需要考慮的一些因素包括:

  • 客戶需求:評估功能符合客戶的需求和期望。 客戶意見反應、問卷和使用方式資料對於瞭解認知的價值可能很重要。

  • 業務目標:評估功能如何與業務的策略目標一致。 請考慮功能如何支援營收產生、客戶滿意度或競爭優勢。

  • 對使用者體驗的影響:判斷功能對於增強使用者體驗及改善可用性或生產力的影響。

  • 區別:評估此功能是否提供獨特的銷售點或競爭優勢,相較于市場中的其他應用程式。

評估應用程式功能成本

請務必瞭解與每項功能相關聯的成本,以有效配置和優化資源。 評估成本時,請考慮各種層面,例如:

  • 開發工作:評估開發和維護功能或周圍功能所需的時間、資源和專業知識。 使用量過低的功能通常成為技術債務的主要來源。

  • 維護和支援:請考慮與維護及支援功能相關聯的持續成本,包括錯誤修正、安全性更新和疑難排解。

  • 基礎結構和資源使用率:評估功能對基礎結構需求的影響,包括伺服器資源、儲存體和頻寬。

  • 整合複雜度:評估將功能與其他系統或協力廠商服務整合的複雜性和成本。

  • 效能考慮:評估功能對應用程式效能的影響,包括延展性、回應時間和資源使用量。

使用專案關係人檢閱應用程式功能價值

藉由吸引重要人員,例如產品經理、軟體發展人員和商務分析師,以評估業務目標上特定功能的價值,以檢閱應用程式功能與專案關係人的價值。 這項共同作業對於成本優化很重要,因為它提供維護工作的深入解析,並識別可能會阻礙生產力或減去開發新重要功能的功能。 您的開發小組可以提供維護特定功能所需工作量的重要資訊。 鼓勵他們討論可能比值得更多問題的功能,特別是當這些功能幹擾小組建立新功能時。

判斷功能的未來

根據您的分析和評估,判斷應用程式功能的未來。 移除、重新投資或獲利任何未提供投資報酬率的應用程式功能:

  • 移除:請考慮根據資料規劃的應用程式功能生命週期結束。 移除功能的原因可能包括低客戶需求、高維護成本、複雜度或備援,這不值得修正。 建立移除計畫,這可能牽涉到重構程式碼、更新相依性或重新組織 UI。

    風險圖示 風險:您可能會不小心移除對特定使用者或案例而言很重要的功能,而且可能會對應用程式中的效能、作業和安全性造成負面影響。

  • 重新擷取:某些應用程式功能可能無法在其目前狀態中新增足夠的值,但如果您重新內嵌它們,可能會增加值。 重新擷取表示重新工作或升級應用程式功能。 根據已識別的改善價值和可行性,排定其優先順序。 決定實作變更的藍圖和時程表。 請考慮開發資源、相依性和應用程式潛在影響等因素。

  • 獲利:透過獲利將應用程式功能轉換成產生營收的機會。 有時候功能可為使用者提供價值,但不值得目前的投資。 探索將這些功能獲利的機會,例如將其作為個別付費附加元件提供,或授權給其他公司。

優化工作負載資源

優化工作負載資源牽涉到移除任何未使用的資源,以及優化工作負載所需的任何使用量過低的資源。 此工作可以節省成本、避免浪費,並確保工作負載只會使用增加價值的資源。

移除未使用的工作負載資源。 未使用的資源會部署工作負載或作業程式不會使用的服務。 這些資源可能是長期閒置、孤立或忘記。 它們不會提供投資報酬率,您應該將其移除。 未使用資源的常見原因包括:

  • 警示。
  • 示範組建。
  • 環境解除委任。
  • 功能解除委任。
  • IP 位址。
  • 網路防火牆。
  • 概念證明。
  • 快照集。
  • 儲存體帳戶。
  • 暫存測試環境。
  • 暫存分級環境。

若要移除工作負載中未使用的資源,請考慮下列步驟:

  1. 取得清查:跨環境對工作負載內的所有資源進行徹底清查。

  2. 尋找孤立的資源:當不再需要資源或移除其父資源時,資源可能會變成孤立。 例如,您可以移除虛擬機器,但不會移除其相關聯的儲存體帳戶。 檢閱您的工作負載,以識別不需要或孤立的資源。

  3. 移除閒置元件:通常會有與已部署資源相關聯的成本。 即使資源可讓您停止或重新配置,您仍可能會繼續支付資源的費用。 請考慮移除閒置資源。 如果您需要資料,請先備份資料,然後移除資源。 比起讓資源保持閒置狀態,您最好重新部署資源並還原資料。

優化使用量過低的資源。 使用量過低的資源代表浪費的支出,因為您支付的資源容量未充分利用。 找出並優化這些資源,以降低成本並更有效率地配置資源。 若要評估並優化使用量過低的資源成本,請遵循下列步驟:

  1. 監視資源:使用工具來監視您實際使用的 CPU、記憶體和儲存體數目。 根據這項資訊,選擇符合您需求的最佳方案。

  2. 分析使用率:查看資料,以找出您不使用的資源。 請注意在一段時間內使用量偏低的資源,或忙碌時間與緩慢時間之間的使用量差異很大。

  3. 正確調整大小:檢查是否有太多資源配置給未使用中的功能。 若是如此,請調整其大小,以更符合您實際的需求。

  4. 自動調整:使用自動調整,根據忙碌程度調整您使用的資源。 請確定您設定了最大調整限制,以避免突然增加的成本和不必要的尖峰。

進行這些調整之後,請測試以確定所有專案仍可正常運作。 持續監視資源使用率,並在工作負載需求隨著時間變更時調整資源配置。 定期檢閱並優化資源使用率,以維持成本效益和效能優化。

優化災害復原資源。 優化災害復原環境是為了確保有效率地使用配置給災害復原的資源。 暖 (主動-被動) 災害復原策略是使用量過低的常見來源。 在暖災害復原策略中,一個環境會在另一個環境閒置時收到所有負載,直到發生災害案例為止。 若要優化災害復原環境,請考慮作用中 (主動-主動) 、冷 (主動關閉) ,或主動-重新部署方法可協助避免使用量過低的資源。 以下是這三種災害復原方法的概觀:

  • 經常性方案:主要和次要環境同時為流量提供服務。 您的工作負載可以平衡這些環境之間的負載,並即時回應需求。 在兩個作用中環境之間分散負載,可讓您使用較便宜的資源、減少單一點瓶頸,以及充分利用容量。 這可能會導致資源使用量或閒置的成本降低。 經常性方法可能需要更多同步處理投資,並維護兩個環境之間的同位。

  • 冷計畫:冷災害復原模型牽涉到待命環境維持休眠狀態,直到災害觸發容錯移轉的需求為止。 由於待命環境並未主動執行,因此計算、儲存體和網路作業的相關成本會最小化。 您的費用與儲存備份、虛擬機器 (VM) 映射或範本有關。 冷模型中的容錯移轉可能需要較長的時間,因為需要啟動資源,而且可能需要還原資料。 在認可此方法之前,請確定復原時間符合您企業復原時間目標 (RTO) 。

  • 主動-重新部署:此策略會使用基礎結構即程式碼。 發生容錯移轉事件時,您可以使用預先定義的範本和腳本來部署次要環境。 在災害復原環境中沒有預先部署的計算資源,您可以節省與維護閒置資源相關聯的成本。 在容錯移轉案例中,您只會在實際部署期間產生成本。 就像冷方法一樣,此模型可能會帶來較長的復原時間,特別是當基礎結構的複雜度很高時。 您應該測試並測量復原時間,以確保其符合您的復原時間目標。

優化平臺功能

優化平臺功能牽涉到消除或更新平臺功能,例如效能層級和組態設定,以將成本優化。 其有助於符合工作負載需求的費用,並避免不必要的功能費用。 以下是優化平臺功能的一些秘訣:

  • 瞭解您所購買專案的功能:在優化之前,您需要清楚清查整個雲端平臺的服務及其功能。 瞭解工作負載中平臺或服務的功能。 請注意您選擇的特定層級,以及每一層提供的功能。 例如,如果您不需要自動調整或進階網路功能,較低層的方案可能就已足夠。

  • 停用未使用的功能:識別和停用成本成本的平臺功能。 您可能有不必要的儲存體快照集、未使用的磁片、備援的安全性功能,或使用量過低的網路功能。

  • 使用正確的版本:較新版本的服務可以提供相同價格的類似效能。 例如,具有較新硬體的虛擬機器通常可提供相同的效能,以節省成本。

  • 使用正確的組態:您可能支付比所需更多的可用性或效能費用。 消除工作負載不需要的可用性或效能保證。

  • 消除不必要的自動化:評估您的自動化程式,並消除任何可能會產生額外成本的未使用自動化。

  • 消除工具備援:移除您不需要的工具,或提供相同函式的工具。 在您用來建置軟體、撰寫程式碼、安全性和監視的工具中評估潛在的備援。 例如,如果您使用GitHub Actions來建置軟體,就不需要購買另一個建置軟體的工具。 購買功能或工具之前,請先檢查工作負載中是否有可執行作業的工具。 消除工具備援,以避免浪費金錢,並充分利用您已經擁有的內容。

防止未優化的元件

防止未優化的元件是主動確保元件是必要元件,並在新增或修改之前優化。 消除浪費的最佳方式是避免第一次使用。 使用策略來避免不必要的費用,方法是解決根目錄效率不佳的問題,確保工作負載從一開始就以符合成本效益的方式執行。 若要協助避免浪費,請考慮下列策略:

  • 在變更解決方案之前找出根本原因:修正問題之前,請確定您知道實際造成問題的原因。 例如,如果您的網站速度很慢,請勿立即切換到新的系統。 首先,找出其速度緩慢的原因。 您可能會發現真正的問題是其他問題,例如不正確的資料庫查詢。 修正真正的問題,以節省時間和金錢。

  • 套用中繼資料:套用中繼資料來組織和追蹤資源。 您可以使用中繼資料來分類和分組資源,讓您更輕鬆地追蹤、刪除及避免孤立的資源。 跨資源建立一致的中繼資料策略。 請考慮新增擁有者、預期的資源持續時間 (,例如) sunset-30d 或其他標籤。

  • 記錄非標準變更:記錄您對基礎結構或設定所做的任何變更,這些變更是在工作負載的正常控制程式中執行,以降低非預期的成本。 例如,您可以增加或放大資源的規模, (相應增加或放大) 容量,以符合短期需求或將問題分級,但忘記將其縮小。 製作非標準變更的清單,並用它做為提醒,以在不再需要變更時還原變更。

  • 保持簡單:簡化您的基礎結構,並將複雜性降至最低,以協助降低成本。 只使用符合您需求的必要資源和服務。

Azure 指導

優化應用程式功能:您可以使用 Azure 監視器Application Insights 來監視應用程式的使用量,並識別未使用的區域。 根據收集的深入解析,您可以做出明智的決策,以移除或優化未使用或使用量過低的功能。

優化工作負載資源和平臺功能:Azure Advisor 提供 成本建議 ,提供建議來識別和排除未使用的資源。 您可以使用 Advisor 來分析資源使用量,並接收有關資源移除或相應減少的建議。 Azure Advisor 中的 成本優化活 頁簿可作為一些最常使用之工具的集中式中樞,可協助您推動使用率和效率目標。 它提供一系列建議,包括 Azure Advisor 成本建議。 它也有助於識別閒置資源,以及管理未正確解除配置的虛擬機器。

Azure 監視器支援 活頁簿。 使用 Azure 監視器活頁簿,您可以尋找或建立活頁簿,以尋找並報告定義範圍中的孤立資源。 您可以使用Azure 自動化在閒置期間關閉虛擬機器。 資源關機可藉由將閒置資源的使用降到最低,來協助降低成本。

您可以使用 Azure 中的 自動調整功能 ,根據預先定義的條件自動調整應用程式,因此您不需要過度布建容量。 自動調整可協助您有效率且符合成本效益地配置資源。

從設計觀點來看, Azure 負載平衡器 可以將負載分散到可用性區域和區域。 例如,在災害復原方法中,這些負載平衡器有助於消除閒置資源。

成本優化檢查清單

請參閱一組完整的建議。