噹噹網雙11"超級工程":運維人雙十一怎麼過?

趙鈺瑩發表於2018-05-07

  每年雙十一,不僅是剁手族的狂歡節,更是各大電商技術團隊技術水平與技術創新實踐檢驗的舞臺,不斷創新高的銷售額、交易峰值、支付峰值,這些驚人數字的背後都離不開強力的技術支撐。IT168希望透過技術報導的形式向讀者揭秘各大電商平臺在雙十一這一“超級工程”背後的鉅額投入與技術創新,讓更多人瞭解技術,尊重技術,促進同行業之間的技術交流分享,推動提高行業整體技術水平。

    本文摘要

  幾年前,一場秒殺讓伺服器當機是常態,現在,一秒數十萬的訂單,依然堅挺。毫無疑問,支撐起這一切的是強有力的技術和運維人一個個不眠的夜晚。18年以來,噹噹網累計銷售書籍已超25億冊,服務超過兩億讀者,佔據中國圖書零售38%以上的市場份額。截至2016年,噹噹網註冊使用者達到2億,年活躍使用者超過4000萬,位列中國電商前三,僅次於天貓和京東。

  面對雙十一的巨大流量壓力,在高頻、高額、高密度的交易場景下,如何為使用者提供穩定而流暢的購物體驗?如何保證核心關鍵業務的高可用?如何應對流量高峰期的各種突發情況?噹噹網運維總監徐瑩向我們揭秘了“運維人的雙十一備戰狀態”!

  作者:徐瑩

  編輯整理:趙鈺瑩

噹噹網雙11
▲噹噹網運維總監 徐瑩

  簡介:2012年加入噹噹網,一直從事運維工作。現職務運維總監。

  正文

  每年雙十一對網際網路電商行業和所有使用者而言,是一場盛大的購物狂歡節。對於噹噹網的技術團隊而言,這卻是一場檢驗一年工作成果的期末大考。所謂細節決定成敗,隨著核心架構體系的不斷穩定,運維的重要性日益凸顯,各種突發故障隨時可能讓業務成交失敗。

  作為國內領先的綜合性文化電商,為了應對雙十一巨大流量的衝擊,噹噹網的運維團隊早已提前進入了備戰狀態,來看看我們為這場硬仗做了哪些準備吧!

  備戰步驟一:解決雙十一資源配置問題:從資料收集開始

  早期的雙十一,團隊既沒經驗又沒資料,無法準確預估訪問量和訂單數量。只能採取簡單預估的方式,按照現有系統承載壓力的3到5倍申請頻寬、CDN、伺服器等各種資源。最後的結果要麼浪費、要麼不足。等待促銷過後,多數資源呈現空閒狀態,無法與日常工作所需資源有效平衡。經歷了早期雙十一的洗禮,我們開始過渡到用資料收集解決這些問題的階段。

  1、業務資料收集

  業務資料收集從業務角度出發,主要涉及事業部銷售計劃、促銷活動型別、市場部預估流量以及倉店生產計劃幾大方面:

  事業部銷售計劃:用事業部的預估銷售金額、大資料提供的歷史客單價、各環節的歷史轉化率(大促時轉化率會升高)就可推算出訂單總數、各頁面的UV和PV,但最終結果需要結合促銷活動型別來做微調。

噹噹網雙11
▲圖一:業務資料轉化為技術可用指標

  促銷活動型別:需要提前掌握促銷活動的型別,不同型別的活動對系統造成的壓力是不同的。例如全場打折,顧客的行為是小件商品只要滿足包郵條件,即可結算。結算系統的壓力最大。如果是滿額減型別,顧客會因為湊單而產生“逛”的行為,這時單品系統和購物車系統的壓力會比較大,以及爆款秒殺等各種資訊。

  市場部預估流量:市場部會在活動之前,透過預估流量得出增量UV。雖然市場投入效果無法預見,但可以作為部分參考。

  倉店生產計劃:瞭解各時段全國倉店生產指標、分解到各倉店的包裹數,挑選出高峰時期重點保障現場技術、網路、後臺應用、ERP以及快遞等支援。

  2、技術資料收集

  技術資料收集主要涉及歷史促銷資料和監控資料兩部分。

  歷史促銷資料:技術部擁有歷史促銷資料,可以將業務系統的PV、UV,PC端和移動端資料,購物車加購數量,收藏夾商品數量,註冊登入等各維度資料清晰展現在報表內。我們根據歷年雙十一的歷史資料推算可能的流量峰值。

  系統監控資料:歷史監控資料,比如各系統的CPU、load、連線數、I/O、響應時間、錯誤率、頻寬使用率等也將呈現在報表中。

  3、系統分級資料

  按標準對線上系統進行分級,提高關鍵業務的優先順序,保障使用者體驗。

噹噹網雙11
▲圖二:按影響使用者購物行為的系統分級標準

  按照分級標準對線上系統進行劃分,制定限流、降級方案。

