1. 背景
今年的818大促跟往年不太一樣,在蘇寧成立30周年之際,蘇寧易購提出了“專注好服務(wù)”的全新品牌主張,在帶來巨大流量的同時(shí),也給我們中臺(tái)系統(tǒng)的保障工作帶來了更大的挑戰(zhàn)。如何在818的大促過程中,更快的,更有效率,更智能的全面做好穩(wěn)定性保障工作,是我們亟需解決的難題。
2. 大促保障的痛點(diǎn)
大促是考驗(yàn)電商后臺(tái)系統(tǒng)能力的試金場(chǎng),面對(duì)著成千上萬的消費(fèi)者搶購流量,系統(tǒng)壓力瞬間增大,為了避免系統(tǒng)被流量沖垮,電商系統(tǒng)經(jīng)歷了從滿足日常業(yè)務(wù)的系統(tǒng)設(shè)計(jì)模式到滿足高并發(fā)的系統(tǒng)架構(gòu)模式的轉(zhuǎn)變,系統(tǒng)架構(gòu)越來越復(fù)雜。大促過程中如何保障系統(tǒng)穩(wěn)定、快速獲取流量峰值和熱點(diǎn)、快速獲取和匯總相關(guān)業(yè)務(wù)數(shù)據(jù)便成了大促過程中新的痛點(diǎn)問題。
交易中臺(tái)基于以上痛點(diǎn),結(jié)合大數(shù)據(jù)技術(shù),通過數(shù)據(jù)的挖掘和應(yīng)用來保障818大促的穩(wěn)定。
3. 數(shù)據(jù)組件支撐大促保障
3.1. TPS采集組件
目前RSF平臺(tái)(蘇寧自研微服務(wù)框架)只有分鐘級(jí)的調(diào)用量統(tǒng)計(jì),無法精準(zhǔn)統(tǒng)計(jì)到秒,且平臺(tái)原始日志數(shù)據(jù)也為采樣打印,無法直接使用。無論從容量規(guī)劃角度,還是從實(shí)時(shí)監(jiān)控,流控等角度去考慮,秒級(jí)監(jiān)控需求都極為迫切。
基于以上情況,中臺(tái)自研了TPS采集組件,截止目前已經(jīng)接入近30個(gè)系統(tǒng)、200多個(gè)核心服務(wù),通過統(tǒng)一的展示門戶,接入服務(wù)的實(shí)時(shí)、歷史調(diào)用量一覽無余。大大提升了壓測(cè)、大促時(shí)鏈路分析的效率及準(zhǔn)確性。這些核心服務(wù)的數(shù)據(jù)落地,為性能分析、容量規(guī)劃及儲(chǔ)備,提供了最基礎(chǔ)的不可缺少的原材料。也讓業(yè)務(wù)系統(tǒng)能直觀的看到自己系統(tǒng)的核心服務(wù)的壓力。
方案:
1:利用SpringAOP織入切面,業(yè)務(wù)系統(tǒng)接入只需添加注解并配置SCM開關(guān)。每個(gè)jvm統(tǒng)計(jì)各自服務(wù)每秒的調(diào)用量并記錄日志。
2:flume實(shí)時(shí)采集日志。
3:flink匯總每個(gè)服務(wù)單機(jī)房以及多機(jī)房的秒級(jí)調(diào)用量。
4:服務(wù)秒級(jí)調(diào)用量匯總?cè)霂臁?/p>
5:門戶實(shí)時(shí)展示調(diào)用量數(shù)據(jù)。
3.2. 流控組件
流控一直都是系統(tǒng)最重要的保障手段之一。流控從技術(shù)實(shí)現(xiàn)上分為兩種。一種為并發(fā)流控,這種流控主要基于并發(fā)考慮,公司的RSF框架流控基于此原理,但是缺點(diǎn)也比較大。一般系統(tǒng)服務(wù)能力或者籌備目標(biāo)都是用TPS去衡量,而從TPS很難精準(zhǔn)的換算出單JVM能支撐的并發(fā)量。而另一種流控是通過控制QPS來拒絕流量,最終保護(hù)系統(tǒng)。也是我們彌補(bǔ)目前流控能力不足的方式。
因此,中臺(tái)自研了流控組件,目前中臺(tái)130多個(gè)核心接口已經(jīng)全部接入。每個(gè)核心接口按照其使用的場(chǎng)景及需求接入了不同種類的流控組件。在接入流控之后,極大的降低了整個(gè)大促監(jiān)控團(tuán)隊(duì)的運(yùn)維壓力,某種意義上實(shí)現(xiàn)了對(duì)服務(wù)的無人值守。
3.2.1. 分布式流控
分布式流控主要是針對(duì)每個(gè)JVM設(shè)定流控閾值,進(jìn)行單JVM流量控制。因此需要計(jì)算整體的服務(wù)能力,然后除以應(yīng)用數(shù)量,計(jì)算流控閾值。他的優(yōu)點(diǎn)主要是完全基于JVM,損耗極小,幾乎可以忽略不計(jì)。
方案:
1:控制平臺(tái)將流控閾值下發(fā)到每個(gè)JVM。
2:對(duì)每次請(qǐng)求進(jìn)行秒級(jí)調(diào)用量匯總,判斷是否超過閾值。
3:如果超過閾值則將超過閾值的請(qǐng)求流控,并打印流控日志。
4:flume采集流控日志。
5:flink匯總單機(jī)房以及多機(jī)房流控值。
6:門戶展示流控?cái)?shù)據(jù)。
3.2.2. 分布式冷熱桶流控
主要用來防止爆款搶購,系統(tǒng)秒殺等熱品流量堵到正常系統(tǒng)的請(qǐng)求。如果直接使用普通流控進(jìn)行攔截,會(huì)造成普通商品購買被拒絕。因此對(duì)于這種場(chǎng)景,在之前的流控組件的基礎(chǔ)上增加冷熱桶,系統(tǒng)自動(dòng)識(shí)別熱品,同時(shí)冷熱流控閾值分離。
方案:
1:控制平臺(tái)將流控閾值下發(fā)到每個(gè)JVM。
2:對(duì)每次請(qǐng)求進(jìn)行冷熱區(qū)分(自動(dòng)判斷、固定值判斷)。
3:對(duì)冷熱請(qǐng)求按秒級(jí)維度進(jìn)行匯總,并按冷、熱兩個(gè)閾值進(jìn)行判斷。
4:如果超過閾值則將超過閾值的流控,并打印流控日志。
5:flume采集流控日志。
6:flink匯總單機(jī)房以及多機(jī)房流控?cái)?shù)量并入庫。
7:門戶展示流控?cái)?shù)據(jù)。
3.2.3. 全局流控
全局流控主要是針對(duì)流控要求比較精細(xì)的場(chǎng)景,希望能做到精準(zhǔn)控制。例如提交訂單場(chǎng)景。整體思路是設(shè)置全局流控閾值(可放入Redis中),由JVM進(jìn)行閾值步長拉取,后在JVM中去扣減流控步長以達(dá)到流控目的。
方案:
1:控制平臺(tái)將流控閾值及步長下發(fā)到每個(gè)JVM。
2:請(qǐng)求前判斷本jvm是否有配額,有則扣減本地配額,沒有則從公共配額拉取(值為步長)。
3:如果公共配額用凈,則將多余流量流控并打印日志。
4:flume采集流控日志。
5:flink匯總單機(jī)房以及多機(jī)房流控量并入庫。
6:門戶展示流控?cái)?shù)據(jù)。
3.2.4. 流控比對(duì)
對(duì)比可知,分布式流控,全局流控,冷熱分離各有優(yōu)缺點(diǎn)。不同的業(yè)務(wù)場(chǎng)景,可以選擇不同的實(shí)現(xiàn)方案。在此基礎(chǔ)上流控的下一步方案是升級(jí)到動(dòng)態(tài)流控,可以動(dòng)態(tài)實(shí)現(xiàn)分布式,全局流控的自由切換,實(shí)現(xiàn)全局流控,冷熱分離閾值的動(dòng)態(tài)調(diào)整和生效。而這塊重點(diǎn)應(yīng)該是如何根據(jù)上報(bào)的健康數(shù)據(jù)分析并實(shí)現(xiàn)動(dòng)調(diào)整當(dāng)前流控方式或者配額值。
4. 中臺(tái)數(shù)據(jù)云支撐大促保障
除了組件提升,大數(shù)據(jù)和AI能力也逐步成為大促保障的重要利器。交易中臺(tái)通過采集平臺(tái),清洗平臺(tái),中臺(tái)數(shù)據(jù)云平臺(tái)的三層建設(shè),一方面提供統(tǒng)一的數(shù)據(jù)指標(biāo)服務(wù),更重要的是提供了基于OLAP的業(yè)務(wù)指標(biāo)服務(wù),多維度查詢服務(wù),歸檔服務(wù)等。同時(shí)也給大促籌備帶來了新的突破。
4.1. 大促云車加車分析
購物車是交易鏈路的關(guān)鍵系統(tǒng),大促交易峰值來源于購物車的訂單提交,因此加車數(shù)據(jù)的分析對(duì)于大促保障至關(guān)重要。
利用中臺(tái)采集平臺(tái)實(shí)時(shí)(binlog)采集購物車加車數(shù)據(jù),將業(yè)務(wù)數(shù)據(jù)實(shí)時(shí)匯聚到中臺(tái)清洗平臺(tái),對(duì)豐富的多切片(分庫分表)數(shù)據(jù)進(jìn)行清洗和融合,刻畫背后的業(yè)務(wù)畫像,使用智能算法分析4億+加車數(shù)據(jù)以及7萬+促銷活動(dòng),為購物車、促銷系統(tǒng)提供818大促TOP100熱點(diǎn)加車商品和TOP10熱門促銷活動(dòng)數(shù)據(jù),使系統(tǒng)可以提前對(duì)熱點(diǎn)商品和熱門活動(dòng)進(jìn)行緩存預(yù)熱,降低大促風(fēng)險(xiǎn)。
因加購數(shù)量越多代表商品越受歡迎,大促時(shí)對(duì)加購數(shù)量多的商品進(jìn)行精準(zhǔn)的營促銷干預(yù),會(huì)起到更好的效果,有效的提高購物車的轉(zhuǎn)化率。
4.2. 大促多平臺(tái)智能分貨
蘇寧目前除自營體系的易購平臺(tái)、O2O小店平臺(tái)、線下門店等渠道外,也在加快第三方平臺(tái)入駐的步伐,目前已在天貓、抖音、達(dá)令家、美團(tuán)、餓了嗎等外部各類平臺(tái)進(jìn)行銷售活動(dòng),因此庫存中心對(duì)于各平臺(tái)貨物的調(diào)配也越來越重要與復(fù)雜,分貨的方式、調(diào)度策略、補(bǔ)貨頻次各不相同。如何提升分貨的準(zhǔn)確性便成了大促期間備貨方案的重中之重。
中臺(tái)數(shù)據(jù)云智能分貨涉及15個(gè)大類,幾十萬商品,極大降低了各平臺(tái)的大促商品缺貨率,提升了818銷售。
方案:
1:依托數(shù)據(jù)云平臺(tái)、AI機(jī)器學(xué)習(xí)平臺(tái),通過歷史銷量、促銷活動(dòng)、庫存深度等數(shù)據(jù)進(jìn)行各平臺(tái)銷量預(yù)測(cè)。
2:庫存中心依托分貨規(guī)則引擎,根據(jù)銷售預(yù)測(cè)進(jìn)行各平臺(tái)庫存分貨,并根據(jù)分貨結(jié)果推送各平臺(tái)。
3:庫存中心實(shí)時(shí)掃描銷售情況和三方庫存狀態(tài)進(jìn)行庫存動(dòng)態(tài)調(diào)整,并搭建異常監(jiān)控體系,聯(lián)動(dòng)業(yè)務(wù),指導(dǎo)運(yùn)營。
智能分貨模型的核心是銷售預(yù)測(cè),結(jié)合業(yè)務(wù)特點(diǎn),銷售預(yù)測(cè)分為三個(gè)階段,通過發(fā)揮銷售預(yù)測(cè)算法三個(gè)階段的不同的優(yōu)勢(shì),實(shí)現(xiàn)銷售預(yù)測(cè)準(zhǔn)確度的最大化。
1) 時(shí)間序列:探查分貨相關(guān)歷史特征數(shù)據(jù)的穩(wěn)定性和線性規(guī)律。
2) 機(jī)器學(xué)習(xí):支持分貨多平臺(tái)多場(chǎng)景的業(yè)務(wù),在多變量的情況下提升銷售預(yù)測(cè)質(zhì)量。
3) 深度學(xué)習(xí):構(gòu)建更復(fù)雜的分貨模式對(duì)應(yīng)的銷售預(yù)測(cè)模型,自動(dòng)學(xué)習(xí)分貨相關(guān)的特征實(shí)現(xiàn)預(yù)測(cè)的全面升級(jí)。
4.3. 壓測(cè)和大促流量模型
每次大促活動(dòng)籌備,有這兩件事情重要的事項(xiàng):首先會(huì)進(jìn)行基于業(yè)務(wù)籌備目標(biāo)的流量預(yù)算,以進(jìn)行系統(tǒng)的容量評(píng)估,確定系統(tǒng)是否擴(kuò)容;其次是制定壓測(cè)策略、執(zhí)行壓力測(cè)試、輸出壓力測(cè)試報(bào)告,確認(rèn)每個(gè)系統(tǒng)是否達(dá)到籌備的目標(biāo)值。
中臺(tái)三十多個(gè)系統(tǒng),系統(tǒng)服務(wù)眾多,大促容量評(píng)估很難準(zhǔn)確,依據(jù)歷史數(shù)據(jù),梳理中臺(tái)核心業(yè)務(wù)線,構(gòu)建7個(gè)核心流量模型,快速評(píng)估出818大促的服務(wù)籌備目標(biāo)后,合理進(jìn)行容量規(guī)劃,通過多輪全鏈路壓測(cè)進(jìn)行驗(yàn)證。
方案:
1:根據(jù)業(yè)務(wù)關(guān)鍵服務(wù)梳理出從上至下的調(diào)用關(guān)系鏈。
2:使用大數(shù)據(jù)采集各系統(tǒng)服務(wù)TPS數(shù)據(jù),建立核心服務(wù)流量模型。
3:通過活動(dòng)分析以及歷史流量模型依托機(jī)器學(xué)習(xí)算法進(jìn)行流量預(yù)測(cè), 為818大促系統(tǒng)容量評(píng)估,壓測(cè)以及流控提供了有效的依據(jù)。
4.4. 大促系統(tǒng)健康巡檢
目前各監(jiān)控平臺(tái)都只是在系統(tǒng)發(fā)生風(fēng)險(xiǎn)的時(shí)候進(jìn)行預(yù)警,無法做到提前識(shí)別。因此每一次大促保障,都需要進(jìn)行多輪的系統(tǒng)監(jiān)控檢查,包含緩存使用率,命中率,磁盤使用率,IO,Topsql等各項(xiàng)體檢。每項(xiàng)檢查涉及幾千臺(tái)機(jī)器,人工檢查耗時(shí)耗力。通過對(duì)ZABBIX,DBMS等系統(tǒng)提供的服務(wù)或離線數(shù)據(jù)采集,中臺(tái)數(shù)據(jù)云平臺(tái)自動(dòng)出具檢查分析報(bào)告,極大的節(jié)省了人力,從之前人工檢查花費(fèi)一周變成系統(tǒng)自動(dòng)巡檢只需一天。
方案:
1:結(jié)合組件能力,系統(tǒng)巡檢可以由TPS流量異動(dòng),流控告警和手工觸發(fā)三種方式發(fā)起。對(duì)于系統(tǒng)自動(dòng)觸發(fā)的通過規(guī)則引擎判斷是否需要進(jìn)行巡檢。
2:巡檢發(fā)起后分別聯(lián)動(dòng)異常監(jiān)管系統(tǒng),資源管理系統(tǒng),數(shù)據(jù)庫管理系統(tǒng)和微服務(wù)管理系統(tǒng)多個(gè)異常監(jiān)控平臺(tái),通過服務(wù),數(shù)據(jù)同步等方式獲取系統(tǒng)健康數(shù)據(jù)。
3:進(jìn)行風(fēng)險(xiǎn)評(píng),出具巡檢報(bào)告。如果存在異常,結(jié)合AI圖譜識(shí)別,根因分析后出具報(bào)告。
5. 未來-智能診斷
無論多么資深的技術(shù)人員,絕大部分情況下都無法在1分鐘內(nèi)識(shí)別系統(tǒng)異常產(chǎn)生的根本原因。然而在大促這種特殊的場(chǎng)景下,線上發(fā)生的任何問題都需要即刻定位和處理, 因此我們未來規(guī)劃了系統(tǒng)智能診斷模型。當(dāng)系統(tǒng)發(fā)生異常后觸發(fā)第一層主機(jī)層診斷,聯(lián)合云計(jì)算研發(fā)中心,通過知識(shí)圖譜構(gòu)建根因分析。第一層診斷完成后,進(jìn)行持久層根因診斷,判斷數(shù)據(jù)庫是否存在異常,最后進(jìn)行業(yè)務(wù)層根因檢測(cè)。通過三層智能診斷快速定位系統(tǒng)異常的根本原因。
大促保障是一項(xiàng)極其復(fù)雜的系統(tǒng)化工程,每次大促對(duì)系統(tǒng)而言都是一次全方位的考驗(yàn)。面對(duì)越來越復(fù)雜的系統(tǒng)和更加多樣化的營促銷活動(dòng),中臺(tái)大促保障以技術(shù)為本,總結(jié)每次大促經(jīng)驗(yàn),持續(xù)建設(shè)常態(tài)化的籌備機(jī)制和立體化的監(jiān)控工具,推進(jìn)保障工作逐步向更加體系化,精細(xì)化和智能化的方向發(fā)展,最終保障系統(tǒng)的平穩(wěn)運(yùn)行,保證用戶順暢的購物體驗(yàn)。
(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )