優化流程成本的建議

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

CO:09 優化流程成本。 讓每個流程的成本與流程優先順序一致。 當您設定流程的優先順序時,請考慮每個流程的特性、功能和非功能需求。 優化流程支出通常需要策略性入侵。

本指南說明優化工作負載中每個流程成本的建議。 將工作負載中的流程成本優化牽涉到策略性配置和管理資源,以將費用降到最低,同時維持效能。 這項優化非常重要,因為它可確保有效率地利用投資的資源、減少不必要的支出,並改善基礎結構的整體投資報酬率。 如果您未對工作負載中的流程進行成本優化,則會在資源上過度加總風險,這會導致擴大的營運成本並降低獲利率。

定義

詞彙 定義
解 耦 從包含多個流程的資源中移除流程並放入個別資源的策略。
流程 在工作負載中,執行特定函式的動作順序。 流程牽涉到資料移動,以及工作負載元件之間的進程執行。
系統流程 系統內的資訊和處理常式流程。 系統會自動遵循此流程,以啟用使用者流程或工作負載功能。
使用者流程 使用者在應用程式或系統內採取的路徑或動作順序。

主要設計策略

投資高優先順序流程比優先順序較低的流程多。 調整流程優先順序和支出,可能會牽涉到將目前共用相同資源的流程分離。 它也牽涉到合併具有類似需求的流程,但在個別的資源上執行。 例如,假設您有一個包含多個流程的 Web 應用程式,例如使用者註冊、登入和資料處理。 這些流程會在單一伺服器上執行,即使它們有不同的資源需求也一樣。 若要將成本和效能優化,您可以分隔流程或合併流程:

  • 分隔流程。 例如,您可以將使用者註冊流程與其他人分離,並將其移至專用、低成本的伺服器。 此流程很重要,但不會耗用大量資源,因此是較不耗費資源之伺服器的良好候選項目。

  • 結合流程。 例如,您可以結合登入和資料處理流程,這兩者都有較高的資源需求,並在高效能伺服器上一起執行。 結合這些流程可讓伺服器有效率地處理這兩個流程的資源密集需求。 它會優化效能和成本。

在工作負載中,您可以考慮不同類型的流程或路徑。 本指南著重于下列流程類型:

  • 系統流程。 優化系統流程牽涉到簡化系統元件之間的通訊和互動、將瓶頸降至最低,以及確保有效率的資源使用率。

  • 使用者流程。 優化使用者流程牽涉到改善使用者體驗、減少摩擦點,並確保應用程式或系統內的流覽和互動順暢。

建立流程清查

流程清查是工作負載內所有動作序列、資料轉換和系統互動的完整清單和描述。 流程清查是確保投資符合流程優先順序的第一個步驟。 當您完全瞭解流程的用途和相依性時,您應該只將流程優化。 以下是建立工作負載流程清查的步驟:

  1. 檔流程。 首先,記錄並列出您工作負載中的所有現有流程,以瞭解系統的完整狀態。 包含每個動作序列、資料轉換和系統互動。 熟悉每個元件,例如外部服務、資料庫、中介軟體和協力廠商整合。 此外,追蹤或估計一段時間的要求量。

  2. 將流程視覺化。 若要取得更清楚的觀點,請在流程圖或圖表中以視覺化方式呈現您的結果。 視覺效果可協助您查看元件之間的相互關聯性。 請考慮使用 Visio 之類的工具來協助您處理視覺效果。

  3. 分類流程。 將類似流程組合在一起,並考慮其功能 (等屬性,例如驗證、資料擷取和交易處理) 、對業務的關鍵性,或是他們使用 (CPU、記憶體或頻寬) 的資源。

排定流程的優先順序

流程優先順序是根據流程對業務成果的影響、對使用者體驗的影響,以及他們取用的資源來分類流程的程式。 重要流程通常需要較高層級的可用性、更快速的復原時間,以及更好的效能,以符合工作負載目標。 藉由將流程排定優先順序,您可以更妥善地讓支出符合流程優先順序。 若要設定流程的優先順序,請考慮下列步驟:

  • 識別流程值。 當您將工作負載流程成本優化時,您必須識別可提供最多值的流程。 您不想要花費比流程還多。 請考慮將成本轉移,以優先處理更有價值的流程,而不是直接降低成本。 例如,您的結帳流程對於商務而言非常重要,但購買歷程記錄並不重要。 您應該將更多資源和預算配置給結帳流程。

    低優先順序流程對於可用性、復原和效能的預期較低。 您可以使用較便宜的設定來降低成本,以減少效能、可用性或商務持續性費用。

  • 請考慮流量計量。 如果您難以排定流程的優先順序,請考慮您指派給流程的可用性和復原目標。 重要流程通常會有高可用性需求和服務等級協定, (SLA) 。 與較低 RPO 和 RTO 相關聯的流程比具有較高 RPO 和 RTO 的流程更重要。

優化獨立流程

有時候您的流程已在不同的資源上執行。 在這些情況下,您可以更輕鬆地評估及優化費用。 評估每個獨立流程所涉及的元件和程式,以判斷是否有方式可以優化或簡化這些元件。 若要優化獨立流程,您可以遵循下列步驟:

  • 排除不必要的元件。 移除任何不參與流程核心功能的額外元素,進而降低複雜度和成本。

  • 重新設計流程。 請考慮重新設計流程的架構,以提升其效率。 例如,您可以變更作業順序、減少延遲或改善資料傳送速率。

  • 選擇適當的效能層級。 不同的流程在處理速度、記憶體或其他資源計量方面可能會有不同的需求。 請務必選擇符合每個流程特定需求的資源層。

  • 調整調整設定。 如果流程遇到變動的需求,請考慮實作自動調整,以根據即時需求動態調整資源,進而將成本優化。

  • 微調設定。 微調其他設定,例如網路或資料儲存選項,以更符合流程的效能和預算需求。

