<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          全鏈路壓測(cè)體系建設(shè)方案的思考與實(shí)踐

          共 7074字,需瀏覽 15分鐘

           ·

          2021-07-03 17:11

          點(diǎn)擊上方“服務(wù)端思維”,選擇“設(shè)為星標(biāo)

          回復(fù)”669“獲取獨(dú)家整理的精選資料集

          回復(fù)”加群“加入全國服務(wù)端高端社群「后端圈」


          作者 | 周博
          出品 | 阿里巴巴中間件

          在阿里淘寶 雙11 的過程中,長期以來都是在生產(chǎn)環(huán)節(jié)做全鏈路壓測(cè)的,通過實(shí)踐我們發(fā)現(xiàn)在生產(chǎn)環(huán)境中做壓測(cè),實(shí)際上會(huì)和一個(gè) IT 組織的結(jié)構(gòu)、成熟度、流程等緊密相關(guān),所以我們把全鏈路壓測(cè)從簡單的制作范圍內(nèi)脫離出來,變成整個(gè)業(yè)務(wù)連續(xù)性的方案。

          本文分四個(gè)方面為大家闡述:第一,整個(gè)全鏈路壓測(cè)的意義,為什么要在生產(chǎn)環(huán)節(jié)上做全鏈路壓測(cè);第二,關(guān)于落地的技術(shù)點(diǎn)和解決方案;第三,生產(chǎn)過程中做全鏈路壓測(cè)流程上的建議,考慮到每個(gè)組織的承受度不一樣,給大家提供一些建議;第四,如何在第三方實(shí)現(xiàn)整個(gè)在生產(chǎn)環(huán)境中做業(yè)務(wù)連續(xù)性包括壓測(cè)的結(jié)果。


          全鏈路壓測(cè)的意義 

          ALIWARE




          上圖顯示了三個(gè)問題,實(shí)際上是不同的 IT 組織在和測(cè)試交流的時(shí)候,這三個(gè)問題是比較有代表性的。

          1. 很多測(cè)試同行說他們線下也做過性能測(cè)試,但是到了線上之后還是存在很多問題,因?yàn)椴惶赡軙?huì)在線下模擬一個(gè)跟線上 1:1 的環(huán)境。在有很多第三方接口的情況下,大家也很少會(huì)去模擬線上整個(gè)場(chǎng)景。因此我們?cè)诰€下做了很多測(cè)試工作后,總結(jié)出了為什么很多從線下容量推導(dǎo)到線上容量的公司卻最終效果不是很好,就是這樣的原因。

          2. 現(xiàn)在所有的 IT 組織都在搞 DevOps,我們的功能從一個(gè)月迭代一次到現(xiàn)在一周迭代一次,留給測(cè)試的時(shí)間越來越短。功能測(cè)試時(shí)間從之前的一周、兩周縮短到現(xiàn)在三四天、兩三天的時(shí)間,那性能測(cè)試就沒有辦法按時(shí)上線,很有可能會(huì)出現(xiàn)各種各樣的性能問題,這會(huì)直接影響到企業(yè)的品牌影響力。

          3. 平時(shí)線上水位比較低,很少達(dá)到高峰期,但是會(huì)出現(xiàn)一些突發(fā)情況。比如像去年的疫情使得很多公司的業(yè)務(wù)變成在線業(yè)務(wù)。比如教育行業(yè),之前是課堂上老師面對(duì)面的教育,現(xiàn)在選擇線上在線平臺(tái)來做,這類突發(fā)的情況會(huì)使測(cè)試工程師,包括開發(fā)運(yùn)維團(tuán)隊(duì)受到很大的困擾。在這之前我先介紹一個(gè)概念,這個(gè)概念是由《黑天鵝》的原作者 Nassim Nicholas Taleb 提出,概念中心是脆弱與反脆弱
          什么是脆弱?脆弱就像玻璃,大家知道玻璃很脆易碎。脆弱的反義詞是什么?不是強(qiáng)韌也不是堅(jiān)韌,可能是反脆弱。什么是反脆弱呢?比如乒乓球,大家知道乒乓球在地上不用很大的力就可以破壞掉,踩一腳就破壞掉了,但是高速運(yùn)動(dòng)的情況下,乒乓球我們施加的力度越大,它的反彈力度越大,說明乒乓球在運(yùn)動(dòng)過程中有反脆弱的特性。

          我們的 IT 系統(tǒng)實(shí)際上也是這樣的。不管什么代碼都不能保證是完全沒有問題的,我們的基礎(chǔ)設(shè)施可能也是脆弱的,像服務(wù)器、數(shù)據(jù)庫等總會(huì)有局限。我們的框架也總是脆弱的,將這些問題綜合在一起,我們希望通過某些手段,比如通過預(yù)案、風(fēng)險(xiǎn)的識(shí)別,或者通過一些熔斷的手段,最終把這些東西組合在一起,讓整個(gè) IT 系統(tǒng)有反脆弱的特性。總之,我們希望通過一些手段使得 IT 系統(tǒng)有足夠的冗余,而且有足夠多的預(yù)案應(yīng)對(duì)突發(fā)的不確定性風(fēng)險(xiǎn)。


          如何打造 IT 系統(tǒng)反脆弱能力呢?我們希望通過一些手段,比如說像線上的壓測(cè)能力,提供不確定的因素,接著通過在這個(gè)過程中實(shí)時(shí)監(jiān)控,包括預(yù)案的能力,最終把這些不確定性的因素識(shí)別出來,并且在線上生產(chǎn)壓測(cè)過程中對(duì)它做一些處理,更多可能會(huì)通過事后復(fù)盤等方式,做到對(duì)不確定性因素的識(shí)別。接著我們可能會(huì)在生產(chǎn)環(huán)境中通過之前的手段,在生產(chǎn)環(huán)境上做一個(gè)穩(wěn)定性的常態(tài)化壓測(cè),實(shí)現(xiàn)長期穩(wěn)定的場(chǎng)景,最終我們可能達(dá)到反脆弱能力所需要的整體監(jiān)控的能力、運(yùn)營防護(hù)能力,以及管控路由能力,這會(huì)讓整個(gè) IT 系統(tǒng)具備反脆弱的特性。



          全鏈路壓測(cè)解決方案

          ALIWARE



          如何在生產(chǎn)環(huán)境上做全鏈路壓測(cè)?它需要用到哪些技術(shù)手段?

          1

          壓測(cè)進(jìn)程演變



          一般情況下,測(cè)試是怎么樣從線下一點(diǎn)點(diǎn)往線上演變的?我把它分為四個(gè)階段:

          1. 目前絕大多數(shù) IT 可以做到的是線下單系統(tǒng)壓測(cè),即針對(duì)單個(gè)接口或者單個(gè)場(chǎng)景做壓測(cè),同時(shí)也會(huì)做系統(tǒng)分析和性能分析。但在復(fù)雜的業(yè)務(wù)場(chǎng)景之下,我們可能沒辦法去充分發(fā)現(xiàn)問題,很多都是由開發(fā)或者測(cè)試同學(xué)自發(fā)進(jìn)行的活動(dòng)。

          2. 我們成立了一個(gè)類似于測(cè)試實(shí)驗(yàn)室或者測(cè)試組織的機(jī)構(gòu),這樣一個(gè)大的部門可能會(huì)構(gòu)造出一批類似于生產(chǎn)環(huán)境的性能測(cè)試環(huán)境,在這上面我們可能會(huì)做更多的事情,比如說做一個(gè)線下環(huán)境的全鏈路壓測(cè),并且我們可以根據(jù)之前積累的經(jīng)驗(yàn)在上面做一些線下的回歸,包括性能的診斷等。其實(shí)這一步相當(dāng)于整個(gè)測(cè)試往前再走一步,對(duì)測(cè)試環(huán)境中的鏈路做一些分析,在上面演變一些能力,比如說風(fēng)險(xiǎn)的控制等等。

          3. 目前絕大部分 IT 企業(yè)和互聯(lián)網(wǎng)企業(yè)愿意嘗試線上生產(chǎn)環(huán)境的業(yè)務(wù)壓測(cè)。這部分實(shí)際上和之前的第二階段相差不多,但是在這個(gè)過程中人為的把它分為了兩層:第一層是單純的做全鏈路壓測(cè),很多 IT 公司已經(jīng)在非生產(chǎn)環(huán)節(jié)中做了只讀業(yè)務(wù)的壓測(cè),因?yàn)檫@樣不會(huì)對(duì)數(shù)據(jù)造成污染。而再往下一層 ,有些組織可能會(huì)在正常生產(chǎn)時(shí)段做進(jìn)一步的全鏈路壓測(cè),這種情況下我們就會(huì)要求這個(gè)組織擁有更高的能力

          比如說我們需要對(duì)整個(gè)壓測(cè)流量做一些染色,能夠區(qū)分出來正常的業(yè)務(wù)數(shù)據(jù),正常的流量和非正常的壓測(cè)流量,可能有的會(huì)做一些環(huán)境的隔離,而在業(yè)務(wù)生產(chǎn)期間內(nèi)我們做生產(chǎn)的壓測(cè),需要考慮到整個(gè)流量的偏移、限流,包括熔斷機(jī)制等。不管怎樣做業(yè)務(wù),可能都會(huì)對(duì)最終的生產(chǎn)業(yè)務(wù)造成一定的影響,真正出現(xiàn)問題的時(shí)候可能需要有快速的熔斷機(jī)制。

          4. 做到壓縮熔斷渲染,包括對(duì)熔斷的機(jī)制——有了這樣的能力之后,最后一個(gè)階段就是整個(gè)生產(chǎn)鏈路的全鏈路壓測(cè),包括讀寫,它就具備了基本能力。這個(gè)方面我們其實(shí)更多的是通過引入庫表,加上技術(shù)手段,在這個(gè)生產(chǎn)上做全鏈路壓測(cè),包括讀業(yè)務(wù)、寫業(yè)務(wù)等,同時(shí)我們有系統(tǒng)故障演練和生產(chǎn)變更演練的能力,在這種情況下我們可能最終具備了數(shù)據(jù)隔離能力、監(jiān)控隔離能力和日志隔離能力。

          2

          全鏈路壓測(cè)關(guān)鍵技術(shù)



          對(duì)于整個(gè)全鏈路壓測(cè)來說,我們需要幾個(gè)關(guān)鍵的技術(shù):


          • 全鏈路流量染色

          可能通過在壓縮機(jī)上做一些標(biāo)識(shí),比如加一個(gè)后綴,或者通過一些標(biāo)識(shí)手段把流量讀出來,分散到相關(guān)的表里去。同時(shí)在全鏈路流量展示過程中我們還需要做流量的識(shí)別,對(duì)于壓測(cè)流量經(jīng)過的每一個(gè)中間件,每一個(gè)服務(wù)我們都希望能夠準(zhǔn)確的識(shí)別出來,這個(gè)流量是來自于壓測(cè)機(jī)還是來自于正常流量,這是第一步。


          • 全鏈路的數(shù)據(jù)隔離

          我們需要通過哪些手段,比如通過影子庫,通過運(yùn)維的同學(xué)做一個(gè)和生產(chǎn)上面同樣的影子庫,然后切到影子庫上,或者在生產(chǎn)庫上做一個(gè)相同的影子表,來做數(shù)據(jù)隔離。第一種方式安全度高一些,但是缺點(diǎn)在于我們用影子庫的時(shí)候整個(gè)生產(chǎn)環(huán)境是不可用的。生產(chǎn)影子庫不能完全模擬出整個(gè)線上的情況,因?yàn)橛白颖硇枰覀冇懈叩募夹g(shù)水平,能夠保障整個(gè)鏈路可追蹤,包括整個(gè)數(shù)據(jù)如果一旦出錯(cuò)數(shù)據(jù)恢復(fù)能力等等。


          • 全鏈路風(fēng)險(xiǎn)管控機(jī)制
          也就是風(fēng)險(xiǎn)熔斷機(jī)制,一旦真的發(fā)現(xiàn)生產(chǎn)環(huán)境的線上壓測(cè)對(duì)我們的業(yè)務(wù)造成了影響,我們需要通過一些規(guī)則或者其他的指標(biāo)來自動(dòng)觸發(fā)風(fēng)險(xiǎn)熔斷,包括管控等等這樣的手段,不管是提供施壓機(jī)的流量,還是把生產(chǎn)系統(tǒng)損壞的部分做業(yè)務(wù)隔離,這樣的手段都是我們做生產(chǎn)過程中全鏈路壓測(cè)的必要手段。

          • 全鏈路日志日志隔離
          其實(shí)日志本身不會(huì)對(duì)全鏈路造成太大的影響,但是因?yàn)樽鰯?shù)字化水平的提升,日志基本上是BI同學(xué)包括運(yùn)營的同學(xué)對(duì)整個(gè)業(yè)務(wù)分析最重要的數(shù)據(jù)來源,如果我們不做日志隔離很有可能會(huì)對(duì) BI 決策造成一定的影響,比如壓測(cè)過程中我們會(huì)大量采用某個(gè)地域的流量對(duì)生產(chǎn)環(huán)境做訪問,BI 的同學(xué)可能會(huì)通過日志分析發(fā)現(xiàn)某一個(gè)地區(qū)做大,導(dǎo)致他錯(cuò)誤的運(yùn)營決策,所以說對(duì)于生產(chǎn)過程中的全鏈路壓測(cè)來說,我們需要在整個(gè)生產(chǎn)過程中做一定的日志隔離,區(qū)分出來正常的生產(chǎn)流量和壓測(cè)流量之間的存儲(chǔ)。

          3

          全鏈路壓測(cè)和業(yè)務(wù)連續(xù)性平臺(tái)核心功能



          這部分是真正想作為全鏈路壓測(cè)和業(yè)務(wù)連續(xù)性平臺(tái)所需要的功能。

          1. 首先是有來自于全地域的壓測(cè)流量工具,這個(gè)流量工具具備的功能包括全地域流量挖掘、流量改造相關(guān)的功能。
          2. 整個(gè)壓測(cè)識(shí)別,包括影子存儲(chǔ)一部分的功能。黃色的部分是正常流量,藍(lán)色的部分是壓測(cè)的流量,我們可能通過施壓機(jī)的改造讓藍(lán)色的部分加入一些標(biāo)識(shí),通過 Agent 的技術(shù),它可以標(biāo)識(shí)出帶有的流量,通過底層的 Agent 技術(shù)將這些落到相應(yīng)的影子庫或者影子表里去,或者是緩存的影子區(qū)里。
          3. 做熔斷的規(guī)則管理,所以需要有合理的控制臺(tái),這里可能會(huì)做一些安裝探針管理,包括整個(gè)架構(gòu)的管理、庫表的維護(hù)、規(guī)則的維護(hù)、熔斷機(jī)制的維護(hù)等。
          4. 最后是真正的施壓部分。這里可能會(huì)安裝一些探針或者是 Agent,這些 Agent 的作用是能夠讓這些流量落到相應(yīng)的影子表里去,還有是通過相應(yīng)的監(jiān)控指標(biāo),比如說我們的錯(cuò)誤達(dá)到 1%,或者是檢查時(shí)間超過了一定的閾值之后,Agent 會(huì)及時(shí)上報(bào),通過規(guī)則配置起到限流的作用。

          通過這套架構(gòu),我們現(xiàn)在可以做到目前比按照整體環(huán)境大約節(jié)省成本是 40%左右,基本上對(duì)整個(gè)生產(chǎn)業(yè)務(wù)沒有任何切入。


          4

          全鏈路壓測(cè)風(fēng)險(xiǎn)防控能力



          下面來具體談一談如何做一個(gè)影子數(shù)據(jù)庫,包括整個(gè)流量識(shí)別。

          橙色的部分是真正的壓測(cè)流量,這部分我們會(huì)在施壓機(jī)上做一個(gè)標(biāo)識(shí),現(xiàn)在是會(huì)加一個(gè)后綴。另外還會(huì)在服務(wù)器做 filter,它其實(shí)是攔截器,我們會(huì)攔截到流量里面相關(guān)的標(biāo)識(shí),然后把它做區(qū)分、做染色,并且做跟蹤,每一個(gè)請(qǐng)求基本上可以真正做到在任何中間件以及項(xiàng)目堆里都是透明可見的。

          真正在壓測(cè)過程中通過 Agent 字節(jié)碼結(jié)束將它直接改寫,將字節(jié)的條件替換成壓縮的條件。當(dāng)然要先把影子庫建好,通過底層的追蹤我們可以把相應(yīng)的流量,如果數(shù)據(jù)庫就會(huì)走得比較明確,之后我們會(huì)做流量的測(cè)試,看看是否比較明確,而且我們可以做到整個(gè)測(cè)試數(shù)據(jù)帶有標(biāo)識(shí),一旦真的沒有走到診斷里面去,我們也可以在正常的表里做刪除,并且每一個(gè)經(jīng)過的區(qū)域?qū)ξ覀儊碚f都是可見的。

          通過這樣的方式,目前絕大部分 IT 組織是分三個(gè)階段,當(dāng)然有一些非常成熟的是分為兩個(gè)階段:

          1. 在上線之前發(fā)現(xiàn)問題,大多是由線下的開發(fā)或者測(cè)試調(diào)試過程中發(fā)現(xiàn)問題,然后做到整個(gè)接口的優(yōu)化,確保最后沒有代碼的問題,包括 DNS 問題。這類問題基本上是在線下的環(huán)境,開發(fā)的環(huán)境解決掉。
          2. 在部署過程中,我們會(huì)做第三方插件比如安全等等問題,但是目前隨著容器的發(fā)展,開發(fā)部署環(huán)境會(huì)被逐漸淡化掉。
          3. 在線上真正做生產(chǎn)環(huán)境的壓測(cè),這部分可能會(huì)做容量規(guī)劃或者是壓測(cè),其他像整個(gè)大環(huán)境,比如說 CDN 或者 DNS,或者是整個(gè)線上系統(tǒng)容量評(píng)估等等問題。

          這些是我們目前在整個(gè)測(cè)試生命周期里希望在各個(gè)階段實(shí)現(xiàn)的目的。



          壓測(cè)流程的建議

          ALIWARE


          考慮到各個(gè)組織的成熟度不一樣,我們提供的這些建議不一定適用于所有的 IT 組織,但大家可以根據(jù)自身情況參考一下。

          我們一般為第三方實(shí)施全鏈路壓測(cè),線上生產(chǎn)壓測(cè),會(huì)經(jīng)歷五個(gè)階段:

          首先是和第三方一起梳理業(yè)務(wù)的階段,我們會(huì)做以下幾件事情:

          1.根據(jù)過往系統(tǒng)使用情況評(píng)估業(yè)務(wù)系統(tǒng)的性能指標(biāo)、容量指標(biāo);
          2.對(duì)現(xiàn)有信息系統(tǒng)做系統(tǒng)架構(gòu)的梳理,確定整個(gè)被染色流量的路徑途徑;
          3.對(duì)壓測(cè)時(shí)長,包括間隔等做溝通,確認(rèn)相關(guān)的壓測(cè)場(chǎng)景設(shè)計(jì);
          4.生產(chǎn)數(shù)據(jù)脫敏,如果有一部分涉及到生產(chǎn)數(shù)據(jù)可能會(huì)做生產(chǎn)數(shù)據(jù)的脫敏等相關(guān)工作。

          這部分做完是做第二部分,對(duì)某些應(yīng)用進(jìn)行改造。比如說做流量打標(biāo)工作,通過監(jiān)控的流量確定業(yè)務(wù)系統(tǒng),可能在業(yè)務(wù)系統(tǒng)里會(huì)做相關(guān)監(jiān)控的接入,相關(guān)的第三方組件會(huì)進(jìn)行 Mock,整個(gè)壓測(cè)場(chǎng)景的創(chuàng)建會(huì)和第三方溝通好。包括流量表建設(shè)和預(yù)案等等接入。

          三是整個(gè)壓測(cè)的過程,整個(gè)生產(chǎn)狀態(tài)下的全鏈路壓測(cè),會(huì)對(duì)整個(gè)系統(tǒng)進(jìn)行性能優(yōu)化及容量評(píng)估。

          四是將線上全鏈路壓測(cè)常態(tài)化,這里面會(huì)有一些事情,比如說限流、降級(jí)、混沌工程驗(yàn)收,包括生產(chǎn)發(fā)布的事情。

          五是對(duì)于整個(gè)活動(dòng)做復(fù)盤,看應(yīng)急預(yù)案是否生效,還有哪些地方需要優(yōu)化,這是生產(chǎn)環(huán)節(jié)全鏈路壓測(cè)的生命周期。

          我們現(xiàn)在做一些更深入的東西,整個(gè)開發(fā)過程中,目前大家都使用 DevOps,可能單接口的性能測(cè)試在過程中就已經(jīng)用到了,目前我們給企業(yè)打造的都包含了接口級(jí)別的單機(jī)性能測(cè)試,使用單機(jī)測(cè)試工具,在發(fā)布過程中開始驗(yàn)收單接口的性能問題,保證這個(gè)接口發(fā)到線上不會(huì)有代碼級(jí)別錯(cuò)誤,最終會(huì)省掉集成壓測(cè)包括測(cè)試環(huán)境中壓測(cè)的步驟,直接走到線上壓測(cè)這個(gè)過程。單接口階段我們會(huì)支持相應(yīng)主流的框架壓測(cè),目前我們也在不斷做測(cè)試環(huán)境集群的壓測(cè)支持,還是希望直接用戶跳過這個(gè)步驟開始在線上直接做流量隔離的壓測(cè)。


          上圖是我們認(rèn)為一個(gè)完整的業(yè)務(wù)連續(xù)性平臺(tái)需要的功能。

          1.壓測(cè)流量發(fā)起的控制臺(tái),流量發(fā)起端,這塊實(shí)際上是管理整個(gè)壓測(cè)流量和場(chǎng)景設(shè)計(jì);
          2.流量隔離控制臺(tái),這部分希望能夠做到統(tǒng)一切流,當(dāng)出現(xiàn)問題的時(shí)候可以一下把壓測(cè)流量切掉,統(tǒng)一路由;
          3.壓測(cè)過程中有整個(gè)流量監(jiān)控包括系統(tǒng)監(jiān)控;壓測(cè)過程中對(duì)于整個(gè)應(yīng)用的性能監(jiān)控平臺(tái),包括鏈路監(jiān)控、JVM 監(jiān)控、組件監(jiān)控等等;
          4.真正的混沌工程,包括流控規(guī)則、隔離規(guī)則、降級(jí)規(guī)則等等平臺(tái),這里會(huì)維護(hù)相應(yīng)的規(guī)則。

          最終我們希望這個(gè)平臺(tái)能夠達(dá)到的目的是:隨時(shí)隨地以低成本實(shí)現(xiàn)全鏈路壓測(cè);對(duì)于運(yùn)維平臺(tái)可以進(jìn)行周期性的故障演練,并把這種能力給運(yùn)維團(tuán)隊(duì),讓他們隨時(shí)隨地發(fā)起變更;為整個(gè)上線活動(dòng)包括大促做一些兜底,可以避免突發(fā)活動(dòng)擊穿。因?yàn)殚L期固化生產(chǎn)壓測(cè)會(huì)為我們帶來容量和水位的極限,在演練過程中進(jìn)行預(yù)案的實(shí)施,突發(fā)過程中會(huì)有更好的手段去避免,去做防護(hù)。

          以阿里為例,現(xiàn)在基本上可以做到以按月為主,因?yàn)榇蠹抑捞詫毭總€(gè)月都有活動(dòng),每年有三個(gè)大活動(dòng):6.18、雙11、雙12。我們目前可以做小的演練,以周為實(shí)施單位做 雙11、雙12 或者 6.18 的大促,而且我們可以很清晰的組織 BU 內(nèi)或者跨 BU 的壓測(cè)活動(dòng),并能夠很明確擴(kuò)容方案。



          客戶案例

          ALIWARE



          下面是我們給第三方的實(shí)施案例。

          • 案例一

          “四通一達(dá)”的案例接入,我們對(duì)他們的系統(tǒng)進(jìn)行了應(yīng)用的分解,最開始確認(rèn)的壓縮場(chǎng)景大概有 4 個(gè),后來通過流量渲染、流量染色、流量跟蹤發(fā)現(xiàn)整個(gè)染色大概有 23 個(gè),通過線上建立影子表的方式,建完影子表之后通過小規(guī)模的流量染色,順著把整個(gè)影子庫、影子表的方案接入生產(chǎn)環(huán)境,并且在生產(chǎn)壓測(cè)過程中沒有造成任何影響,并且通過我們壓測(cè)的 23 個(gè)場(chǎng)景,在去年的 雙11 里沒有出現(xiàn)任何問題,包括爆倉或者是超單的現(xiàn)象出現(xiàn)。


          他們前年做這個(gè)事的時(shí)候,大概有 50 多個(gè)人花費(fèi)了四個(gè)月時(shí)間,他們維護(hù)了一套單獨(dú)環(huán)境,這個(gè)環(huán)境還是有一定的差別,上線之后還是出現(xiàn)了訂單積壓的現(xiàn)象,通過我們做全鏈路壓測(cè)了之后,現(xiàn)在基本上一個(gè)月時(shí)間用了 5 個(gè)核心骨干做了全鏈路壓測(cè),基本上已經(jīng)具備了隨時(shí)上線應(yīng)用,自己復(fù)制,做流量應(yīng)用、流量染色,測(cè)試的周期也是以天為單位,一個(gè)比較小的迭代上線基本上一天到兩天就可以完成整個(gè)線上的性能回歸。對(duì)于大的流量,雙11、雙12 大促活動(dòng)基本上一周時(shí)間就可以完成整個(gè)主鏈路的性能回歸,并且完全可以評(píng)估出目前生產(chǎn)環(huán)境的容量,包括擴(kuò)容、生產(chǎn)環(huán)境變更等等這樣的功能。

          • 案例二

          某美妝行業(yè)客戶,所有的系統(tǒng)基本上是由第三方開發(fā)的,沒有做過性能評(píng)估,基本什么都不知道,最關(guān)鍵的問題在于更換的幾次第三方導(dǎo)致整個(gè)應(yīng)用比較復(fù)雜,出現(xiàn)的問題是下線一個(gè)功能導(dǎo)致整個(gè)系統(tǒng)崩潰不能用。我們?cè)u(píng)估了一下,每一單成交之后硬件成本大概是 0.18 元,正好我在 2012 年就在淘寶做壓測(cè),他們這個(gè)指標(biāo)大概是 2014 年淘寶花費(fèi)的 9-10 倍,最關(guān)鍵的問題在于他們還有很多未知的風(fēng)險(xiǎn),比如說他們上線了一個(gè)新應(yīng)用,想做一個(gè)推廣,結(jié)果直接出了故障,導(dǎo)致秒殺系統(tǒng)崩潰了,基本上那個(gè)推廣活動(dòng)沒有起到任何效果。

          我們大概用一個(gè)多月的時(shí)間幫他們做線上環(huán)境,給他們梳理了 22 個(gè)核心鏈路,22 個(gè)系統(tǒng),大概 600 多臺(tái)服務(wù)器,我們花費(fèi)的時(shí)間,第一個(gè)生產(chǎn)鏈路建設(shè)的時(shí)間比較長,大概花了半個(gè)月左右的時(shí)間,后續(xù)是他們自己實(shí)施的,總共 22 條鏈路花了 55 天時(shí)間,把整個(gè)操作系統(tǒng)線上的容量全部厘清,在整個(gè)過程中我們沒有對(duì)生產(chǎn)環(huán)節(jié)的數(shù)據(jù)做污染,包括整個(gè)日志做了日志的隔離。在整個(gè)過程中我們本著共建的態(tài)度,幫助客戶建立了日常線上壓測(cè)的回歸機(jī)制。


          從短期收益來看,可能我們對(duì)應(yīng)用的服務(wù)器數(shù)量做了一些調(diào)整,把有些服務(wù)器從收益比較低的鏈路調(diào)整到收益比較高的鏈路上,最終把他們整個(gè)資源的消耗率降到了 20% 左右,并且我們做了全鏈路壓測(cè)之后,給他們做了一個(gè)基線,他們每次以這個(gè)基線為基礎(chǔ)做性能的迭代。

          目前他們已經(jīng)完全掌握了整個(gè)生產(chǎn)環(huán)境壓測(cè)的流程,每次上線基本上都可以按照自己的規(guī)劃來做。他們今年的目標(biāo)是要把整個(gè)服務(wù)器的資源降低至少 50% 左右,現(xiàn)在也正在為此而努力。

          — 本文結(jié)束 —


          ● 漫談設(shè)計(jì)模式在 Spring 框架中的良好實(shí)踐

          ● 顛覆微服務(wù)認(rèn)知:深入思考微服務(wù)的七個(gè)主流觀點(diǎn)

          ● 人人都是 API 設(shè)計(jì)者

          ● 一文講透微服務(wù)下如何保證事務(wù)的一致性

          ● 要黑盒測(cè)試微服務(wù)內(nèi)部服務(wù)間調(diào)用,我該如何實(shí)現(xiàn)?



          關(guān)注我,回復(fù) 「加群」 加入各種主題討論群。



          對(duì)「服務(wù)端思維」有期待,請(qǐng)?jiān)谖哪c(diǎn)個(gè)在看

          喜歡這篇文章,歡迎轉(zhuǎn)發(fā)、分享朋友圈


          在看點(diǎn)這里
          瀏覽 32
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲人成色77777在线播放 | 操逼做爱视频 | 日韩特级片 | 影音先锋图片资源网 | 国产精品永久久久久久久WWW |