多入口性能壓測(cè)大殺器:一站式壓測(cè)平臺(tái)OPM背后的技術(shù)揭秘
我們面臨的挑戰(zhàn)
阿里的雙十一已經(jīng)成為全球的超級(jí)工程了,在這個(gè)超級(jí)工程中,全鏈路壓測(cè)是很重要的一個(gè)環(huán)節(jié)。整個(gè)集團(tuán)層面的全鏈路壓測(cè),涉及到的BU和團(tuán)隊(duì)非常多,對(duì)于這樣一個(gè)涉及多個(gè)團(tuán)隊(duì)協(xié)作的事項(xiàng),如何盡量的減少人員的投入,減少全鏈路壓測(cè)的次數(shù),同時(shí)又能保證壓測(cè)能夠達(dá)到目標(biāo),成為一個(gè)必須要去突破的問(wèn)題。
集團(tuán)的全鏈路壓測(cè)主要涉及交易和導(dǎo)購(gòu)兩部分。交易的全鏈路啟動(dòng)比較早,相關(guān)的平臺(tái),工具和流程經(jīng)過(guò)幾年的沉淀,已經(jīng)比較成熟,形成了較為穩(wěn)定的體系。導(dǎo)購(gòu)的全鏈路壓測(cè),因?yàn)閷?dǎo)購(gòu)業(yè)務(wù)的特殊性,例如入口流量存在較多的不確定性,系統(tǒng)之間的調(diào)用錯(cuò)綜復(fù)雜,加上導(dǎo)購(gòu)的業(yè)務(wù),日常態(tài)和大促態(tài)差異比較明顯等。
以上是經(jīng)過(guò)抽象之后的導(dǎo)購(gòu)的全鏈路壓測(cè)模型,實(shí)際的模型,會(huì)更復(fù)雜,入口的分散,系統(tǒng)之前的互相依賴等,如下圖顯示。
另外導(dǎo)購(gòu)的全鏈路壓測(cè)2016年才啟動(dòng),還沒(méi)能夠形成體系。針對(duì)這些問(wèn)題和挑戰(zhàn),2017年,我們通過(guò)構(gòu)建一站式的全鏈路管理平臺(tái)??朔松鲜龅膯?wèn)題,取得了良好的效果。
在2017年導(dǎo)購(gòu)的全鏈路壓測(cè)啟動(dòng)之前,我們先回顧了過(guò)去導(dǎo)購(gòu)全鏈路壓測(cè)經(jīng)歷過(guò)的問(wèn)題。
1. 壓測(cè)的人力消耗已經(jīng)越來(lái)越不可管控,全鏈路壓測(cè)導(dǎo)購(gòu)人力消耗,150人,雙十一當(dāng)天1000人,如何減少人力已經(jīng)成為迫在眉睫的事情
2. 應(yīng)用多,入口分散,每次壓測(cè)都需要調(diào)整流量模型,頻繁的調(diào)整對(duì)收口業(yè)務(wù)的穩(wěn)定性帶來(lái)了較大壓力
3. 無(wú)歷史參考數(shù)據(jù),換一撥人很多歷史經(jīng)驗(yàn)無(wú)法沉淀,造成人力的巨大浪費(fèi)
4. 上下游流量人肉的收集與管控,導(dǎo)購(gòu)場(chǎng)景相互之間網(wǎng)狀調(diào)用,造成長(zhǎng)期流量評(píng)估的巨大誤差
5. 無(wú)壓測(cè)性能過(guò)程管控,研發(fā)人員一有性能問(wèn)題***反應(yīng)就是要機(jī)器
針對(duì)這些問(wèn)題,我們構(gòu)建了一站式的全鏈路壓測(cè)平臺(tái)。以下是平臺(tái)核心功能,主要包括壓測(cè)構(gòu)造、壓測(cè)執(zhí)行(偏監(jiān)控)、分析問(wèn)題和定位。
壓測(cè)構(gòu)造
導(dǎo)購(gòu)的全鏈路壓測(cè),壓測(cè)需求的構(gòu)造,是很重要的一個(gè)環(huán)節(jié),對(duì)壓測(cè)結(jié)果的準(zhǔn)確性有很重要的影響,同時(shí)也需要不小的工作量。2017年,我們?cè)趬簻y(cè)構(gòu)造方面提供了以下的豐富的能力
(1)數(shù)據(jù)工廠:提供快速構(gòu)建壓測(cè)數(shù)據(jù),支持多種類型和靈活的參數(shù)構(gòu)建規(guī)則,并實(shí)現(xiàn)了壓測(cè)數(shù)據(jù)在關(guān)聯(lián)系統(tǒng)之間的共享,降低了壓測(cè)數(shù)據(jù)準(zhǔn)備的工作量提高了壓測(cè)數(shù)據(jù)的準(zhǔn)確性
(2). 壓測(cè)流量模型和需求: 導(dǎo)購(gòu)的流量存在多單元入口,以及入口流量的不確定性,這對(duì)壓測(cè)需求的構(gòu)建有一定的影響。2017年,我們通過(guò)構(gòu)建壓測(cè)流量模型。并以此作為基礎(chǔ),直接一鍵構(gòu)建壓測(cè)需求,并支持壓測(cè)需求的批量更新,合并,復(fù)制,需求內(nèi)鏈路壓測(cè)數(shù)據(jù)之間的共享等,大大降低了壓測(cè)需求構(gòu)建的工作量。
流量模型梳理
近1000個(gè)鏈路場(chǎng)景,系統(tǒng)與系統(tǒng)之間存在互相調(diào)用,系統(tǒng)流量之間存在千絲萬(wàn)縷的聯(lián)系,給核心系統(tǒng)的業(yè)務(wù)評(píng)估帶來(lái)了巨大的挑戰(zhàn)。評(píng)估流量模型的時(shí)候很容易產(chǎn)生遺漏,也容易產(chǎn)生評(píng)估的偏差。OPM可以實(shí)時(shí)錄入線上流量,產(chǎn)生流量調(diào)用比例圖(如上圖所示),當(dāng)入口流量確定時(shí),可以協(xié)助用戶梳理整體流量,為流量的梳理提供幫助
在這個(gè)基礎(chǔ)上,我們?cè)黾恿藢?dǎo)購(gòu)全鏈路壓測(cè)的全局視角,通過(guò)提供以下的能力,達(dá)到全鏈路壓測(cè)的一體化。
1.任務(wù)管控:可以管控導(dǎo)購(gòu)全鏈路壓測(cè)的所有應(yīng)用鏈路,包含壓測(cè)需求、壓測(cè)鏈路、流量模型、并提供了全局流量視圖。對(duì)導(dǎo)購(gòu)的全鏈路壓測(cè)的全貌,可以實(shí)時(shí)查看。達(dá)到對(duì)整個(gè)壓測(cè)的可視化
2. 進(jìn)度和變更管控:通過(guò)和ebay的協(xié)作,對(duì)全鏈路壓測(cè)的時(shí)間進(jìn)度,壓測(cè)變更,等進(jìn)行管控,使得整個(gè)壓測(cè)的過(guò)程,有條不紊的進(jìn)行。
壓測(cè)執(zhí)行時(shí)
導(dǎo)購(gòu)的全鏈路壓測(cè),涉及到的應(yīng)用比較多,要關(guān)注的點(diǎn)比較多,例如入口流量是否正確,各單元的流量比例是否正確,是否有跨單元調(diào)用,實(shí)際壓測(cè)流量和預(yù)設(shè)值是否一致等等。借助現(xiàn)有的監(jiān)控還滿足不了。為此,2017年,我們?cè)趬簻y(cè)執(zhí)行時(shí)的全局監(jiān)控方面進(jìn)行了一些努力。除去集團(tuán)監(jiān)控實(shí)現(xiàn)的功能外,OPM還提供了以下的全局視圖。
1. 壓測(cè)大盤:實(shí)時(shí)展現(xiàn)壓測(cè)流量,包括入口流量,各單元的流量,壓測(cè)流量與預(yù)估值的實(shí)時(shí)對(duì)比等,可以全局監(jiān)控導(dǎo)購(gòu)的流量是否符合預(yù)期
2. 全局系統(tǒng)監(jiān)控大盤:系統(tǒng)指標(biāo)(cpu、load、網(wǎng)絡(luò)等)、服務(wù)指標(biāo)(rt、qps、超時(shí)等)、上下游調(diào)用量等,可以很直觀的發(fā)現(xiàn)整個(gè)全鏈路中,性能瓶頸在哪個(gè)應(yīng)用上。
3. 運(yùn)維狀態(tài)大盤:系統(tǒng)監(jiān)控、業(yè)務(wù)監(jiān)控、預(yù)案、限流。
上述的全局視圖,除了在壓測(cè)執(zhí)行的過(guò)程中可以實(shí)時(shí)查看,OPM也提供了快照的功能,持久化在平臺(tái)中,可以重新進(jìn)行分析和查看
分析定位
OPM通過(guò)整合集團(tuán)內(nèi)的各監(jiān)控平臺(tái),構(gòu)建了分析定位性能問(wèn)題的基礎(chǔ),
1. 變更分析:全鏈路壓測(cè)性能出現(xiàn)問(wèn)題時(shí),我們首先想回到壓測(cè)的那個(gè)時(shí)刻,了解當(dāng)時(shí)執(zhí)行了什么變更?推送了什么配置?當(dāng)時(shí)的性能快照是什么?OPM提供實(shí)時(shí)快照能力,實(shí)時(shí)記錄時(shí)間的所有變更,為后續(xù)性能的分析提供數(shù)據(jù)支持。系統(tǒng)變更聚合展示,可以快速定位出性能的變化與系統(tǒng)變化之間的關(guān)聯(lián)。
2. 性能快照:系統(tǒng)性能快找,通過(guò)自定義的性能快照采集和生成,方便事后對(duì)過(guò)去任意時(shí)間系統(tǒng)狀態(tài)進(jìn)行查詢和分析
2017年的新嘗試--構(gòu)建性能基線
2017年,我們針對(duì)導(dǎo)購(gòu)的核心應(yīng)用,啟動(dòng)了構(gòu)建性能基線的計(jì)劃。通過(guò)周期性的在隔離環(huán)境進(jìn)行基線壓測(cè),及時(shí)發(fā)現(xiàn)應(yīng)用的性能問(wèn)題,盡早發(fā)現(xiàn),盡早解決,避免了性能問(wèn)題遺留到大促前,大大降低了系統(tǒng)的性能風(fēng)險(xiǎn)。
隔離環(huán)境(強(qiáng)調(diào)性能基線) 何在白天不干擾線上業(yè)務(wù)進(jìn)行常態(tài)化的集群壓測(cè)一直是性能基線的難點(diǎn),opm提供隔離環(huán)境,使線上集群壓測(cè)能夠常態(tài)化的進(jìn)行。
首先系統(tǒng)系統(tǒng)自動(dòng)化的隔離一堆機(jī)器,隔離的環(huán)境與線上系統(tǒng)邏輯隔離,壓測(cè)流量自動(dòng)引流至隔離環(huán)境。當(dāng)壓測(cè)結(jié)束時(shí),隔離機(jī)器自動(dòng)歸還給線上環(huán)境,一鍵恢復(fù)
性能基線與趨勢(shì): 通過(guò)持續(xù)的基線壓測(cè)和基線管理,可以全局查看應(yīng)用的性能以及變化趨勢(shì),并對(duì)基線壓測(cè)過(guò)程中發(fā)現(xiàn)的問(wèn)題進(jìn)行跟蹤和解決。使應(yīng)用的性能瓶頸在日常的基線壓測(cè)就發(fā)現(xiàn)和解決,避免了再大促全鏈路壓測(cè)時(shí)才發(fā)現(xiàn),降低了系統(tǒng)的風(fēng)險(xiǎn)。
2017年,我們?nèi)〉玫男Ч?/strong>
1. 人力成本:從之前多個(gè)人協(xié)同負(fù)責(zé)一個(gè)系統(tǒng)壓測(cè),開(kāi)始轉(zhuǎn)變成一個(gè)人可以慢慢負(fù)責(zé)一條鏈路的壓測(cè)
2. 壓測(cè)準(zhǔn)備時(shí)長(zhǎng):從每次壓測(cè)需要提前幾天的準(zhǔn)備到隨時(shí)隨刻可以進(jìn)行全鏈路壓測(cè)
3. 不確定性到確定性:下游業(yè)務(wù)每次評(píng)估壓測(cè)流量從收集信息,靠猜的不確定性到系統(tǒng)給出結(jié)果流量的確定性
適用場(chǎng)景
1.適用壓測(cè)模型:入口分散,有統(tǒng)一收口的壓測(cè)模型
2. 隔離環(huán)境與性能基線:常態(tài)化的支撐線上性能壓測(cè)
3. 復(fù)雜系統(tǒng)的流量模型管控:壓測(cè)鏈路上千場(chǎng)景的流量模型管控