“雙十一”即指每年的11月11日,由于日期特殊,因此又被稱為光棍節(jié)。而大型的電子網(wǎng)站一般會(huì)利用這一天來進(jìn)行一些大規(guī)模的打折促銷活動(dòng),以提高銷售額度。它們選擇“雙十一”促銷也是為了錯(cuò)開線下促銷的周期。國(guó)慶、圣誕、元旦都是實(shí)體店促銷的時(shí)間節(jié)點(diǎn),于是從國(guó)慶假期后至圣誕節(jié)前實(shí)體店會(huì)形成促銷的真空期,但是為了完成銷售任務(wù),商家必須提前在11月發(fā)力。從2009年11月11日,淘寶商城舉辦了第一屆雙十一促銷到現(xiàn)在,已經(jīng)舉辦了三屆,在2012年的“雙十一”購(gòu)物狂歡節(jié)總銷售額191億,今年的 “雙十一”購(gòu)物狂歡節(jié)預(yù)計(jì)銷售額會(huì)超過200億。
一個(gè)購(gòu)物網(wǎng)站要在一天處理完成超過1億筆的交易,淘寶是如何做到的呢?其實(shí),在網(wǎng)站簡(jiǎn)單的買賣交易背后,凝結(jié)了數(shù)千人默默無聞的運(yùn)維保障工作。除了要完成交易,還有更多的時(shí)間用戶是在瀏覽網(wǎng)站的商品,如果一個(gè)網(wǎng)頁(yè)點(diǎn)擊超過5秒才打開鏈接,這也將嚴(yán)重影響用戶的體驗(yàn),因此在確保買賣交易可以完成的同時(shí),還要在如此大的訪問量的情況下,保證用戶的購(gòu)物體驗(yàn),這不得不說是一項(xiàng)艱巨的任務(wù)。早在2012年,淘寶“雙十一”購(gòu)物狂歡節(jié)的一分鐘內(nèi)千萬級(jí)別訪問量涌入,導(dǎo)致購(gòu)物車和支付寶無法訪問。大家知道這時(shí)千萬級(jí)別的ID不僅僅是每個(gè)用戶的數(shù)據(jù),同時(shí)包括所購(gòu)買產(chǎn)品的數(shù)據(jù)、包括銀行系統(tǒng)的高并發(fā)訪問。瞬間海量數(shù)據(jù)的I/O,如此高的并發(fā)用戶訪問、檢索以及支付導(dǎo)致硬件工作負(fù)荷加大,自然就會(huì)形成自我保護(hù)性關(guān)閉或崩潰,從而使網(wǎng)站癱瘓。
“雙十一”期間淘寶網(wǎng)站的訪問量是平時(shí)的幾倍、甚至幾十倍,原有的數(shù)據(jù)中心性能是無法滿足的,而這種促銷就只有一天,淘寶又不可能大肆的擴(kuò)大數(shù)據(jù)中心規(guī)模而去保障這一天,這樣會(huì)造成大部分時(shí)間數(shù)據(jù)中心處于資源浪費(fèi)狀態(tài),因此只能從別的方面考慮優(yōu)化。從訪問量上來講,也就是在“雙十一”剛開始的幾分鐘流量最大,流量瞬間變大,后續(xù)的一天的時(shí)間流量基本都比較穩(wěn)定,一天過后流量大大下降。面對(duì)瞬間巨量的訪問,數(shù)據(jù)中心會(huì)進(jìn)行分流,淘寶的數(shù)據(jù)中心遍布全國(guó)各地,大量的數(shù)據(jù)訪問分多次、多地點(diǎn)進(jìn)行,可以實(shí)現(xiàn)多站點(diǎn)并行作業(yè),保證高并發(fā)的數(shù)據(jù)訪問。經(jīng)過3年的“雙十一”活動(dòng),淘寶已經(jīng)對(duì)突發(fā)的訪問量能夠做好預(yù)估,根據(jù)現(xiàn)有的數(shù)據(jù)中心處理性能,適當(dāng)?shù)卦黾右恍┡R時(shí)設(shè)備,啟用備用系統(tǒng),從而確保淘寶順利平穩(wěn)過渡“雙十一”。
在淘寶有一個(gè)應(yīng)用運(yùn)維團(tuán)隊(duì),即PE團(tuán)隊(duì)。PE團(tuán)隊(duì)負(fù)責(zé)淘寶網(wǎng)在線交易、廣告系統(tǒng)、數(shù)據(jù)平臺(tái)等應(yīng)用運(yùn)維系統(tǒng)技術(shù)部門,是為淘寶帶來高速增長(zhǎng)核心運(yùn)維團(tuán)隊(duì)。“雙十一”購(gòu)物節(jié)也給PE團(tuán)隊(duì)帶來了巨大壓力。基本上為了應(yīng)對(duì)“雙十一”購(gòu)物節(jié),PE團(tuán)隊(duì)提早就做足了準(zhǔn)備工作。比如包括:檢查全國(guó)各地?cái)?shù)據(jù)中心運(yùn)行負(fù)荷情況,以便在高峰流量到來時(shí)靈活分散訪問流量;增加備件,做好配置,大量的設(shè)備硬件出現(xiàn)故障不可避免,在關(guān)鍵業(yè)務(wù)設(shè)備做好備件,一旦出現(xiàn)故障及時(shí)更換,將故障時(shí)間控制在幾分鐘內(nèi);協(xié)調(diào)好各種設(shè)備的供應(yīng)商廠家工程師駐場(chǎng)待命,以便出現(xiàn)故障時(shí),和PE團(tuán)隊(duì)共同處理,減少中間的溝通環(huán)節(jié),縮短故障處理時(shí)間;啟動(dòng)這種應(yīng)急預(yù)案,對(duì)可能發(fā)生的突發(fā)情況進(jìn)行預(yù)判,制定響應(yīng)的方案;在“雙十一”之前進(jìn)行故障模擬演練,驗(yàn)證解決方案是否可行。在做好的充分準(zhǔn)備后迎接“雙十一”的到來。
在11·11購(gòu)物節(jié)的24小時(shí)里,PE團(tuán)隊(duì)的人員會(huì)時(shí)刻關(guān)注著淘寶網(wǎng)站的運(yùn)行情況。主要監(jiān)控三個(gè)方面的狀況:
一、是監(jiān)控業(yè)務(wù)層面。比如說本來每秒創(chuàng)建是2000筆的,現(xiàn)在突然一下降成500筆了,這就可能有問題了,再有可能訂單生成,有丟單等等,這些業(yè)務(wù)層面的問題會(huì)大大影響銷售額,這樣PE團(tuán)隊(duì)就會(huì)立即召集業(yè)務(wù)部門和軟件開發(fā)系統(tǒng)的人員公共分析問題原因。
二、是應(yīng)用系統(tǒng)監(jiān)控。檢查JVM跑的是否正常,是不是有頻繁的垃圾回收,反饋時(shí)間是否在200MS以內(nèi),一旦反饋時(shí)間超過200MS,則訪問網(wǎng)站的速度就會(huì)下降,如果超過500MS,則訪問網(wǎng)站的體驗(yàn)就會(huì)很差了。這時(shí)PE團(tuán)隊(duì)要系統(tǒng)軟件開發(fā)人員共同分析問題,找過故障點(diǎn)。
三、是基礎(chǔ)設(shè)施保障。這種基礎(chǔ)的包括網(wǎng)絡(luò)、服務(wù)器、存儲(chǔ)設(shè)備等。比如說我們的路由器是不是通的,我們的交換是不是有問題啊,DNS服務(wù)是不是有問題啊,等等。
“雙十一”購(gòu)物節(jié)過后,PE團(tuán)隊(duì)要對(duì)數(shù)據(jù)中心出現(xiàn)的問題進(jìn)行總結(jié),杜絕類似問題再次發(fā)生,這個(gè)節(jié)日是對(duì)淘寶數(shù)據(jù)中心的一次巨大考驗(yàn),很多問題都會(huì)在這樣的突發(fā)流量下暴漏出來,所以對(duì)于PE團(tuán)隊(duì)也是難得的一次學(xué)習(xí)機(jī)會(huì)。淘寶的數(shù)據(jù)中心出口帶寬已經(jīng)超過兩個(gè)T,就是在峰值的時(shí)候,每秒出去兩個(gè)T的數(shù)據(jù)。由此可見,淘寶數(shù)據(jù)中心的處理能力是超強(qiáng)的,但簡(jiǎn)單的提升網(wǎng)絡(luò)訪問帶寬還遠(yuǎn)遠(yuǎn)不夠,需要的是淘寶數(shù)據(jù)中心整體的處理性能的提升。經(jīng)過“雙十一”購(gòu)物節(jié)的洗禮,PE團(tuán)隊(duì)會(huì)找到目前數(shù)據(jù)中心薄弱的地方,然后再不斷改進(jìn)。
在淘寶,要求數(shù)據(jù)中心全年斷網(wǎng)時(shí)間不能超過2小時(shí),故障等級(jí)分為四級(jí):P1——P4。P1是最嚴(yán)重的故障,P4最輕微。如果頻繁出現(xiàn)P1故障,那么PE團(tuán)隊(duì)人員的收入都會(huì)受到損失。因此,PE團(tuán)隊(duì)時(shí)刻都保持了如履薄冰的心態(tài),應(yīng)對(duì)每一次突發(fā)問題。其實(shí)在任何一個(gè)數(shù)據(jù)中心都一樣,我們?cè)谙硎軘?shù)據(jù)中心帶來的生活、工作便利的同時(shí),在其背后是有無數(shù)的技術(shù)工作者提供運(yùn)維保障,正是這些默默無聞的運(yùn)維人員辛苦的工作才構(gòu)筑了我們今天美好的生活。