性能工程成熟度模型
作者 | 張旭海
簡介
性能工程成熟度模型,是由 Thoughtworks 安全與系統研發業務線和西安郵電大學計算機學院共建的“軟件性能工程聯合實驗室”發布的一組能力成熟度評估模型,用于識別組織性能工程體系建設的現狀和改進方向。
該模型從架構設計、研發編碼到測試看護和持續運營等環節,關注全流程的性能實踐,包括性能建模、性能觀測、看護定界和性能分析及優化。通過性能工程成熟度級別,組織可以評估其性能工程能力建設的狀態,有針對性地定義目標,提升性能工程水平,推動系統性能的標準化和規模化改善。
什么是性能工程
性能工程是一種系統性的工程化方法,目標在于通過整合設計、構建工具鏈和研發工作流程,實現系統性能的標準化、規模化改善和守護。對性能工程能力的建設,可簡要概括為如下方面:
- 通過構建閉環的性能工程反饋系統(DevPerfOps),從性能建模、性能測試、看護定界到迭代優化,實現全流程性能關注。
- 通過積累專家經驗形成知識庫,以數據與度量指標驅動架構設計決策,形成性能優化標準實踐,降低性能優化門檻。
- 通過自助性能分析工具鏈,提供一站式的性能分析平臺,簡化操作、降低工具學習和使用成本。
因此,性能工程的核心在于多種實踐相結合,構建持續的性能反饋機制和實踐,以推動系統性能的不斷改善。(關于性能工程的更多細節,請參考性能工程系列文章)
目標受眾
性能工程成熟度模型的受眾涵蓋產品研發生命周期的多個階段,包括以下幾個方面的角色:
- CTO/CIO和技術總監:關注組織的整體性能工程水平,通過模型的評估結果了解組織在性能方面的成熟度,指導戰略規劃和資源分配。
- 軟件架構師:通過模型了解和評價組織在架構設計和性能建模方面的實踐成熟度,從而更好地理解性能目標,進行性能建模,指導軟件設計。
- 開發人員:通過模型了解組織在代碼研發階段的性能實踐水平,參照既有性能設計和目標,為其提供優化方案和改進建議。
- 測試人員:模型為測試人員提供了性能測試和驗證的方向,幫助他們構造和評價測試系統,確保測試環節覆蓋關鍵性能路徑,改善測試效果。
- 運維人員:模型為運維人員提供了性能觀測和分析的實踐方向,幫助他們認識性能變化趨勢并給出性能預警和建議,確保系統運行的高效和穩定。
模型表
建設性能工程的演進路線
基于性能工程成熟度模型表,企業和組織可以參考如下的演進路線來建設性能工程的能力體系:
- 系統化:在架構評審流程中,引入性能建模,建立團隊性能優化意識;同時通過可觀測性指標采集工具的完善提升排查問題效率。
- 數據化:性能看護集成CI,積累指標變化趨勢,使用積累的數據驅動架構設計決策。
- 知識化:保持組織內經驗交流,建立知識庫,形成對反模式的共同認知。
- 資產化:針對常見問題形成可快速復用的優化思路,最終產出公共平臺化組件能力。
- 常態化:通過總結工程方法將性能工程活動融入研發周期流程。
- 智能化:通過積累的性能優化經驗,訓練優化大模型,快速給出優化建議。
結語
數年來,改善軟件性能都十分依賴專家經驗,理由很充分:它需要技巧。我們希望通過工程化的模式將這種技巧放大和復用,讓性能分析和優化有章可循。
作為一個用于評估組織性能工程實踐水平的框架,性能工程成熟度模型覆蓋了軟件研發的全流程,關注性能建模、知識庫固化和自助性能分析。
通過不同成熟度級別的定義以及參考的演進路線,我們期望該模型能幫助組織識別性能工程建設的方向,并持續地向構建高性能軟件的目標邁進。