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