周冉
交易系統(tǒng)的性能是體現(xiàn)交易業(yè)務(wù)能力的重要指標(biāo),如何確保交易系統(tǒng)能夠滿足大數(shù)據(jù)量的交易需求至關(guān)重要。對于交易系統(tǒng)來說,如果性能問題不能提早被發(fā)現(xiàn),而是到了生產(chǎn)環(huán)節(jié)才被發(fā)現(xiàn),代價將是非常慘痛的,輕則影響用戶體驗,重則會造成重大財務(wù)損失。因此,只有對交易系統(tǒng)的性能容量指標(biāo)進行合理的評測,才能滿足業(yè)務(wù)的長期發(fā)展。
中匯信息技術(shù)(上海)有限公司,是外匯交易中心旗下全資子公司,致力于為建立全球人民幣和相關(guān)產(chǎn)品交易主平臺和定價中心提供技術(shù)研發(fā)、運維和信息服務(wù)。公司的發(fā)展目標(biāo)是確保交易中心的系統(tǒng)建設(shè)和開發(fā),并且爭取建設(shè)成為國內(nèi)一流,具有國際影響力的本外幣交易系統(tǒng)解決方案,行業(yè)標(biāo)準(zhǔn)和國家的重要基礎(chǔ)設(shè)施的供應(yīng)商。
據(jù)中匯信息技術(shù)測試部經(jīng)理潘春媚介紹,通常來說,交易中心的性能測試主要關(guān)注用戶在群體效應(yīng)下系統(tǒng)的響應(yīng)時間和資源使用的時間特性。性能測試的一個重要目標(biāo)就是快速定位到工程級的問題,并解決回歸問題。在飛速的業(yè)務(wù)發(fā)展中,中匯公司的性能測試在定位環(huán)節(jié)遇到了極大阻力。
壓在性能測試定位環(huán)節(jié)上的三座大山
首先,統(tǒng)計分析困難。在傳統(tǒng)測試的性能分析中,通常依賴于日志。而交易中心業(yè)務(wù)量巨大、日志多,在這種數(shù)據(jù)量比較大的情況下,宏觀數(shù)據(jù)分析統(tǒng)計非常困難,而且耗時很久,且過多的日志本身就會對系統(tǒng)的性能帶來一定的影響。
第二,很多復(fù)雜的性能問題比較隱蔽,往往一個環(huán)節(jié)的問題會遮蓋掉其他環(huán)節(jié)的問題。同時,基礎(chǔ)設(shè)施問題的定位也很困難,因為硬件基礎(chǔ)設(shè)施的性能問題,往往會表現(xiàn)為軟件層面的性能問題,誤導(dǎo)了性能問題的定位和分析。還有一些比較隱蔽的、復(fù)雜的資源限制和參數(shù)限制,也給性能問題定位增加了困難。
第三,偶發(fā)性問題難以復(fù)現(xiàn)。在性能測試過程中,偶發(fā)性問題,或者在某些條件下才出現(xiàn)的性能問題很難去復(fù)現(xiàn),這也給性能問題的定位增加了很多困難。為了解決這些痛點,經(jīng)過種種對比和評測,中匯公司選擇了Dynatrace。
依靠數(shù)據(jù)和報表快速定位
Dynatrace的Hotspots提供了系統(tǒng)的請求鏈路和分布狀況的相關(guān)數(shù)據(jù),Purepath提供了執(zhí)行的關(guān)鍵路徑,Database提供了資源使用情況和數(shù)據(jù)庫的情況,Service flow和Smartscape Topology則提供了更多信息。結(jié)合多維度的信息和相應(yīng)的報表,可以幫助交易系統(tǒng)的性能測試由黑盒測試轉(zhuǎn)向灰盒測試,大大提升了性能問題的分析和定位的效率和準(zhǔn)確性。
“Dynatrace在解決性能問題定位方面給我們帶來的好處是顯而易見的。”潘春媚表示。首先,不需要日志的記錄就可以直接定位分析問題,并且有詳細的報表和詳實的數(shù)據(jù)提供。其次,可以無需重現(xiàn)這些問題,直接在發(fā)現(xiàn)問題的場景來定位問題,大大提高了溝通的效率。Dynatrace提供的多維度數(shù)據(jù)和報表,還可以拓寬問題定位人員的思路,加快定位的效率。
在中匯公司,性能測試和功能測試團隊使用同一套環(huán)境,白天做功能測試,晚上做性能測試。在進行比較復(fù)雜的業(yè)務(wù)場景測試,或者全鏈路的業(yè)務(wù)流性能測試時,往往會涉及到上下游很多系統(tǒng),如果發(fā)現(xiàn)最下游的系統(tǒng)有性能問題時,以往都是性能測試團隊陪著開發(fā)團隊一遍遍地重現(xiàn)場景,幫助開發(fā)團隊一個個進行排除,很多時候會工作到后半夜。
使用Dynatrace后,只需提供當(dāng)時發(fā)現(xiàn)問題的數(shù)據(jù)給相關(guān)的上下游開發(fā)團隊,通過數(shù)據(jù)分析來解決定位問題,而不再需要一遍遍地重現(xiàn)這些問題,極大提高了效率和準(zhǔn)確性。從此,再也不用加班到后半夜!
性能測試不僅驗證了業(yè)務(wù)需求,還驗證了是否符合系統(tǒng)設(shè)計及測試設(shè)計。Dynatrace幫助中匯公司改進了性能測試的測試流程。性能測試是把復(fù)雜的用戶行為,通過統(tǒng)計抽象,建立用戶模型和測試模型,最終形成規(guī)律性的測試腳本。通過性能測試,分析測試產(chǎn)生的結(jié)果和數(shù)據(jù),來驗證系統(tǒng)是否符合業(yè)務(wù)需求,這就相當(dāng)于性能測試設(shè)計,來源于業(yè)務(wù)需求和系統(tǒng)設(shè)計,同時最終服務(wù)于業(yè)務(wù)需求。
傳統(tǒng)的性能測試往往只驗證了系統(tǒng)是否符合業(yè)務(wù)需求,卻忽略了系統(tǒng)設(shè)計。一些系統(tǒng)設(shè)計層面的問題,往往會遺漏到生產(chǎn),成為生產(chǎn)問題暴露之后才被發(fā)現(xiàn),這樣的代價是非常慘痛的。利用Dynatrace提供的多維度的數(shù)據(jù)和專業(yè)的報表,可以去驗證系統(tǒng)的負載和可靠性的設(shè)計,分布式的服務(wù)設(shè)計,調(diào)用鏈路、關(guān)鍵技術(shù)選型、安全設(shè)計等,檢查系統(tǒng)是否符合當(dāng)初的系統(tǒng)設(shè)計。同時通過這些數(shù)據(jù),也能驗證負載策略,測試腳本的正確性、有效性、依賴性、關(guān)聯(lián)性以及參數(shù)化設(shè)計。也就是說,在Dynatrace的幫助下,性能測試除了驗證業(yè)務(wù)需求之外,還可以檢查系統(tǒng)是否符合當(dāng)初的系統(tǒng)設(shè)計,以及是否符合當(dāng)初做性能測試的時候的測試設(shè)計。如果發(fā)現(xiàn)系統(tǒng)設(shè)計層面的問題,將快速定位,讓系統(tǒng)設(shè)計層面比較難發(fā)現(xiàn)的系統(tǒng)問題更早的被發(fā)現(xiàn)。此外,Dynatrace提供的多維度數(shù)據(jù),能夠幫助查看系統(tǒng)各部分資源占用的情況是否符合預(yù)期,為后續(xù)的調(diào)整提供了參考。
希望在應(yīng)用領(lǐng)域深入合作
談到未來的合作,潘春媚表示,希望利用Dynatrace幫助中匯公司持續(xù)改進測試質(zhì)量,利用Dynatrace和自動化測試相結(jié)合,不斷監(jiān)控整個測試過程的數(shù)據(jù),盡早發(fā)現(xiàn)潛在問題,提高缺陷預(yù)防的能力。此外,中匯公司還希望通過Dynatrace在新技術(shù)領(lǐng)域做更多的研究,持續(xù)改善軟件質(zhì)量。在后續(xù)條件成熟后,中匯公司希望把Dynatrace在測試環(huán)境中的使用經(jīng)驗和工作方式,推廣到生產(chǎn)環(huán)境中去,利用Dynatrace監(jiān)控生產(chǎn)環(huán)境,收集生產(chǎn)環(huán)境的數(shù)據(jù),反向推動測試過程的改進,反向推動產(chǎn)品的設(shè)計。