透過最佳化改善效率

已完成
改善所定義效能目標內的系統效率,以增加工作負載價值。

初始階段期間設定的目標是以合理的使用者體驗層級為基礎,並考慮各種條件約束。 您應該重新評估並調整目標,以進一步增強體驗。 為了進一步增強體驗,需要清楚了解系統的使用方式、其演進方式,以及平台或技術隨著時間的變化。 監視、最佳化、測試和部署的週期是一個連續的流程。

效率最佳化工作可讓工作負載以較低的資源使用量運作。 它們可能會導致工作負載處於具有閒置容量的過度佈建狀態。 使用該容量來改善系統的可靠性。 排除容量以改善系統的成本。 或重新規劃容量,以支援現有資源上的新產品功能。

當系統獲得效率時,請利用機會設定和維護新的效能目標。

範例案例

Contoso 的人力資源工程團隊支援自訂整合到組織的人力資源資訊系統 (HRIS)。 這些整合包括薪資的財務整合、政府勞動法報告的招聘統計資料等。 大部分整合都是以 C# 撰寫的 Azure Functions,這些 Azure Functions 裝載於組織資料中心已啟用 Azure Arc 的 Kubernetes 叢集中。 大部分的工作都運作良好,但由於處理延遲,一些作業會讓團隊感到焦慮,因為有時人力資源主管需要關鍵資料時會無法取得。

優先處理效能最佳化

為效能最佳化配置專用週期,以解決功能區域中的非功能需求和最佳化。 此最佳化的目標包括資源、程式碼、資料保留、資料庫查詢等。

藉由採用這個方法,您可以建置效能驅動最佳化的文化特性。 您會讓團隊負責主動監視效能模式,並微調應用程式。

Contoso 的挑戰

  • 團隊較爲散亂,而且他們的待辦項目很長。 在撰寫和部署整合時,他們大部分的時間會處於「向前衝和忘記」的思維模式: 撰寫和部署整合後,團隊便會繼續進行下一項工作。
  • 由於資深領導無法及時存取資料,團隊經常被要求處理重大事件支援問題。
  • 團隊意識到需要進行改進,但仍未能優先處理必要的變更。

套用方法和結果

  • 團隊現在為技術債務的每個短期衝刺和其他最佳化活動配置 20% 的時間。 這能給工程團隊更多時間來優先處理並解決重要的區域,以及影響最有意義的其他區域。
  • 團隊能藉由採取這個方法,投入必要的時間來解決導致處理資料延遲的效能問題。

尋找設計改進

使用新的設計模式和元件增強結構,以您先前因時間或預算有限而未考慮的方式提升效能。

新的設計和元件可以最佳化系統,進而提升使用者體驗和長期成本效益。 例如,您可以使用快取或新增內容傳遞網路元件。

Contoso 的挑戰

  • 團隊使用 Azure Functions 和以觸發程式為基礎的流程已有數年時間,但尚未投入時間來評估此方法的替代方案。

套用方法和結果

  • 團隊會探討其他使用 Azure Functions 的方式,並發現耐久函式支援可協助其平行處理特定薪資工作的扇出模式。
  • 團隊會將此模式納入其設計目錄中,以供未來設計使用。 這也很好地提醒我們,除了程式碼最佳化和資料清理之外,還要考慮解決效能低下問題的其他方法。

使用監視工具來分析歷史趨勢,並識別流程和程式碼實作路徑,讓效能最佳化工作受益最大。 我們建議針對此目的使用應用程式效能監視 (APM) 工具和分析工具。 此外,識別系統中的作業經常性存取層路徑和其他潛在瓶頸。

當您識別週期性的問題區域時,團隊可以將焦點放在最高收益的地方。

Contoso 的挑戰

  • 團隊已使用 Azure Application Insights 檢測所有函式。
  • 它們大多使用 Application Insights 來協助修正問題,以及記錄接收。
  • 從歷史上看,他們針對改進區域的做法是基於資深領導團隊給與的意見反應。

套用方法和結果

  • 雖然意見反應很重要,但團隊發現 Application Insights 在偵測其監視之應用程式中的熱點時,表現相當出色。
  • 團隊會開始利用這項功能,加上團隊知道哪些流程很重要,因此它會成為重要的工具,讓團隊在技術改進和效率方面投入 20% 的時間。
  • 使用 Application Insights 時,團隊能夠主動識別有風險的整合,並在領導團隊成員遇到問題之前加以處理。

檢定您的知識

1.

Contoso 團隊如何變更其開發流程以解決持續發生的效能問題?

2.

下列哪一項是改善工作負載效率的好策略?

3.

哪種工具可協助您分析效能趨勢,並識別執行瓶頸?