噹噹網雙11
▲圖三:噹噹網線上系統分級圖示

  備戰步驟二:針對資料收集結果進行資料應用

  對上一步收集到的業務資料和技術資料進行分析,用於預測線上全鏈路壓測指標和系統擴容指標。

  線上全鏈路壓測指標主要包括交易系統的訂單數,購物車內商品數量分佈,各頁面和系統預估UV、PV數。

  系統擴容指標主要指根據歷史監控資料和實際業務資料比對,評估雙十一各系統的壓力錶現。結合線上全鏈路壓測結果,確定線上系統擴容數量。歷史監控資料還決定著擴容介質,哪些應用可用私有云、docker、公有云,哪些只能用物理伺服器等。

  備戰步驟三:根據預估指標,所有運維團隊立即投入預演階段

  運維是一個多型別、多技能的綜合部門。每個團隊都有不同的準備工作,但基本都會涉及巡檢、演練、最佳化等方面。

  1、基礎架構團隊:基礎架構涉及的系統是公用服務層,所以從硬體狀態到叢集冗餘,再到災備預案都要提前進行準備。首先要巡檢所有的網路裝置、網路鏈路、安全裝置、負載均衡叢集、DNS叢集、日誌叢集、私有云叢集的所有硬體狀態、日誌資訊、埠速率、電源、風扇、溫度等一切硬體相關內容。

  其次,切換演練所有主備系統,BGP出口主備切換,多IDC出口切換,全國各地倉店專線和備份VPN線路切換,安全裝置主備切換,DNS、叢集災備切換,私有云和公有云物理宿主機當機演練等。所有演練都要做到事前有方案、演練有記錄,結果有追蹤。

  最後是最佳化方面,叢集系統根據壓測結果做水平擴容,線路做流量排程最佳化,私有云上執行的應用做冗餘調整等工作。監控系統最佳化,驗證是否可正常監控,可正常發出報警郵件和簡訊等。

  2、應用運維團隊:該團隊主要針對大促期間的各種應用突發情況,因此,前期準備工作主要圍繞快速恢復服務和快速擴容服務兩方面展開。

  快速恢復服務方面,所有業務系統要有自動無損重啟和快速重啟功能,每個業務系統根據各自特點部署恢復服務的順序,例如限流之後重啟web層、API層和快取層之間的先後順序;DNS排程流量一鍵化,負載均衡層排程一鍵化等。所有內容都要事先演練,並記錄服務恢復時間和問題。

  快速擴容方面,充分利用新技術對所有一級系統docker化,不適用docker的系統在混合雲上模板化;對硬體配置要求高的服務,需要預裝物理伺服器。所有系統均需具備自動化驗證指令碼,驗證後快速推到負載均衡層的能力。

  除此之外,該團隊會對每個IDC服務能力進行評估,做好災備預演。在單個IDC失去服務能力後,快速切換到其他IDC提供服務。與平時不同的是,雙十一各系統的壓力會遠大於日常,要事先充分評估各IDC的服務力,做好一鍵調整的預案,在最短的時間內恢復服務。

  3、DBA團隊:DBA團隊主要負責資料庫運維。對資料庫而言,主要工作在於最佳化,而且是長期最佳化。如果大促期間出現資料庫異常,資料庫很難在短時間內進行擴容調整,把冷資料變熱,因此資料庫的長期最佳化十分重要。

  頻繁報警的資料庫調優方面,優先調整頻繁報警的核心資料庫,主要工作是資料庫層面的索引增加,SQL調優,升級版本,分庫分表;硬體層面進行擴容,硬體升級。大表的清理工作方面,同樣優先對核心資料庫的大表做清理,保障在合理的大小範圍內。巡檢和演練方面,對所有核心資料庫伺服器做巡檢,不在維保範圍內的伺服器立即替換,對所有資料歸檔備份計劃任務做調整,資料庫主從進行切換演練。

  4、基礎設施團隊:主要負責IDC、伺服器、客服CC系統相關準備工作。IDC的基礎環境巡檢,伺服器所有硬體巡檢,語音伺服器、語音交換機巡檢;IDC演練方面,進行電力系統演練,單機櫃單路斷電處理演練以及列頭櫃電力系統切換演練等。

  除去上述工作,所有運維團隊還需要提前制定值班計劃,對雙十一當天可能發生的各種突發情況預案,雙十一各時段應該關注的關鍵點進行詳盡計劃。總之,每年雙十一都是一次檢驗,一次大考。細節決定成敗,對全體運維人而言,必須所有細節都關注到,演練到,準備到,才足以從容應對每一年的雙十一大促。

  正因為有了噹噹網所有運維人的集體備戰,使用者才得以享受到流暢的購物體驗。縱觀國內各大電商平臺,火拼技術實力的背後無非就是為了讓使用者儘量享受到與平日無異的購物體驗。作為新一代B2C網上購物平臺,蘇寧也為著這個目標不斷努力著。隨著業務需求的不斷增長,蘇寧核心會員系統進行了多次升級轉型。從線下到線上,蘇寧會員系統經歷了幾次變遷?系統架構又發生了哪些變化呢?且看下一篇蘇寧一線技術人孫遷與龔鋼關於《蘇寧雙十一“超級工程”排頭兵——會員系統架構的演進》的分享。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31077337/viewspace-2154001/,如需轉載,請註明出處,否則將追究法律責任。

相關文章