分隔不同的流程

將不同的流程分隔到不同的資源,是將不同計算需求配置給專用資源的不同工作的程式。 不同的流程是具有不同屬性的流程。 這些屬性可能包括計算需求、資料相依性、I/O 作業、延遲敏感度、安全性需求和合規性需求。 在個別資源上執行不同類型的流程通常更有成本效益。 這麼做可讓每個流程的精確資源配置減少不必要的支出,並確保效率上限。

請考慮分隔目前合併的不同流程。 此區隔可提升延展性、容錯和可調整性,並簡化成本。 藉由確保每個流程獨立運作,您可以降低干擾風險,並根據每個流程的優先順序,以更有成本效益的方式配置資源。 例如,假設您將 CRM (使用者流程共置) 與資料引擎 (資料流程) 。 在辦公室時間內,使用者對 CRM 系統的流量可能會使資料引擎變慢。 當您分離流程時,資料引擎可以根據工作負載需求獨立調整每個元件或服務。 這種分離可優化資源配置,並降低成本。

結合類似的流程

將類似的流程合併到單一資源是合併具有可比較屬性的工作或程式,並使用共用資源的程式。 此策略可消除備援,並確保更有效率地使用資源,進而節省大量成本。 類似的流程類型會共用類似的屬性。 您可能會考慮不同流程時所查看的相同屬性:計算需求、資料相依性、I/O 作業、延遲敏感度、安全性需求和合規性需求。 以下是一些範例,其中結合使用相同資源的類似工作負載流程可能會導致大幅節省:

  • 網頁伺服器。 請考慮將其合併,而不是為每個應用程式指定個別的網頁伺服器,特別是當流量不一致高時。 與反向 Proxy 配對的共用 Web 服務器,可以有效地管理和路由傳送流量至多個應用程式。

  • API 閘道。 您可以使用集中式 API 閘道來簡化要求,並將其導向至相關服務,而不是針對個別微服務或應用程式維護個別 API 閘道。 這麼做可讓管理變得更容易,也降低成本。

  • 記錄處理。 請考慮將它們全部導向至共用記錄處理工具,而不是讓每個應用程式或服務操作自己的記錄處理實例。 此方法可將使用中實例的數目降至最低,這可轉譯為直接節省成本。

  • 驗證服務。 如果多個應用程式部署自己的不同驗證機制,則會引進備援。 整合單一登入 (SSO) 解決方案或啟用驗證服務可減少此重複專案,並將資源使用量優化,進而降低成本。

風險:不小心與設計一致。 兩個看起來類似的流程不一定提供相同的用途。 您需要先瞭解每個流程的函式和設計,再合併或變更流程。 只將焦點放在其外觀上,可能會造成非預期的結果,並中斷它所支援的服務或程式。 如果多個流程提供相同的函式,而且其設計或意圖沒有明顯的差異,請考慮將它們合併。

持續監視流程

流程和工作負載的本質可能會隨著時間而變更,因此您必須檢閱流程支出,以確保成本符合優先順序。 藉由分析與每個流程相關聯的計算、儲存體和網路使用量,來評估每個流程的資源使用率。 識別資源使用量過低的任何效率或區域。 此分析可協助您找出成本優化的機會。 以下是當您檢閱流程使用率時要考慮的一些考慮:

  • 分析使用模式。 分析流程的使用模式。 某些流程可能會在一天或月份的特定時間更主動,而其他流程可能具有一致的負載。 藉由瞭解這些模式,您可以預測資源需求並調整配置,以避免瓶頸和過度布建。

  • 監視相關的計量。 判斷可協助您評估每個流程效率與成本效益的計量。 請考慮 CPU 使用率、資料傳輸成本、交易成本和儲存體使用量。 使用監視工具來收集資源使用量和效能的詳細計量。

  • 請考慮進行中的維護。 請考慮維護成本,特別是當您使用基礎結構即服務解決方案時,例如虛擬機器。 您必須考慮修補、升級、備份、監視和安全性等活動。

在分析期間,找出資源未有效使用的任何效率不佳或區域。 請考慮閒置計算實例、未使用的資料,以及低網路頻寬。 這些效率不佳可能會指出成本優化的機會。

Azure 設施

優先順序、優化和監視流程: Application Insights 中的 [使用者流程] 工具 提供您網站頁面和功能之使用者流覽的視覺化標記法。 此工具有助於識別使用者經常離開、重複動作或遵循特定路徑的區域。 藉由比較實際使用者行為與預期的結果和目標,您可以識別重要的流程。 它也可讓您優化潛在的問題,例如高流失率、重複動作或設計缺陷。 此工具也允許透過維度來篩選自訂屬性,並提供更量身打造的分析。

Azure 監視器 可協助您深入瞭解應用程式的效能和健康情況。 它提供監視和診斷功能。 這些功能可讓您識別效能瓶頸、優化資源使用率,以及偵測並疑難排解可能會影響成本的問題。

Log Analytics 是一種工具,可讓您從各種來源收集、分析和視覺化記錄資料。 藉由使用 Log Analytics,您可以深入瞭解您的應用程式和基礎結構記錄、識別趨勢,以及管理使用量和資料保留來優化成本。 請考慮共置記錄和使用專用解決方案,而不是共用的解決方案,以更妥善地管理成本。

成本優化檢查清單

請參閱一組完整的建議。