適用於此 Azure Well-Architected Framework 成本優化檢查清單建議:
| CO:09 | 將流程成本優化。 將每個流程的成本與流程優先順序保持一致。 當您排定流程的優先順序時,請考慮每個流程的特性、功能和非功能性需求。 優化流程支出通常需要策略妥協。 |
|---|
本指南說明最佳化工作負載中每個流程成本的建議。 成本最佳化工作負載中的流程涉及策略性地分配和管理資源,以在維持效能的同時將費用降至最低。 這種優化至關重要,因為它確保了投資資源的有效利用,減少了不必要的支出,並提高了基礎設施的整體投資回報。 如果您不對工作負載中的流程進行成本最佳化,則可能會在資源上超支,進而導致營運成本膨脹和獲利能力下降。
定義
| 術語 | Definition |
|---|---|
| 解耦 | 從包含多個流程的資源中移除流程並將其放入個別資源中的策略。 |
| Flow | 在工作負載中,執行特定功能的動作順序。 流程涉及資料的移動,以及工作負載元件之間的處理程序執行。 |
| 系統流程 | 系統內的資訊和流程的流動。 系統會自動遵循此流程,以啟用使用者流程或工作負載功能。 |
| 使用者流程 | 使用者在應用程式或系統內採取的路徑或動作順序。 |
在高優先順序流程上投資更多,而不是在低優先順序流程上投入更多資金。 調整流程優先順序和支出可能涉及分離目前共用相同資源的流程。 它也可能涉及合併具有類似需求但在不同資源上執行的流程。 例如,假設您有一個包含多個流程的 Web 應用程式,例如使用者註冊、登入和資料處理。 這些流程在單一伺服器上執行,即使它們有不同的資源需求。 若要最佳化成本和效能,您可以分隔流程或合併流程:
分離流程。 例如,您可以將使用者註冊流程與其他流程分離,並將它移至專用的低成本伺服器。 此流程很重要,但不會佔用大量資源,因此它是較便宜伺服器的良好候選者。
合併流程。 例如,您可以結合登入和資料處理流程 (兩者都有較高的資源需求),並在高效能伺服器上一起執行。 結合這些流程可讓伺服器有效率地處理這兩個流程的資源密集型需求。 它優化了性能和成本。
在工作負載中,您可能需要考慮不同類型的流程或路徑。 本指南著重於下列流程型別:
系統流程。 優化系統流程涉及簡化系統組件之間的通訊和交互、最大限度地減少瓶頸並確保資源的高效利用。
使用者流程。 優化使用者流程涉及改善使用者體驗、減少摩擦點以及確保應用程式或系統內的流暢導航和互動。
建立流程清查
流程庫存是工作負載內所有動作、資料轉換和系統互動序列的完整清單和描述。 流量盤點是確保投資符合流量優先順序的第一步。 只有在完全了解流程的用途和相依性時,才應該最佳化流程。 以下是建立工作負載流程清查的步驟:
文件流程。 首先記錄並列出工作負載中的所有現有流程,以了解系統的全面狀態。 包括每個動作序列、資料轉換和系統互動。 熟悉每個元件,例如外部服務、資料庫、中介軟體和第三方整合。 此外,追蹤或估計一段時間內的請求量。
視覺化流程。 為了獲得更清晰的視角,請直觀地表達您的發現,可能以流程圖或圖表的形式呈現。 視覺化可協助您查看元件之間的相互依賴性。 請考慮使用 Visio 等工具來協助您進行視覺化。
對流程進行分類。 捆綁類似的流程,考慮其功能 (例如,驗證、資料擷取和交易處理)、業務重要性或它們使用的資源 (CPU、記憶體或頻寬) 等屬性。
排定流程的優先順序
流程優先順序是根據流程對業務成果的影響、對使用者體驗的影響以及它們消耗的資源對流程進行分類的過程。 關鍵流程通常需要更高層級的可用性、更快的復原時間,以及更好的效能,才能符合工作負載目標。 透過排定流程的優先順序,您可以更好地將支出與流程優先順序保持一致。 若要排定流程的優先順序,請考慮下列步驟:
識別流量值。 當您最佳化工作負載流程成本時,您需要識別提供最大價值的流程。 您不想花費超過流量的價值。 不要簡單地削減成本,而是考慮轉移成本以優先考慮更有價值的流量。 例如,您的結帳流程對業務至關重要,但購買歷史記錄卻不是。 您應該為結帳流程分配更多資源和預算。
低優先順序流程對可用性、復原和效能的預期較低。 您可以使用更便宜的組態來降低成本,以減少效能、可用性或業務持續性支出。
考慮流量指標。 如果您難以排定流程的優先順序,請考慮您指派給流程的可用性和復原目標。 重要流程通常具有高可用性需求和服務等級協定 (SLA)。 與較低 RPO 和 RTO 相關聯的流程比具有較高 RPO 和 RTO 的流程更重要。
最佳化獨立流程
有時您的流程已經在不同的資源上執行。 在這些情況下,您可以更輕鬆地評估和優化支出。 評估每個獨立流程中涉及的元件和流程,以確定是否有方法可以優化或簡化它們。 若要最佳化獨立流程,您可以遵循下列步驟:
消除不必要的組件。 移除任何無關的元素,這些元素對流程的核心功能無關,從而降低複雜性和成本。
重新設計流程。 考慮重新設計流程的架構以提高其效率。 例如,您可以變更作業順序、減少延遲或改善資料傳輸速度。
選擇適當的效能層。 不同的流程在處理速度、記憶體或其他資源指標方面可能有不同的需求。 請務必選擇符合每個流程特定需求的資源層。
調整縮放設定。 如果流程遇到可變的需求,請考慮實作自動調整,以根據即時需求動態調整資源,從而優化成本。
微調配置。 微調其他設定,例如網路或資料儲存選項,以更好地符合流程的效能和預算要求。
分離不同的流程
將不同的流程分離到不同的資源上是將具有不同運算需求的不同任務分配給專用資源的過程。 不同流程是具有不同屬性的流程。 這些屬性可以包括運算需求、資料相依性、I/O 作業、延遲敏感度、安全需求和合規性需求。 在個別資源上執行不同類型的流程通常更具成本效益。 這樣做可以為每個流程精確分配資源,從而減少不必要的支出並確保最大效率。
請考慮將目前合併的不同流程分開。 這種分離提高了可擴展性、容錯性和適應性,並簡化了成本。 透過確保每個流程獨立運作,您可以降低干擾風險,並可以根據每個流程的優先順序以更具成本效益的方式分配資源。 例如,假設您將 CRM (使用者流程) 與資料引擎 (資料流程) 共置。 在辦公時間內 CRM 系統的使用者流量可能會減慢資料引擎的速度。 當您分離流程時,資料引擎可以根據工作負載需求獨立擴展每個元件或服務。 這種解耦優化了資源分配並降低了成本。
合併類似的流程
將類似的流程結合到單一資源上是合併具有類似屬性的任務或流程並為其使用共用資源的過程。 此策略消除了冗餘並確保更有效地利用資源,從而顯著節省成本。 類似類型的流程具有類似的屬性。 您可以考慮在分離不同流程時查看的相同屬性:運算需求、資料相依性、I/O 作業、延遲敏感度、安全需求和合規性需求。 以下是一些範例,其中結合類似的工作負載流程以使用相同的資源可以節省大量成本:
Web 伺服器。 不要為每個應用程式專用單獨的 Web 伺服器,而是考慮整合它們,尤其是在它們的流量不穩定的情況下。 共享 Web 伺服器與反向代理配對,可以有效地管理流量並將其路由到多個應用程式。
API 閘道。 您可以使用集中式 API 閘道來簡化請求並將其導向至相關服務,而不是為單獨的微服務或應用程式維護單獨的 API 閘道。 這樣做可以簡化管理並降低成本。
日誌處理。 不要讓多個應用程式或服務各自操作自己的日誌處理實例,而是考慮將它們全部導向到共用日誌處理工具。 這種方法最大限度地減少了作用中執行個體的數量,從而直接節省了成本。
驗證服務。 如果多個應用程式部署自己不同的驗證機制,則會引入備援。 整合單一登入 (SSO) 解決方案或公共身份驗證服務可減少這種重複並優化資源使用,從而降低成本。
風險:不要將巧合與設計混為一談。 兩個看起來相似的流程不一定具有相同的目的。 在合併或變更每個流程之前,您需要了解每個流程的功能和設計。 僅關注流程的外觀來誤解流程可能會導致非預期的後果,並中斷其支援的服務或流程。 如果多個流程具有相同的功能,且其設計或意圖沒有明顯差異,請考慮合併它們。
持續監控流量
流程和工作負載的性質可能會隨著時間而改變,因此您需要檢閱流程支出,以確保成本與優先順序一致。 分析與每個流程相關聯的運算、儲存體和網路使用量,以評估每個流程的資源使用率。 識別任何低效率或資源未充分利用的領域。 此分析可協助您找出成本最佳化的機會。 以下是檢閱流程使用率時要考慮的一些考量:
分析使用模式。 分析流程的使用模式。 某些流程可能在一天或每月的特定時間更活躍,而其他流程可能具有一致的負載。 透過了解這些模式,您可以預測資源需求並調整分配以避免瓶頸和過度佈建。
監控相關指標。 確定可協助您評估每個流程的效率和成本效益的指標。 考慮 CPU 使用率、資料傳輸成本、交易成本和儲存佔用空間。 使用監控工具收集有關資源使用情況和效能的詳細指標。
考慮持續維護。 請考慮維護成本,尤其是當您使用虛擬機器等基礎結構即服務解決方案時。 您需要考慮修補、升級、備份、監控和安全性等活動。
在分析過程中,找出任何效率低下或資源未有效利用的領域。 請考慮閒置運算執行處理、未使用的資料和低網路頻寬。 這些低效率可能預示著成本優化的機會。
Azure 支援服務
排定優先順序、最佳化和監控流程:Application Insights 中的使用者流程工具提供跨網站頁面和功能的使用者導覽視覺化表示法。 該工具有助於識別使用者經常離開、重複操作或遵循特定路徑的區域。 透過將實際使用者行為與預期結果和目標進行比較,您可以識別關鍵流程。 它還允許您優化潛在問題,例如高流失率、重複操作或設計缺陷。 該工具還允許通過維度進行自定義屬性過濾,從而提供更量身定制的分析。
Azure 監視器可 協助您深入瞭解應用程式的效能和健康情況。 它提供監控和診斷功能。 這些功能可讓您識別效能瓶頸、最佳化資源使用率,以及偵測和疑難排解可能影響成本的問題。
Log Analytics 是一種工具,可讓您從各種來源收集、分析和視覺化記錄資料。 藉由使用 Log Analytics,您可以深入瞭解應用程式和基礎結構記錄、識別趨勢,並藉由管理使用量和資料保留來優化成本。 考慮將日誌放在一起,並使用專用解決方案而不是共用解決方案,以更好地管理成本。
跨工作負載啟用 虛擬網路流程記錄 ,以擷取網路活動的相關資料。 流量分析 是一種基於雲端的解決方案,可讓您了解雲端網路中的使用者和應用程式活動。 流量分析透過識別主要流量來源、頻寬熱點和路由效率缺失來幫助優化網路資源分配並支持成本優化。 這些見解避免了不必要的過度配置。
相關連結
成本優化檢查清單
請參閱一組完整的建議。