發(fā)布時間:2020-06-19
眾所周知,應(yīng)用的服務(wù)狀態(tài)除了會受到自身穩(wěn)定性的影響,還會受到流量等環(huán)境因素的影響,并且影響面會繼續(xù)傳遞到上下游,哪怕一個環(huán)節(jié)出現(xiàn)一點誤差,誤差在上下游經(jīng)過幾層累積后會造成什么影響誰都無法確定。
保障服務(wù)的可用性和穩(wěn)定性是技術(shù)團隊面臨的首要任務(wù),也是技術(shù)難題之一。在實際生產(chǎn)環(huán)境中,用戶的訪問行為一旦發(fā)生,從CDN到接入層、前端應(yīng)用、后端服務(wù)、緩存、存儲、中間件整個鏈路都面臨著不確定的流量,無論是公有云、專有云、混合云還是自建IDC,全局的瓶頸識別、業(yè)務(wù)整體容量摸底和規(guī)劃都需要高仿真的全鏈路壓測來檢驗。這里的不確定的流量指的是某個大促活動、常規(guī)高并發(fā)時間段以及其他規(guī)劃外的場景引起的不規(guī)則、大小未知的流量。
因此,在生產(chǎn)環(huán)境里建立起一套驗證機制,來驗證各個生產(chǎn)環(huán)節(jié)都是能經(jīng)受住各類流量的訪問,成為保障服務(wù)的可用性和穩(wěn)定性的重中之重。最佳的驗證方法就是讓事件提前發(fā)生,即讓真實的流量來訪問生產(chǎn)環(huán)境,實現(xiàn)全方位的真實業(yè)務(wù)場景模擬,確保各個環(huán)節(jié)的性能、容量和穩(wěn)定性均做到萬無一失,這就是全鏈路壓測的誕生背景,也是將性能測試進行全方位的升級,使其具備“預(yù)見能力”。
可見,全鏈路壓測做得好,遇到真實環(huán)境的流量,系統(tǒng)僅僅只是再經(jīng)歷一次已經(jīng)被反復(fù)驗證過的場景,再考一遍做“做過的考題”,不出問題在意料之中將成為可能。
壓測的核心要素
實施完整的業(yè)務(wù)壓測,路徑很重要。要達成精準(zhǔn)衡量業(yè)務(wù)承接能力的目標(biāo),業(yè)務(wù)壓測就需要做到一樣的線上環(huán)境、一樣的用戶規(guī)模、一樣的業(yè)務(wù)場景、一樣的業(yè)務(wù)量級和一樣的流量來源,讓系統(tǒng)提前進行“模擬考”,從而達到精準(zhǔn)衡量業(yè)務(wù)模型實際處理能力的目標(biāo),其核心要素是:壓測環(huán)境、壓測基礎(chǔ)數(shù)據(jù)、壓測流量(模型、數(shù)據(jù))、流量發(fā)起、掌控和問題定位。
壓測環(huán)境和壓測基礎(chǔ)數(shù)據(jù)
生產(chǎn)環(huán)境上基礎(chǔ)數(shù)據(jù)基本分為兩種方式:
一種是數(shù)據(jù)庫層面不需要做改造,直接基于基礎(chǔ)表里的測試賬戶(相關(guān)的數(shù)據(jù)完整性也要具備)進行,壓測之后將相關(guān)的測試產(chǎn)生的流水?dāng)?shù)據(jù)清除(清除的方式可以固化SQL腳本或者落在系統(tǒng)上);
另一種就是壓測流量單獨打標(biāo)(如單獨定義的Header),然后業(yè)務(wù)處理過程中識別這個標(biāo)并傳遞下去,包括異步消息和中間件,最終落到數(shù)據(jù)庫的影子表或者影子庫中。這種方式詳見阿里的全鏈路壓測實踐,我們也是選用了這種方式。此外,生產(chǎn)環(huán)境的壓測盡量在業(yè)務(wù)低峰期進行從而避免影響生產(chǎn)的業(yè)務(wù)。
相關(guān)閱讀:
電話咨詢,400-035-7887,安排專業(yè)技術(shù)售前給您解答(產(chǎn)品試用、技術(shù)交流、服務(wù)咨詢和商務(wù)報價)。
您的信息已成功提交!
我們的客服人員稍后會與您聯(lián)系