迎戰(zhàn)雙11:1號店的五位一體保障機制
原創(chuàng)【51CTO.com原創(chuàng)稿件】一年一度的購物狂歡又到來了。雙11,早已不再是光棍節(jié)的代名詞,而是一場名副其實的購物狂歡節(jié)。在消費者購物買買買的時候,是各商家背后的IT部門的技術(shù)保障。“過個講究的雙11”,這是1號店今年雙11的slogan,1號店是如何的講究呢?

1號店技術(shù)部平臺保障部技術(shù)總監(jiān)顧復(fù)告訴筆者,1號店在保障雙11活動時,以業(yè)務(wù)分析為起點,以質(zhì)量改進為目標,以架構(gòu)、運維和安全為主線,識別評估風(fēng)險,制定保障措施,形成五位一體的電商大促保障機制。
架構(gòu)保障--架構(gòu)演化
電商核心交易系統(tǒng)有很多特點,其中高可用、高并發(fā)、高性能是基礎(chǔ),而能夠達到這三高,首先依賴的是架構(gòu)。
如今,1號店技術(shù)部已經(jīng)有千人規(guī)模,系統(tǒng)每天支持億級的訪問量,單Service也達到支持每天數(shù)十億級的請求,清單支持每分鐘幾萬單,Service服務(wù)可用性達到了六個9,架構(gòu)方面也經(jīng)歷幾次演進:從強依賴-> Service化->業(yè)務(wù)解耦->讀寫分離->服務(wù)邏輯分組->異步->水平/垂直拆分等。
服務(wù)垂直拆分:為了保障雙11,1號店從產(chǎn)品、用戶&支付、訂單三個維度上對服務(wù)進行了規(guī)劃,構(gòu)建1號店應(yīng)用架構(gòu)的三駕馬車,確立了SOA治理的框架基礎(chǔ)。在此基礎(chǔ)上,又陸續(xù)衍生出促銷、積分、支付等眾多Service業(yè)務(wù),在三架馬車中同樣會細分至如文描、價格、庫存、下單、訂單查詢等垂直服務(wù)。

服務(wù)邏輯分組:在服務(wù)邏輯分組方面,1號店則采用SOA中間件-Hedwig,提供了軟負載均衡、節(jié)點踢出與孵化、服務(wù)動態(tài)邏輯分組的功能,并且可支持百億級的訪問請求,灰度發(fā)布,其背后提供的調(diào)用鏈路及層次關(guān)系、日志分析、監(jiān)控預(yù)警等更是為SOA治理提供了強大的后勤保障。

DB讀寫分離:1號店的讀寫分離還從應(yīng)用層面以及DB層面進行細分。例如,訂單庫的讀寫分離,訂單主庫主要承擔(dān)下單、編輯訂單、實時查詢等功能,而訂單備庫則承擔(dān)核心業(yè)務(wù)和非核心業(yè)務(wù)的非實時查詢、離線數(shù)據(jù)抽取等工作。
DB水平拆分:在2013年1號店實現(xiàn)了庫存的水平拆分,在2014年則完成了訂單水平拆庫成為繼淘寶之后第二個實現(xiàn)訂單水平拆庫的電商公司。1號店***采用Tcp-copy壓測技術(shù),可覆蓋90%以上的業(yè)務(wù)場景,至少節(jié)省95%以上的人工測試成本;數(shù)據(jù)庫由收費Oracle轉(zhuǎn)為免費MySQL,節(jié)省至少千萬元的成本。

