您好,登錄后才能下訂單哦!
這篇文章主要介紹“服務(wù)器壓測(cè)環(huán)境設(shè)計(jì)和搭建的方法是什么”,在日常操作中,相信很多人在服務(wù)器壓測(cè)環(huán)境設(shè)計(jì)和搭建的方法是什么問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”服務(wù)器壓測(cè)環(huán)境設(shè)計(jì)和搭建的方法是什么”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
1.1 系統(tǒng)邏輯架構(gòu)
系統(tǒng)邏輯架構(gòu),即組成系統(tǒng)的組建,應(yīng)用之間的結(jié)構(gòu),交互關(guān)系的抽象。最簡(jiǎn)單最基本的就是三層架構(gòu)。
三層邏輯結(jié)構(gòu)圖
客戶層:用戶請(qǐng)求端。
web層:處理客戶端所有的業(yè)務(wù)請(qǐng)求邏輯和服務(wù)端數(shù)據(jù)。
數(shù)據(jù)庫(kù)層:維護(hù)業(yè)務(wù)系統(tǒng)的數(shù)據(jù)。
更復(fù)雜的邏輯結(jié)構(gòu)說(shuō)明:
邏輯架構(gòu)中的任意一層,有可能是在獨(dú)立的物理集群機(jī)器上,也有可能跨多個(gè)物理機(jī)器或者跟其他邏輯層共享同一個(gè)物理集群。
邏輯架構(gòu)間的箭頭是數(shù)據(jù)流,不是物理網(wǎng)絡(luò)連接。
1.2 物理架構(gòu)
下圖為物理架構(gòu)圖。
1.3 硬件、軟件和網(wǎng)絡(luò)
軟件:環(huán)境中涉及到哪里基礎(chǔ)軟件、中間件。
硬件:實(shí)體機(jī)/虛擬機(jī),單機(jī)配置(CPU、內(nèi)存、硬盤大小),集群規(guī)模。
網(wǎng)絡(luò):內(nèi)網(wǎng)還是外網(wǎng),網(wǎng)絡(luò)帶寬,是否有跨網(wǎng)段問(wèn)題,是否隔離。
軟件中對(duì)系統(tǒng)使用到的中間件有一個(gè)了解,不僅可以幫助設(shè)計(jì)更仿真的壓測(cè)環(huán)境,也有助于在壓測(cè)過(guò)程中,加快瓶頸,問(wèn)題的定位和解決。
2.1 對(duì)比表格
不管哪種壓測(cè)環(huán)境方案,在落地成本,滿足需求程度上都有區(qū)別,接下來(lái)對(duì)幾種壓測(cè)環(huán)境結(jié)合在阿里的應(yīng)用進(jìn)行介紹。
既然是低配環(huán)境,壓出來(lái)的數(shù)據(jù)似乎完全不能用作生產(chǎn)環(huán)境運(yùn)行的參考,但實(shí)際上,這種環(huán)境下的壓測(cè),也是非常重要的一環(huán)。主要體現(xiàn)在項(xiàng)目研發(fā)階段的價(jià)值上。
3.1 價(jià)值
新應(yīng)用上線前,應(yīng)用代碼本身的瓶頸發(fā)現(xiàn)。代碼本身的性能問(wèn)題,例如連接未釋放,線程數(shù)過(guò)多,通過(guò)低配的環(huán)境,一定時(shí)長(zhǎng)的壓測(cè)完全可以提前發(fā)現(xiàn)很多。
應(yīng)用維度基線數(shù)據(jù)。跑出來(lái)的數(shù)據(jù)不能給線上做參考,但是如果每次迭代,發(fā)布前,都在同一套低配環(huán)境運(yùn)行性能壓測(cè),跟低配基線數(shù)據(jù)進(jìn)行對(duì)比,也能起到衡量系統(tǒng)迭代的時(shí)候,性能是否有提升或者下降的參考。
幫助研發(fā)進(jìn)行快速的性能調(diào)優(yōu)。系統(tǒng)越復(fù)雜的時(shí)候,發(fā)生性能問(wèn)題后定位的難度會(huì)指數(shù)增加。進(jìn)行過(guò)性能調(diào)優(yōu)的研發(fā)都有體會(huì),有時(shí)候調(diào)優(yōu),就是改一個(gè)配置,然后重新部署,跑壓測(cè),看結(jié)果是不是改善了,直到找到最佳的配置。這個(gè)過(guò)程如果不能輕量起來(lái),對(duì)于研發(fā)調(diào)優(yōu)就是噩夢(mèng)。
3.2 問(wèn)題
構(gòu)建低配環(huán)境,可以是普通的測(cè)試環(huán)境,跟線上完全隔離。但是要解決以下問(wèn)題:
壓測(cè)會(huì)影響測(cè)試環(huán)境的功能測(cè)試。這一點(diǎn)很容易理解。壓力大了,可能影響同一套測(cè)試環(huán)境的功能測(cè)試結(jié)果,所以性能壓測(cè)環(huán)境最好獨(dú)立。
依賴的基礎(chǔ)應(yīng)用在性能測(cè)試中沒(méi)有。例如要壓測(cè)的目標(biāo)業(yè)務(wù)是發(fā)貼,肯定會(huì)依賴到用戶相關(guān)的業(yè)務(wù),用戶中心就是一個(gè)基礎(chǔ)應(yīng)用(當(dāng)然很多小型公司可能沒(méi)獨(dú)立這塊業(yè)務(wù))。
研發(fā)階段無(wú)法快速部署要壓的分支。有一點(diǎn)規(guī)模的互聯(lián)網(wǎng)公司,一周的迭代,同一個(gè)應(yīng)用可能會(huì)有多個(gè)分支,需要支持快速部署指定的分支到性能環(huán)境。
3.3 方案
阿里內(nèi)部有一套完整的系統(tǒng)用于支撐阿里內(nèi)部每日成千上萬(wàn)的研發(fā)階段的性能壓測(cè)需求。
4.1 挑戰(zhàn)
容量規(guī)劃是一個(gè)持續(xù)的過(guò)程,如何減少人力投入,如何才能“無(wú)人值守”。
成本和效果平衡:盡量貼近線上運(yùn)行環(huán)境,同時(shí)容量規(guī)劃的數(shù)據(jù)對(duì)線上容量布置有很好的指導(dǎo)作用。
完全獨(dú)立不影響線上。
隨時(shí)可運(yùn)行,結(jié)果可跟蹤。
4.2 問(wèn)題
容量規(guī)劃不是直接在生產(chǎn)環(huán)境進(jìn)行的,因?yàn)樯a(chǎn)環(huán)境的最終容量配比,是參考自容量規(guī)劃產(chǎn)出的數(shù)據(jù)。在生產(chǎn)環(huán)境進(jìn)行的壓測(cè),是最后的驗(yàn)收階段,在容量規(guī)劃完成之后。
提供一套獨(dú)立的的生產(chǎn)環(huán)境子集-隔離環(huán)境,用于容量規(guī)劃要解決的問(wèn)題:
構(gòu)建的環(huán)境集如何定義,規(guī)模和架構(gòu)如何貼近線上。
流量如何走到隔離環(huán)境。
隔離環(huán)境寫的數(shù)據(jù)是否需要清理,如何清理?
4.3 方案
阿里容量規(guī)劃的技術(shù)演進(jìn),可參考文后資料了解詳情[1]
現(xiàn)在隔離環(huán)境就是最新容量規(guī)劃生態(tài)中的重要基礎(chǔ)。隔離環(huán)境的支持,才能支撐常態(tài)化的容量規(guī)劃運(yùn)行,持續(xù)不斷的改進(jìn)。
首先,提煉機(jī)器比例?;诰€上核心應(yīng)用的現(xiàn)有規(guī)模情況,提煉出一個(gè)縮小版的完全模型。即線上機(jī)器之間的比可能是5000:2000:1000,整體比例縮放100倍,在隔離環(huán)境的機(jī)器比是50:20:10。使用這種方式,有效的保證了同線上機(jī)器同比例,同時(shí)成本上做了很好的控制。
其次,確定隔離目標(biāo)流量。根據(jù)接下來(lái)線上的目標(biāo)流量大小,同比例計(jì)算出隔離環(huán)境應(yīng)該支撐的流量,作為隔離環(huán)境打壓測(cè)流量時(shí)的目標(biāo)流量。
然后,通過(guò)壓測(cè)流量從小到目標(biāo)流量探索,邊壓邊彈。
最后,收集隔離環(huán)境達(dá)到目標(biāo)流量后,新的機(jī)器比例及數(shù)據(jù)。應(yīng)用間的比例關(guān)系很可能已經(jīng)有了改變,有的應(yīng)用可能縮容,有的應(yīng)用可能擴(kuò)容,作為線上機(jī)器關(guān)系的參考。
當(dāng)然這里面的涉及的技術(shù)細(xì)節(jié)還有很多:
全鏈路壓測(cè)新應(yīng)用:整個(gè)壓測(cè)流量其實(shí)是沿用了線上壓測(cè)的全鏈路壓測(cè)機(jī)制,帶流量標(biāo),數(shù)據(jù)落影子庫(kù)的方式, 所以隔離環(huán)境寫的數(shù)據(jù)不需要特殊的處理。
環(huán)境標(biāo)隔離環(huán)境:流量同時(shí)會(huì)帶上一個(gè)“環(huán)境標(biāo)”,通過(guò)環(huán)境標(biāo)的識(shí)別,接入層會(huì)把流量導(dǎo)到隔離環(huán)境,從而做到流量的環(huán)境隔離。
PTS首創(chuàng)"RPS"模式施壓:在系統(tǒng)整體的流量數(shù)據(jù)獲取上,我們摒棄了一直依賴備受追捧的"并發(fā)量"的方式。眾所周知,業(yè)務(wù)提出來(lái)的目標(biāo)一般會(huì)是,"希望峰值支持xxxx個(gè)用戶登陸"這種,進(jìn)行容量規(guī)劃的時(shí)候需要將并發(fā)的用戶數(shù)跟系統(tǒng)能承受的QPS,進(jìn)行一個(gè)映射關(guān)系。我們?nèi)萘恳?guī)劃就直接使用阿里云壓測(cè)平臺(tái)(PTS)的"RPS"模式,壓出來(lái)拿到的QPS數(shù)據(jù),直接是系統(tǒng)維度的數(shù)據(jù),不用轉(zhuǎn)換,這樣也更減少了轉(zhuǎn)換過(guò)程中的失真。
邊壓邊彈技術(shù):在隔離環(huán)境壓測(cè)中,何時(shí)彈新機(jī)器,彈多少機(jī)器,整個(gè)過(guò)程如何控制,這里面包含了一整套完整精密的算法。整個(gè)過(guò)程示意圖如下。
5.1 挑戰(zhàn)
生產(chǎn)環(huán)境復(fù)制版面臨的挑戰(zhàn)非常多:
其中,如果要對(duì)生產(chǎn)環(huán)境進(jìn)行完全的復(fù)制,將要面臨以下挑戰(zhàn):
復(fù)制生產(chǎn)環(huán)境服務(wù)器的架構(gòu)
復(fù)制生產(chǎn)環(huán)境網(wǎng)絡(luò)基礎(chǔ)環(huán)境
復(fù)制生產(chǎn)環(huán)境的所有應(yīng)用分層
網(wǎng)絡(luò)帶寬
數(shù)據(jù)庫(kù)以及所有的基礎(chǔ)數(shù)據(jù)集
......
5.2 問(wèn)題
對(duì)于傳統(tǒng)時(shí)代的壓測(cè)工程師來(lái)說(shuō),這樣一系列的操作,就是新搭建一套“影子系統(tǒng)”了,看起來(lái)有點(diǎn)像不可能完成的任務(wù)。要完成上述任務(wù),壓測(cè)工程師面臨巨大的挑戰(zhàn):
溝通協(xié)調(diào)幾乎所有的技術(shù)部門(開(kāi)發(fā)、運(yùn)維、網(wǎng)絡(luò)、IT...);
如果即用即銷毀,那么勞民損財(cái)只用個(gè)一兩次,成本太大;
如果持續(xù)維護(hù),那么維護(hù)成本顯然同樣不可忽略;
所以我們很少看到有公司進(jìn)行這樣的“生產(chǎn)環(huán)境復(fù)制”操作。小型公司可能沒(méi)那么多人力實(shí)現(xiàn),大中型公司,成本就更加難以接受了。但是現(xiàn)在云化趨勢(shì)的潮流中,這種方案開(kāi)始體現(xiàn)出優(yōu)其越性了。
5.3 方案
我們先看一下阿里云的產(chǎn)品架構(gòu)圖。
產(chǎn)品服務(wù)非常豐富,但是不太利于我們理解和復(fù)制線上環(huán)境用于壓測(cè)這個(gè)主題。具體到某一個(gè)場(chǎng)景的系統(tǒng)在阿里云的落地:
網(wǎng)友的云產(chǎn)品架構(gòu)總結(jié),可參考文后資料了解詳情
搭建一個(gè)云上應(yīng)用的最小集應(yīng)該需要用到:
SLB-用來(lái)負(fù)載均衡;
ECS-用來(lái)部署業(yè)務(wù)應(yīng)用;
RDS-用來(lái)存儲(chǔ)業(yè)務(wù)數(shù)據(jù);
如果要在阿里云上復(fù)制以上線上系統(tǒng)。
step1 購(gòu)買跟線上集群同規(guī)模同配置的ECS,部署應(yīng)用;
step2 復(fù)制線上RDS;
step3 SLB配置新入口,指向復(fù)制環(huán)境;
step4 開(kāi)始線上壓測(cè);
在阿里云進(jìn)行生產(chǎn)環(huán)境復(fù)制有以下優(yōu)勢(shì):
操作便捷??梢暬缑?,系統(tǒng)所需要的組建配置安裝即可。插播一下,阿里云上的壓測(cè)服務(wù)PTS將來(lái)有機(jī)會(huì)提供一鍵搭建和銷毀性能環(huán)境的功能,徹底解放壓測(cè)工程師。
架構(gòu)信息清晰。阿里云上有“架構(gòu)感知”的功能,可以直觀繪制除業(yè)務(wù)系統(tǒng)在阿里云上的整體架構(gòu),準(zhǔn)確直觀,壓測(cè)工程師不用再花很長(zhǎng)的時(shí)間梳理系統(tǒng)的架構(gòu),還面臨可能不準(zhǔn)確的問(wèn)題;
即用即毀,大大節(jié)約成本。復(fù)制一套線上環(huán)境,如果是足夠復(fù)雜的系統(tǒng),使用的組建多,流量大,成本問(wèn)題肯定要考慮。傳統(tǒng)時(shí)代搭建的成本本身就高,繼續(xù)維護(hù)和再搭建的成本同樣也高。但是云時(shí)代,就是點(diǎn)幾個(gè)按鈕搭建,點(diǎn)幾個(gè)按鈕銷毀的過(guò)程,按使用量付費(fèi),驗(yàn)證完就釋放,對(duì)于資源成本的浪費(fèi)可控性很好。
機(jī)器配比根據(jù)情況可自由調(diào)控:在阿里云上顯然也可以快捷進(jìn)行低配、同配生產(chǎn)環(huán)境子集復(fù)制,相對(duì)于非云化的系統(tǒng)同樣有明顯的優(yōu)勢(shì)。
阿里的全鏈路壓測(cè)技術(shù)已經(jīng)是很成熟,并且得到很廣泛的推廣的線上壓測(cè)技術(shù)?;ヂ?lián)網(wǎng)大大小小的公司均有落地,在此只概括為一個(gè)模型圖,想知道更多細(xì)節(jié)內(nèi)容的,讀者可以網(wǎng)上收集以下,有大量的文章詳細(xì)闡述了各自落地實(shí)施的過(guò)程。
以下是阿里經(jīng)典的全鏈路壓測(cè)模型圖。
經(jīng)過(guò)多年的發(fā)展,由全鏈路壓測(cè)系統(tǒng)演進(jìn)出可對(duì)阿里以外的企業(yè)提供跨行業(yè)的通用的性能壓測(cè)服務(wù)的系統(tǒng)PTS。目前PTS也提供流量隔離解決方案給外部企業(yè)使用。
到此,關(guān)于“服務(wù)器壓測(cè)環(huán)境設(shè)計(jì)和搭建的方法是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。