InfoQ:關(guān)于庫(kù)存方面,在線上和線下的庫(kù)存分配平時(shí)是如何安排的,在大促時(shí)如何調(diào)整?是否存在動(dòng)態(tài)調(diào)配方案來(lái)解決庫(kù)存分配不均的情況?
孫遷:蘇寧各銷售渠道的庫(kù)存是共享的,尤其隨著O2O的進(jìn)一步探索和演進(jìn),對(duì)要求共享庫(kù)存的場(chǎng)景越來(lái)越多,如果連庫(kù)存都不能共享的話,則很難做到各渠道的融合。
具體的技術(shù)實(shí)現(xiàn)分兩種類型,一種是數(shù)據(jù)上完全共享,另一種是動(dòng)態(tài)調(diào)撥,這兩種方式在蘇寧當(dāng)前都存在。
拿動(dòng)態(tài)調(diào)撥來(lái)說(shuō),基本實(shí)現(xiàn)原理是為不同渠道設(shè)置不同的預(yù)警閾值,超過(guò)閾值則觸發(fā)自動(dòng)調(diào)撥操作。如何能更高效地進(jìn)行調(diào)撥及如何能盡量減少調(diào)撥導(dǎo)致的渠道無(wú)貨或者貨物賣不出去的情況,這些需要結(jié)合著商品特性、銷量預(yù)測(cè)以及倉(cāng)庫(kù)分布及輻射能力等情況去綜合分析,而不是單一地靠靜態(tài)庫(kù)存數(shù)量來(lái)進(jìn)行調(diào)撥,這樣的話勢(shì)必會(huì)出現(xiàn)各種問(wèn)題。經(jīng)過(guò)了多年的優(yōu)化和積累,目前蘇寧在庫(kù)存這方面基本不會(huì)存在庫(kù)存分配不均或者單渠道無(wú)貨的情況發(fā)生。
InfoQ:能否為大家總結(jié)蘇寧云商大促時(shí)容易出現(xiàn)哪些系統(tǒng)瓶頸,能否進(jìn)一步地談?wù)勧槍?duì)意想不到的大流量時(shí),你們大促當(dāng)日會(huì)有哪些應(yīng)急手段?
孫遷:在高流量場(chǎng)景下,任何一個(gè)細(xì)微的問(wèn)題或者瓶頸都有可能會(huì)引發(fā)巨大的故障。故我們從包括但不限于物理層面的鏈路流量、負(fù)載設(shè)備及機(jī)器計(jì)算能力等,到中間件層面的各種參數(shù)設(shè)置、應(yīng)用層面的性能狀況以及業(yè)務(wù)系統(tǒng)層面等都會(huì)存在各種瓶頸和異常。
應(yīng)對(duì)不同層面、不同場(chǎng)景的瓶頸處理方式既相同也不同,whatever,一套完整的監(jiān)控體系是所有業(yè)務(wù)及系統(tǒng)穩(wěn)定運(yùn)行的根基,避免完全不清楚系統(tǒng)運(yùn)行狀況的場(chǎng)景發(fā)生。目前我們?cè)谖锢韺印⒅虚g件層、應(yīng)用層及業(yè)務(wù)層等各個(gè)層面都進(jìn)行了大量的運(yùn)行時(shí)數(shù)據(jù)采集,以及具備實(shí)時(shí)數(shù)據(jù)分析的功能,任何一點(diǎn)異常情況都會(huì)被立即發(fā)現(xiàn)并觸發(fā)不同的處理預(yù)案,定期會(huì)對(duì)系統(tǒng)的運(yùn)維狀況進(jìn)行巡檢及總結(jié),同時(shí)在新系統(tǒng)上線前會(huì)進(jìn)行多輪的功能、性能以及線上實(shí)際引流及放大回放測(cè)試等工作,絕大部分的問(wèn)題都會(huì)在系統(tǒng)上線前被發(fā)現(xiàn)并解決。
嚴(yán)格來(lái)講所有的系統(tǒng)設(shè)計(jì)在一定程度上都會(huì)有一個(gè)上限,或者面臨各種“意想不到”的場(chǎng)景。比如網(wǎng)絡(luò)蜂擁或者其它超出了系統(tǒng)設(shè)計(jì)容量的場(chǎng)景,這個(gè)時(shí)候常見(jiàn)的處理方式會(huì)采用業(yè)務(wù)降級(jí),極端情況下會(huì)采用流控等策略去處理。簡(jiǎn)單來(lái)講就是犧牲一部分業(yè)務(wù)或者用戶體驗(yàn)來(lái)減少對(duì)系統(tǒng)性能的消耗,從而保證核心鏈路的穩(wěn)定。
隨著能力的提升,各種“意想不到”的場(chǎng)景往往會(huì)變成“假設(shè)存在”的場(chǎng)景被考慮,比如流量蜂擁,機(jī)器宕機(jī),業(yè)務(wù)異常等。目前我們總結(jié)了幾千條異常場(chǎng)景,同時(shí)都會(huì)有對(duì)應(yīng)的應(yīng)急預(yù)案。一切的一切都是以快速恢復(fù)服務(wù),減少對(duì)用戶的影響為最終目標(biāo),而不是當(dāng)問(wèn)題發(fā)生時(shí)再去思考如何解決問(wèn)題,這樣會(huì)顯著加長(zhǎng)問(wèn)題的處理時(shí)間,會(huì)對(duì)業(yè)務(wù)及用戶帶來(lái)很大的傷害。
InfoQ:大促高并發(fā)下如何快速定位到錯(cuò)誤發(fā)生點(diǎn)并解決?針對(duì)系統(tǒng)問(wèn)題,能否介紹運(yùn)維人員大促常用的預(yù)備方案?特別地,哪些預(yù)備方案是你們最關(guān)注并反復(fù)演練的?
孫遷:快速定位錯(cuò)誤發(fā)生點(diǎn)的前提是要有完善的監(jiān)控體系,這樣在事前或者事中可以快速發(fā)現(xiàn)異常,同時(shí)必須要持續(xù)積累和完善各種應(yīng)急預(yù)案,知道異常發(fā)生時(shí)如何快速應(yīng)對(duì),這樣兩方面結(jié)合才能更快速解決問(wèn)題。
我們其實(shí)沒(méi)有常用和非常用的應(yīng)急預(yù)案例,往往概率越高的問(wèn)題越會(huì)被重視,隨后慢慢演變成一個(gè)常態(tài),也就無(wú)應(yīng)急和非應(yīng)急之分了。
給系統(tǒng)帶來(lái)最大的不穩(wěn)定因素還是來(lái)自于各種偏門的場(chǎng)景,尤其是沒(méi)有預(yù)料到的場(chǎng)景。一切影響核心鏈路穩(wěn)定的場(chǎng)景基本上我們都有反復(fù)演練,比如關(guān)鍵及非關(guān)鍵業(yè)務(wù)系統(tǒng)宕機(jī)等場(chǎng)景。
InfoQ:您在ArchSummit演講中將會(huì)提到“架構(gòu)設(shè)計(jì)意識(shí)的轉(zhuǎn)變”,優(yōu)秀的架構(gòu)師應(yīng)該具備怎樣的架構(gòu)意識(shí)?能否結(jié)合自己十多年研發(fā)經(jīng)驗(yàn)提前為大家分享這個(gè)體會(huì)?
孫遷:經(jīng)歷了這么多年的業(yè)務(wù)及系統(tǒng)設(shè)計(jì)經(jīng)歷,讓我體會(huì)最深刻的一點(diǎn)是在不同時(shí)期及能力下對(duì)于問(wèn)題處理的思路和邏輯的不同。