質(zhì)量保障—工程化體系與保障管理體系
由于1號店所有電商系統(tǒng)和企業(yè)內(nèi)部系統(tǒng)均是由技術(shù)部自研發(fā),在研發(fā)管理體系方面,面臨著業(yè)務(wù)特征不一、研發(fā)成熟不統(tǒng)一、架構(gòu)不統(tǒng)一等情況。為了提升研發(fā)隊伍生產(chǎn)力,1號店從2013年開始深度實踐AgileDev與DevOps理念,以質(zhì)量保障為切入點和主線,向前、向后分別逐步打通了產(chǎn)品到研發(fā)、研發(fā)到運維的脈絡(luò),使研發(fā)的效率、質(zhì)量以及整個技術(shù)部的交付和保障能力得到了極大的提升。在質(zhì)量工程化方面,1號店經(jīng)過多年的建設(shè),形成了圍繞產(chǎn)品測試、性能測試、自動化功能測試三大測試領(lǐng)域的質(zhì)量保障云以及研發(fā)管理云服務(wù),保障研發(fā)過程中的變更、測試、上線的高效和準確。同時,在保障管理體系方面,對保證大促期間系統(tǒng)正常運行,也總結(jié)了一套比較實用的實踐。在大促前,質(zhì)量保障部會指導(dǎo)各產(chǎn)品線研發(fā)部門進行各類風(fēng)險評估、應(yīng)急方案的制定,并組織、指揮各類實戰(zhàn)演練。同時,各產(chǎn)品線研發(fā)團隊也會各自產(chǎn)品出發(fā),協(xié)助公司運營部門,保障運營的質(zhì)量。以產(chǎn)品測試為例,在雙11活動中,促銷頁是流量高度集中的頁面,那么檢查促銷的信息是否有誤導(dǎo)、商品的信息是否正確、頁面加載是否流暢、購物流程是否異常等,都是在大促期間質(zhì)量保障中的重要工作。1號店制定了“填充會場 -> 報備信息 -> 運營自查 -> 研發(fā)復(fù)檢”的流程方式,保障促銷頁面的準確性。

運維保障—自動化運維體系
秉承DevOps理念,1號店的自動化運維體系也逐漸在大促保障過程中發(fā)揮了越來越大的作用。線上的自動化運維云平臺已經(jīng)和線下質(zhì)量保障云和研發(fā)管理云打通,實現(xiàn)了從業(yè)務(wù)研發(fā)產(chǎn)品交付到運維的閉環(huán)。例如,線上的自動化運維云平臺采用虛擬化、容器化的技術(shù),更加高效的實現(xiàn)一鍵裝機、一鍵擴容,當需要交付產(chǎn)品時,團隊通過質(zhì)量保障云服務(wù)生成上線審核報告,提交到研發(fā)管理云的發(fā)布審批服務(wù)上,該服務(wù)通過訪問質(zhì)量保障云服務(wù)提供的質(zhì)量數(shù)據(jù),自動檢查是否符合交付標準,通過后會通知自動化發(fā)布系統(tǒng)、配置系統(tǒng)實現(xiàn)一鍵發(fā)布、灰度發(fā)布等目標。發(fā)布完成后,運維云平臺的發(fā)布結(jié)果會回寫到研發(fā)管理云的發(fā)布審批服務(wù),同時質(zhì)量保障云自動化測試平臺會啟動線上自動化測試,驗證發(fā)布結(jié)果。由此形成了高效的閉環(huán)。
除了平臺工具的保障,DBA、SA、網(wǎng)絡(luò)團隊、企業(yè)IT也會安排大量預(yù)案的設(shè)計和驗證演練,例如DBA會定期集中排查存在隱患的數(shù)據(jù)庫實例和SQL,通過各種升級、優(yōu)化措施提前消滅隱患。

安全保障—堅強后盾
所謂道高一尺、魔高一丈,系統(tǒng)安全、業(yè)務(wù)安全是不能忽視的領(lǐng)域。在安全方面,1號店采取的策略集中在事前、事中和事后三個方向。通過在基礎(chǔ)平臺、各業(yè)務(wù)應(yīng)用系統(tǒng)以及研發(fā)專門的風(fēng)險防控和識別系統(tǒng)多個層次,實現(xiàn)安全防護。例如,在訂單處理系統(tǒng),在訂單提交前和履單過程中設(shè)置了對惡意訂單的識別;在系統(tǒng)訪問上,對非常規(guī)的訪問進行了監(jiān)測識別。用戶安全和用戶體驗是雙刃劍,既要保障正常用戶的購物體驗,同時保護系統(tǒng)和業(yè)務(wù)安全,1號店在這個方向還在不斷努力。
更多精彩內(nèi)容,詳見專題!
【51CTO原創(chuàng)稿件,合作站點轉(zhuǎn)載請注明原文作者和出處為51CTO.com】