0
本文作者: 呂倩 | 2017-10-26 10:01 |
在臨近今年雙十一還有兩個周的時間點(diǎn),京東團(tuán)隊(duì)從技術(shù)角度,詳解了如何打好618、準(zhǔn)備雙十一的攻堅戰(zhàn)。
技術(shù)加持大促
京東商城首席架構(gòu)師劉海峰表示,每年的“大促”,都是研發(fā)的一場重要的考試,確保系統(tǒng)安全性。他主要從四個方面來介紹了大促備戰(zhàn),可以分4個項(xiàng)目來介紹ForceBot軍演壓測、Chaos Monkey 故障演練、廣域分部架構(gòu)、阿基米德,通過這些項(xiàng)目展示了對故障、流量、擴(kuò)展、成本的應(yīng)對。
第一,讓京東技術(shù)系統(tǒng)能夠確保0故障。
劉海峰表示,為了檢驗(yàn)技術(shù)系統(tǒng)的穩(wěn)定性,確保系統(tǒng)在硬件與服務(wù)出問題時不影響用戶體驗(yàn),京東研發(fā)團(tuán)隊(duì)開發(fā)出一套名叫ChaosMonkey的系統(tǒng),專門應(yīng)用于京東做大規(guī)模的故障演練??梢哉f,故障演練是京東過去幾年大促中的例行工作。
根據(jù)故障類型從網(wǎng)絡(luò)層面、系統(tǒng)層面、數(shù)據(jù)庫和中間件,甚至到應(yīng)用服務(wù)的層面,去做各種各樣的故障模擬和驗(yàn)證。來考察各級力度發(fā)生的時候,我們整個基礎(chǔ)團(tuán)隊(duì)的檢測、響應(yīng)、處理還有恢復(fù)的時間。我們要求小的故障不需要人介入,大故障人工介入可以快速完成。通過整個這樣的工作,在大促之前的兩個月期間密集的來開展,提高我們對大規(guī)模故障的容錯能力。
第二,所謂流量,即是通過ForceBot軍演壓測,確保有較強(qiáng)的技術(shù)能力能夠扛住大促峰值來臨時的巨量流量沖擊。
每年雙11與618當(dāng)夜零點(diǎn),瞬間流量是很大的,為了應(yīng)對此間流量高潮,京東技術(shù)團(tuán)隊(duì)需要提前做大量壓測工作。早期,所有壓測都局限某一個系統(tǒng)或者某一個鏈條里面。但是,劉海峰表示,這樣做會有缺陷,它不能很好地檢驗(yàn)全鏈條系統(tǒng),這些對大促來講都是最關(guān)鍵的。
2016年10月左右,京東集團(tuán)團(tuán)隊(duì)開始設(shè)計一個新一套的軍演機(jī)器人,F(xiàn)orceBot,如模擬一千萬個用戶在全國各地同時部署于京東節(jié)點(diǎn),在真實(shí)流量的情況下,機(jī)器人通過程序發(fā)起大的流量進(jìn)行全鏈的壓測,發(fā)起上億的瀏覽、搜索、加購物車、下單等等并發(fā)任務(wù)。通過寫程序模擬人的行為——發(fā)起上億的瀏覽、選商品、加購物車、下單等,實(shí)現(xiàn),整個全鏈路聯(lián)動的壓測。
于是,從2016年雙11開始,單機(jī)房的軍演壓測成為大促之前最關(guān)鍵的工作。劉海峰表示,今年618備戰(zhàn)期間,團(tuán)隊(duì)進(jìn)行了四次全鏈路的軍演壓測,通過單機(jī)房的軍演壓測成為系統(tǒng)優(yōu)化以及資源評估、分配的重要依據(jù)。
第三,所謂擴(kuò)展,也是今年在做的廣域分部架構(gòu),即在公司規(guī)模不斷擴(kuò)展、消費(fèi)者流量不斷增加的情況下,增加機(jī)器、新建機(jī)房,同時保證公司業(yè)務(wù)實(shí)現(xiàn)沒有上限地增長下去。
京東的技術(shù)架構(gòu)經(jīng)歷了從JAVA到同城單機(jī)房到同城雙機(jī)房、最后到廣域分布式的過程。國內(nèi)的各個地域,包括華北、華南、華東均有不同的IDC,整體形成大數(shù)據(jù)中心,同時讓用戶流量就近接入,解決整體可擴(kuò)展性問題,無論哪個區(qū)域出現(xiàn)問題,都能實(shí)現(xiàn)靈活流量調(diào)度。劉海峰表示,這套過程名叫“異地多活”,不同公司、團(tuán)隊(duì)對它均有不同理解,京東的特殊性在于經(jīng)歷了完整的歷程。
第四,有效控制成本,在合理閾值內(nèi)搞大促。
隨著每年618與雙11業(yè)務(wù)增加、訪問流量增大、投入資源增加,購入的機(jī)器越來越多,機(jī)器成本已然非常高,怎樣既做好大促、同時合理控制成本,京東技術(shù)團(tuán)隊(duì)提出名為“阿基米德”的技術(shù)方法,具體來講是——
第一,做海量資源池的統(tǒng)一調(diào)度,特別是在線業(yè)務(wù)是京東主要大促的備戰(zhàn)服務(wù),此外還有離線處理。技術(shù)團(tuán)隊(duì)將兩個資源池打通,做搶占式調(diào)度,然后做大規(guī)模超賣,進(jìn)一步提升資源利用率。
第二,做混合云,京東技術(shù)團(tuán)隊(duì)在大促期間租用一部分機(jī)器,比如京東云,也有可能是其他云服務(wù)合作伙伴,扛住大促流量。
AI的融入
在京東商城中臺研發(fā)高級總監(jiān)王曉鐘印象中,AI技術(shù)融入到京東每年618與雙11,并不是發(fā)生在某個具體節(jié)點(diǎn),而是一種自發(fā)性的、百花齊放狀的。包括客服機(jī)器人、智能補(bǔ)貨、銷量預(yù)測、供應(yīng)鏈體系的優(yōu)化這些都是通過人工智能的技術(shù)來實(shí)現(xiàn)的。
具體來講,AI技術(shù)對大促的技術(shù)保障有哪些方面呢,王曉忠從兩點(diǎn)向雷鋒網(wǎng)介紹:
第一個,京東技術(shù)團(tuán)隊(duì)研發(fā)經(jīng)驗(yàn)機(jī)器人,進(jìn)行全鏈路故障演練,某種程度上來說也是程序模擬人的行為,去模擬一個大的流量場景。
第二,大促期間,京東技術(shù)團(tuán)隊(duì)利用AI技術(shù)去更智能地服務(wù)一些客服任務(wù)。
今年京東雙十一較以往最大的不同,可以說就是AI技術(shù)的運(yùn)用了。王曉鐘對雷鋒網(wǎng)解釋稱,以線上流量監(jiān)控為例,做方案、降級、分流等任務(wù),均是人工完成,今年已實(shí)現(xiàn)在監(jiān)控數(shù)據(jù)詳實(shí)基礎(chǔ)上的半人工智能化,王曉鐘稱,預(yù)計明年618與雙十一可以實(shí)現(xiàn)在很大程度上的全人工智能化。
容器系統(tǒng)上,京東做了四年之久:2014年8月第一代名為JDOS的容器平臺,最初定位不僅僅做容器,還做整個數(shù)據(jù)中心的OS,系一套大的集群管理系統(tǒng)。從2014年至2016年初,京東容器一直都是OPenStack的1.0系統(tǒng);從2016年初開始,啟動OPenStack 2.0系統(tǒng),將線上幾十萬核實(shí)現(xiàn)異地遷移,以實(shí)現(xiàn)更簡單的運(yùn)維。
其次,劉海峰表示,團(tuán)隊(duì)在做更統(tǒng)一、更動態(tài)的資源調(diào)度,不再是固定多少核,而是根據(jù)負(fù)載做大規(guī)模的統(tǒng)一調(diào)整。這個資源池不不僅限于在心業(yè)務(wù)的資源池,還有離線業(yè)務(wù)的資源池,讓它更有彈性。
具體而言,從經(jīng)濟(jì)效應(yīng)來說,如果想讓集群管理更有經(jīng)濟(jì)價值,無非是兩方面的工作——超賣與強(qiáng)行調(diào)度。劉海峰表示,從2011年到現(xiàn)在,通過超賣技術(shù)節(jié)省了很多機(jī)器。今年大促京東也會廣泛地使用在線和離線的混合調(diào)度的方式,緩解大促時候的峰值的流量。
對于今年備戰(zhàn)雙十一,包括阿里、京東、蘇寧等電商平臺紛紛加碼人工智能、無人機(jī)、無人店等宣傳曝光,王曉鐘對雷鋒網(wǎng)表示,人工智能是在備戰(zhàn)中很重要的賣點(diǎn),同時更是看得見、摸得著的很實(shí)在的東西。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。