從大麥網架構學到的東西

業務特點

大麥業務鏈條涵蓋了從 B 端生產、C 端銷售、現場換驗的全套流程。其業務架構也經過幾個階段的發展:

第一階段

此時的大麥架構還在大麥自己的 IDC 內,主要是原有大麥技術架構承擔需求。此時的架構存在以下幾個問題:

  1. 保障設施不健全:大麥 IDC 機房硬件、快遞均有限制,DB 還是 Sql Server,很多庫是單庫,不能應對大型搶票時的挑戰;

  2. 預案、限流不健全:系統在面對高流量時,沒有自我保護措施;

  3. 監控運維手段零散:定位問題、解決問題耗時長;

解決方案

這一階段主要是一些零散解決方案,針對問題解決。比如搭建簡易版限流方案,做性能優化點,整體上未體系化解決問題。

第二階段

第二階段由於已經被阿里收購,所以架構重構直接切入阿里域內解決方案,逐步替換掉老系統。

這一階段的關鍵就是新老方案的遷移:

  1. APP 鏈路改造:技術改造重點放在無線端,所有 APP 流量先進入阿里域,再路由到大麥 IDC,讓阿里機房抵擋大量流量;

  2. 藉助阿里基礎運維設施:由於入口流量直接進入阿里域,降級、限流的動作可以依賴於阿里服務治理平臺能力做;

  3. 建立搶票預案:圍繞於大型搶票場景做預案建設,比如商詳頁增加 tair 緩存,靠 tair 抗住阿里域流量,建設流量打到大麥 IDC;

第三階段

第三階段針對於搶票流程上的系統做了體系化升級,完善了搶票流程和可靠保障機制。升級後的架構可以承接住所有大型搶票需求,用戶體驗有所提升。

優化動作:

  1. 精簡了搜索 response 過大的問題,降低了對寬帶的壓力;

  2. 在阿里域內,大型搶票選座流量直接打到了阿里域內,採用異步和類似 ConcurrentHashMap 的平衡機制,解決了大麥 IDC 選座的緩存一致性問題;

  3. 繼續完善阿里域內交易鏈路功能,下單接口全部放在阿里域內,下單之後訂單同步到大麥 IDC 內服務履約;

保障流程:

大麥主要是票務平臺,主要保障的黃金鍊路就是搶票,針對於這個鏈路需要建立可靠性保障和 SOP。

搶票分爲搶票前、搶票中、搶票後等環節:

圍繞於搶票流程,可靠性保障包括:預案 / 預演 / 容量等專項;

  1. 預案建設:已有成熟的流程不再安排預演,新玩法需要模擬搶票,提前暴露問題,並建立體驗問題預案;

  2. 容量保障:技術拉取全鏈路最近類似項目壓測數據作爲基礎數據,和線上真實流量做評估,分析搶票環節是否可以順利支撐,是否存在性能瓶頸,是否需要做限流;

  3. 預案執行:在全鏈路中找到核心場景,如:首頁搜索、商品詳情、票務選座、交易下單、票務庫存、訂單服務、無線端等場景建立預案。同時將高頻使用緩存信息在活動開始 30 分鐘預熱到緩存中;

  4. 問題覆盤:針對於每次活動出現的問題、客服反饋、線上問題進行收集,組織覆盤,並將 todo 落實到 action 上,關注 action 執行進度;

第四階段

在進行了全鏈路系統性完善之後,我們依然不能說肯定不會出現宕機的問題。因爲搶票環節註定是少數人可以搶到票,搶不到票的可能在輿情瘋狂吐槽。爲解決這些問題,我們需要爲真正的用戶提供極致體驗。

新交易系統上線,融合了大麥交易系統和阿里星環平臺,渲染接口、下單接口基於星環實現大麥特性擴展。

星環帶來的優點有 2 點:

  1. 依託於共享基礎能力,除了可以複用共享能力外,還可以參考主站交易的大促方案,比如限流、監控日誌、問題排查等。基於星環可以實現未支付關單等個性化能力定製,提高研發效率;

  2. 結合集團風控體系,人機識別、定製策略等對非法用戶進行了二次攔截,讓真實用戶搶票體驗更好,大大提升了真實用戶購買率;

爲摸清交易鏈路的性能水位,需要做到性能常態化,每月定時執行壓測、結合當月各項系統功能,評估壓測場景和壓測目標,壓測完成後,更新鏈路現狀,爲搶票提供有效數據支撐。

之前的可靠性保障規範不完善,監控、預案、入口不統一。所以建立預案自動化平臺,運營在配置搶票活動時【搶票開始前】,可以設置一些預案;在【搶票進行中】可以對核心場景進行統一視圖監控,並且有能力實現人爲干預和控制;在【搶票結束後】提供歷次搶票數據,供分析,幫助運營自助完善,實現自動化流程。

比如針對於商詳頁,有 6-10 項降級預案(包括本地緩存或 tair 緩存、三方依賴接口限流、異常降級等),每個預案設置的值,執行時間都有差異,每次降級操作都需要人工經驗判斷,操作繁瑣。這裏需要實現自動化或系統容錯實現降級。

總結

經過以上幾個階段,大麥從最開始的 “原始” 狀態進化到了 “常態化” 流量壓測、預案執行新階段,系統可靠性提升,用戶體驗提高。後續還需要在項目熱度智能分析、風控自動調節等方向進行持續優化。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/kMUje6j5B1MffFv29kSbUA