適用於此 Azure Well-Architected Framework 成本優化檢查清單建議:
| CO:07 | 優化元件成本。 定期移除或最佳化舊版、不需要和未充分利用的工作負載元件,包括應用程式功能、平台功能和資源。 |
|---|
本指南說明最佳化工作負載元件成本的建議。 最佳化元件成本是指評估和改善工作負載中個別元素的成本效益的程式。 它強調持續審查和潛在刪除或改進過時、不必要或很少使用的組件,例如應用程式功能、平台功能和資源。 它還涵蓋災難恢復環境的成本優化以及如何避免引入未優化的組件。 本文中的指引適用於不在設計階段的現有工作負載。 忽視定期的組件優化可能會導致成本膨脹、資源浪費和低效的工作負載,從而浪費時間和金錢。
定義
| 術語 | Definition |
|---|---|
| 應用特點 | 應用軟體中的一種獨特功能,可讓使用者執行特定工作或存取特定資訊。 |
| 平台功能 | 平台提供的特定功能或能力。 它可能因平台而異,但通常,平台功能旨在增強用戶體驗、提高生產力或啟用特定任務或操作。 |
| Resource | 您可以在雲端服務提供者中建立、設定及使用的單一實體或元件。 |
最佳化工作負載元件是關於精簡工作負載的各種元素,包括應用程式功能、平台功能和資源。 目標是確保工作負載有效率且符合成本效益地使用所有元件。 策略包括刪除、修改和避免導致您花費超過所需金額的組件。 元件成本最佳化流程可確保您將資源分配給提供最大價值的功能和元件,避免不必要的費用。
優化應用程式功能
優化應用程式功能是根據價值刪除、再投資應用程式功能或從中獲利的過程。 它可確保您將資源配置給為客戶提供最大價值的應用程式功能。 最佳化應用程式功能有助於避免投資導致技術債務或無法產生足夠投資回報的功能。
評估應用程式功能價值
若要判斷功能的價值,請考慮其對整體應用程式的影響,以及它為客戶提供的價值。 需要考慮的一些因素包括:
客戶需求:評估該功能滿足客戶需求和期望的程度。 客戶回饋、調查和使用數據對於了解感知價值非常有價值。
業務目標:評估該功能如何與業務的戰略目標保持一致。 考慮功能如何支援創收、客戶滿意度或競爭優勢。
對使用者體驗的影響:確定該功能對增強使用者體驗和提高可用性或生產力的影響。
差異化:評估與市場上其他應用程式相比,該功能是否提供獨特的賣點或競爭優勢。
評估應用程式功能成本
您必須了解與每個功能相關的成本,以便有效地分配和優化資源。 評估成本時要考慮各個方面,例如:
開發工作:評估開發和維護功能或周圍功能所需的時間、資源和專業知識。 未充分利用的功能通常會成為技術債務的主要來源。
維護和支援:考慮與維護和支援該功能相關的持續成本,包括錯誤修復、安全性更新和故障排除。
基礎設施和資源利用率:評估該功能對基礎設施需求的影響,包括伺服器資源、儲存和頻寬。
整合複雜性:評估將該功能與其他系統或第三方服務整合的複雜性和成本。
效能考量:評估功能對應用程式效能的影響,包括可擴展性、回應時間和資源使用情況。
與利害關係人一起審查應用程式功能價值
透過讓產品經理、軟體開發人員和業務分析師等關鍵人員參與,與利害關係人一起審查應用程式功能的價值,以評估特定功能對業務目標的價值。 這種合作對於成本優化至關重要,因為它提供了對維護工作的見解,並識別了可能阻礙生產力或影響開發新的、有價值的功能的功能。 您的開發團隊可以為您提供有關維護某些功能需要多少工作的重要資訊。 鼓勵他們談論可能比其價值更麻煩的功能,特別是當這些功能分散團隊創建新功能的注意力時。
決定功能的未來
根據您的分析和評估,確定應用程式功能的未來。 移除、再投資或營利任何不提供投資報酬率的應用程式功能:
移除:根據資料,考量應用程式功能的計畫生命週期結束。 移除功能的原因可能包括客戶需求低、維護成本高、複雜性或不值得努力修復的冗餘。 建立移除計劃,這可能涉及重構程式碼、更新相依性或重新組織 UI。
風險:您可能會無意中移除對特定使用者或案例至關重要的功能,並可能對應用程式中的效能、作業和安全性產生負面影響。
再投資:某些應用程式功能在當前狀態下可能無法增加足夠的價值,但如果您再投資它們,可能會增加價值。 再投資意味著重新設計或推廣應用程式功能。 根據已確定的改進的價值和可行性確定其優先順序。 確定實施變更的路線圖和時間表。 考慮開發資源、依賴關係以及對應用程式的潛在影響等因素。
貨幣化: 通過貨幣化將應用程序功能轉化為創收機會。 有時功能會為使用者提供價值,但不值得目前的投資。 探索將這些功能貨幣化的機會,例如將它們作為單獨的付費附加元件提供或將其授權給其他公司。
最佳化工作負載資源
最佳化工作量資源涉及移除任何未使用的資源,以及最佳化工作量所需的任何未充分利用的資源。 這項工作可以節省資金、避免浪費,並確保工作負載僅使用增加價值的資源。
移除未使用的工作負載資源。 未使用的資源是您的工作負載或作業程序不使用的已部署服務。 這些資源可能長期閒置、孤立或遺忘。 它們不提供投資回報,您應該刪除它們。 未使用資源的常見原因包括:
- 警報。
- 示範組建。
- 環境退役。
- 功能解除委任。
- IP 位址。
- 網路防火牆。
- 概念驗證。
- 快照。
- 儲存體帳戶。
- 臨時測試環境。
- 臨時分級環境。
若要移除工作負載中未使用的資源,請考慮下列步驟:
盤點: 對跨環境的工作負載內的所有資源進行徹底盤點。
尋找孤立資源:當資源不再需要或移除其父資源時,資源可能會變成孤立資源。 例如,您可能會移除虛擬機器,但不會移除其相關聯的儲存體帳戶。 檢閱您的工作負載,以識別不需要或孤立的資源。
移除閒置元件:通常會有與已部署資源相關聯的成本。 即使資源允許您停止或重新配置,您也可能會繼續支付資源費用。 請考慮移除閒置資源。 如果您需要資料,請先備份資料,然後移除資源。 您最好重新部署資源並還原資料,而不是讓資源保持閒置狀態。
優化未充分利用的資源。 未充分利用的資源代表浪費的支出,因為您為未充分利用的資源容量付費。 識別並優化這些資源,以降低成本並更有效地分配資源。 若要評估和最佳化未充分利用資源的成本,請依照下列步驟操作:
監控資源: 使用工具監控您實際使用的 CPU、記憶體和儲存量。 根據這些資訊選擇符合您需求的最佳計劃。
分析使用率: 查看數據以找出您不使用的資源。 請注意隨時間推移使用量較低或忙碌時段和慢時段使用量差異較大的資源。
調整大小:檢查是否有太多資源配置給未使用的功能。 如果是這樣,請調整它們的大小以更好地匹配您的實際需求。
自動擴展:使用自動擴展,根據您的忙碌程度調整您使用的資源。 請務必設定最大縮放限制,以避免可能代價高昂且不必要的突然尖峰。
進行這些調整後,請進行測試以確保一切仍然正常運作。 持續監控資源使用率,並隨著工作負載需求隨時間變化而調整資源分配。 定期審查和優化資源利用率,以保持成本效率和效能優化。
最佳化災難復原資源。 最佳化災難復原環境是確保有效率地使用配置給災難復原的資源。 暖 (主動-被動) 災難復原策略是使用率不足的常見來源。 在暖災害復原策略中,一個環境會接收所有負載,而另一個環境會閒置,直到發生災難案例為止。 若要最佳化災難復原環境,請考慮熱 (主動-主動)、冷 (主動-關閉) 或主動-重新部署方法如何協助避免未充分利用的資源。 以下是這三種災難復原方法的概觀:
熱計劃:主要和次要環境同時提供流量。 您的工作負載可以在這些環境之間平衡負載,並即時回應需求。 在兩個作用中環境之間分配負載,可讓您使用更便宜的資源、減少單點瓶頸,並充分利用容量。 它可以降低資源浪費或閒置的成本。 熱方法可能需要更多投資來同步處理,並維護兩個環境之間的同位。
冷計劃:冷災難復原模型涉及待命環境,該環境會保持休眠狀態,直到災難觸發容錯移轉的需求為止。 由於待命環境未主動執行,因此與計算、儲存和網路作業相關的成本會降到最低。 您的費用圍繞著儲存備份、虛擬機器 (VM) 映像或範本。 冷模型中的容錯移轉可能需要更長的時間,因為需要啟動資源,而且可能需要還原資料。 在採用此方法之前,請確定復原時間符合您企業的復原時間目標 (RTO)。
主動重新部署:此策略使用基礎結構即程式碼。 發生容錯移轉事件時,您可以使用預先定義的範本和指令碼來部署次要環境。 由於災難復原環境中沒有預先部署的運算資源,您可以節省與維護閒置資源相關的成本。 您只會在容錯移轉案例中的實際部署期間產生成本。 與冷方法一樣,此模型可能會引入更長的復原時間,尤其是在基礎設施的複雜性很高的情況下。 您應該測試並測量恢復時間,以確保它符合您的恢復時間目標。
優化平台功能
優化平台功能涉及消除或更新平台功能,例如效能層和配置設置,以優化成本。 它有助於使支出與工作負載的要求保持一致,並避免在不需要的功能上產生不必要的費用。 以下是優化平台功能成本的一些技巧:
了解您購買的東西的功能:在進行優化之前,您需要清楚地清查雲端平台上的服務及其功能。 了解工作負載中平台或服務的特性和功能。 請注意您選擇的特定層以及每個層提供的功能。 例如,如果您不需要自動調整或進階網路,則較低層級的方案可能就足夠了。
禁用未使用的功能: 識別並禁用需要付費的平台功能。 您可能有不需要的儲存快照、未使用的磁碟、備援的安全功能或未充分利用的網路功能。
使用正確的版本:較新版本的服務可以以相同的價格提供類似的效能。 例如,具有較新硬體的虛擬機器通常可以以更少的錢提供相同的效能。
使用正確的設定:您可能會為比您需要更多的可用性或效能付費。 消除工作負載不需要的可用性或效能保證。
消除不必要的自動化: 評估您的自動化流程並消除任何可能產生額外成本的未使用的自動化。
消除工具冗餘:擺脫不需要的工具或提供相同功能的工具。 評估您用於建置軟體、編寫程式碼、安全性和監控的工具的潛在冗餘。 例如,如果您使用 GitHub Actions 來建置軟體,則不需要購買其他建置軟體的工具。 在購買功能或工具之前,請檢查您的工作負載中是否已有可以執行這項工作的工具。 消除工具冗餘以避免浪費金錢並充分利用您現有的東西。
有條不紊地進行最佳化工作
防止未最佳化的元件是在新增或修改之前主動確保元件是必要且最佳化的。 擺脫廢物的最好方法是首先避免它。 使用策略,透過從根本上解決效率低下的問題來防止不必要的開支,確保工作負載從一開始就以經濟高效的方式運行。 為了幫助防止浪費,請考慮以下策略:
在更改解決方案之前找到根本原因:在解決問題之前,請確保您知道導致問題的實際原因。 例如,如果您的網站速度很慢,請不要立即切換到新系統。 首先,弄清楚為什麼它很慢。 您可能會發現真正的問題是其他問題,例如錯誤的資料庫查詢。 解決真正的問題以節省時間和金錢。
應用元數據: 應用元數據來組織和跟踪資源。 您可以使用中繼資料對資源進行分類和分組,從而更輕鬆地追蹤、刪除和避免孤立資源。 跨資源建立一致的中繼資料策略。 請考慮新增擁有者、預期資源持續時間 (例如
sunset-30d) 或其他標籤。記錄非標準變更:記錄在工作負載正常控制程序之外對基礎設施或組態所做的任何變更,以減少非預期的成本。 例如,您可能會增加資源的相應增加 (向上或向下擴展) 容量,以滿足短期需求或分級問題,但忘記將其縮減。 列出非標準變更,並將其用作提醒,以便在不再需要變更時恢復變更。
保持簡單:簡化您的基礎設施並最大限度地減少複雜性,以幫助降低成本。 僅使用符合您需求的必要資源和服務。
Azure 促進
優化應用程式功能:您可以使用 Azure 監視器和Application Insights 來監視應用程式的使用量,並識別已使用或未使用的區域。 根據收集到的見解,您可以做出明智的決策,以刪除或優化未使用或未充分利用的功能。
優化工作負載資源和平臺功能:Azure Advisor 提供 成本建議 ,提供識別和消除未使用資源的建議。 您可以使用 Advisor 來分析您的資源使用量,並接收有關要移除或縮減的資源的建議。 Azure Advisor 中的 成本優化活頁簿 可作為一些最常用工具的集中式中樞,可協助您推動使用率和效率目標。 它提供一系列建議,包括 Azure Advisor 成本建議。 它還有助於識別閒置資源並管理不正確解除配置的虛擬機。
Azure 監視器支援 活頁簿。 使用 Azure 監視器活頁簿,您可以尋找或建立活頁簿,以在定義的範圍內尋找和報告孤立的資源。 您可以使用 Azure 自動化 ,在閒置期間關閉虛擬機器。 資源關閉可藉由將閒置資源的使用降到最低,以協助降低成本。
您可以使用 Azure 中的 自動調整功能 ,根據預先定義的條件自動調整應用程式,因此您不需要過度佈建容量。 自動擴展可協助您有效率且符合成本效益地分配資源。
從設計觀點來看, Azure 負載平衡器 可以在可用性區域和區域之間散發負載。 這些負載平衡器可協助消除閒置資源,例如在災難復原方法中。
相關連結
成本最佳化檢查清單
請參閱完整的建議集。