雙 11 這個關於購物的狂歡節,到今年已經是第九年。從 2009 年的 5000 萬元到去年(2016)的 1207 億元銷售額,不到十年時間,它見證瞭中國人消費習慣的遷移。這背後,是移動互聯網崛起、消費升級、服務業轉變等多層面的巨大變化。
這一場幾乎是全民參與的最大規模的網絡盛會背後,緊貼的是和我們生活最近的場景之一——購物。如果你參與過多年雙 11,也許會對曾經的服務器擁堵、環節不流暢印象深刻,而現如今,這樣阻礙「買買買」的情況卻越來越少。這背後讓人好奇的就是,雙 11 是怎麼變成現在這樣的?
帶著這個疑問,雙十一前夕,極客公園前往寧波海關、保稅區倉庫以及阿裡巴巴技術部等重要環節,采訪到在雙 11 前進行「壓測」的工作者,聽他們聊瞭聊在大傢盡情買買買背後的秘密。
看不見的爭分奪秒
壓測,全稱壓力測試,是對系統進行針對性測試,以此發現和解決問題,為正式活動做好準備。通俗點說,就是實戰演練,「磨刀不誤砍柴工」。
極客公園來到的第一站是寧波海關,這裡是目前全國跨境物流包裹量最大的進口口岸之一。在歷年雙 11 中,這裡承擔瞭全國將近 50% 的跨境包裹量。面對現今日益完善的跨境電商業務,今年雙 11 能否處理更海量的包裹單量申報,就成為其壓測的目的。
「現在日平均處理單量大約是 10 到 20 萬單,如果按照綜合預測今年雙 11 真的有 700 萬單,就是平時的 30 多倍。」寧波海關技術處劉陽科長介紹,相比去年 雙 11 不到三百萬單的量,今年壓力的確很大。
有海淘網購經歷的用戶應該比較清楚,在購買海外商品後,海關要對入境貨物進行審核,完成備案,這一環節中,地方海關要在初次審核後進一步上報至海關總署,經過總署審核後才能夠進行下一步動作。因此在面對雙 11 這樣的大型線上交易活動時,對於系統的考驗更加巨大。而對於電商企業來說,要想讓境外商品更快更高效送到用戶手中,也需要和海關默契配合。
從九月份開始,寧波海關就和阿裡巴巴對接,阿裡巴巴會生成上百萬份虛擬申報單,以測試海關系統能否在短時間內處理通關,並且頂住峰值壓力。這一過程可以發現系統需要多長時間處理完大量數據、哪些環節比較慢等問題。經過十月份的第一輪準備,目前寧波海關已經可以在 24 小時內處理 700 萬左右的單量,這意味著雙 11 當天,即便大傢都從海外買買買,海關處理起來也不會慢。
從海關采訪結束,我們來到寧波保稅東區的跨境電商專用倉庫。雖然還有二十多天才到雙 11,但這裡 30 多個保稅倉庫不少都已經堆滿貨物,貨車進進出出,工人們忙著理貨、貼碼、上架、包裝等工作。
寧波保稅區海關物流監控科科長孫長偉告訴極客公園,再有一個多星期,這些倉庫應該就能完成所有備貨上架,預包裝工作也將基本完成。根據預測,今年寧波關區 700 萬單的包裹量中,保稅區將達 560 萬單以上,這些貨物預計可以在 10 天內全部完成發貨。
但倉庫的壓測和別處不同,倉庫管理人員告訴我們,在雙 11 來臨前,倉庫也會進行實戰演練來測試短時間內處理貨物的能力。白天先將貨物累積起來,到晚上十二點再集中處理,並預測包裹處理能力,發現其中可能出現的問題,包括人員效率,也包括機器是否正常運轉等。
這和平常有所不同,平時用戶白天的訂單包裹,會在下午四點前發出,四點以後的包裹會在第二天早上發出,到雙 11 這天,所有包裹都是晚上十二點下單之後就開始上線發貨,所以考驗的就是十二點以後的處理能力。
倉庫管理人員告訴極客公園,用戶下單之後,倉庫在半小時以內就會接到物流信息,而寧波保稅區的海外商品提前已經準備就緒,所以相比過去,如今即便是在雙 11 期間人們大量購買的海外商品,出貨時間也和國內商品基本相同,到收貨點不會超過 10 天。
人變少,壓力卻變小瞭
每年雙 11 這一天的零點,大量用戶會進入阿裡平臺,選購商品。這裡包含的不僅僅是不同地區用戶復雜的使用習慣,同時也需要電商 / 海關 / 銀行 / 物流等各方面的快速協作,從這一層面來說,即便雙 11 已經到第九個年頭,也仍然會有挑戰。
「當流量大的時候機器性能會達到一個瓶頸,突破這個瓶頸就會影響用戶體驗,引起一系列異常。」
經歷過八年雙 11 的天貓雙 11 技術大隊長霜波告訴極客公園,系統要處理幾億用戶同時下單,要保障這一點是很難的,所以壓測這件事從第一次雙 11 開始做到現在。但最初幾年的壓測是在線下,之後發現線下壓測很難找到線上的問題,因為線下壓測要另外搭一套系統,這套系統裡的機器 / 容量都和線上很難匹配,所以到 2013 年,阿裡做瞭線上全鏈路壓測,技術人員會模擬雙十一當天用戶所有行為,直接在線上機器去下單。和線下壓測相比,線上壓測按照鏈路走,這個鏈路可以很深很深。
「比如你在淘寶下一個單,然後可以馬上支付,可以發出物流單,然後商傢就可以立即操作發貨,這就可以看作一個完整鏈路,我們可以把這個鏈路完全走完。」天貓雙 11 穩定性負責人叔同表示,之前壓測時,要對系統一個一個壓測,之後會知道哪個部分該加服務器,哪個該擴容。但這種分而治之的策略像堆積木一樣,不牢靠。如果一個應用和後面三個有關系,那聯系起來就會出很多問題。
「全鏈路就是把一整套串起來壓測,把支付寶 / 菜鳥這些也都串起來,打通消息交互和服務調用,都可以直接測試。這樣能夠達到跟雙十一類似的壓力環境。我們第一年做全鏈路壓測發現五百多個問題,後來分析過,如果這裡面有兩三個問題爆發,整個雙十一就是失敗的,但通過這樣的機制,能讓它把問題提前暴露提前解決。」
從 2013 年開始,全鏈路測試為雙 11 當天解決瞭不少問題之後,到今年,阿裡開始嘗試的,是如何能在效率提升的基礎上,讓更少的人,投入更少精力去參與雙 11 測試,所以就有瞭「尖兵計劃」,讓機器代替人去解決一部分壓測問題。
「我們在線上,白天會有百分之五十的量跑真實用戶,另外隔離出百分之五十的量去跑壓測數據,這樣就能自動去跑壓測數據,也不會對線上造成影響,今年尖兵計劃中,我們提前發現瞭一些系統 bug 還有硬件資源 bug,所以到晚上壓測時壓力就更小一些。」
霜波表示,之前的壓測都在晚上進行,為瞭不影響用戶使用,去年雙 11 前工程師對系統進行瞭 8 次壓測,而今年通過模型上新的算法,加上大數據的分析,壓測實際上在白天就自動完成瞭一部分,而另一部分也幫工程師解決瞭很多問題。10 月 20 日晚上,一輪新的壓力測試開始,當屏幕上的數據突破某一峰值後,曲線出現瞭一次小幅度的下跌,幾分鐘後,數字又恢復瞭平穩,看似普通的壓測,卻和往年有所不同。
「剛才我們的一臺機器就出現瞭過載,分配到這臺服務器的訂單都出現瞭交易失敗的情況。如果是去年,就能聽到有人說,要把這臺機器下線,但是今年你會發現這個過程是自動的,系統自動發現瞭這臺服務器的問題,自動把它下線,修復問題之後會自動把這臺服務器重新上線。」霜波表示,像這樣的人工決策點,今年有一半都交給瞭機器,壓測的次數也從 8 次減少到瞭 3 次,「工程師的工作量減少瞭 30%,輕松很多。」這不僅僅是減少工程師熬夜,也是自動化算法的優勢。
壓測不斷改進也在提升著雙 11 當天的峰值處理能力,叔同表示,在 2015 年雙 11,系統峰值處理能力是 8.6 萬次 / 秒,到 2016 年就達到 17.5 萬次 / 秒,盡管今年雙 11 具體情況尚不可知,但至少在壓測當中,系統的自動調配處理能力在不斷增強。
在我們能夠感知的維度,大多數人看到的雙 11 僅僅是一次普普通通的網購,可當互聯網用戶群越來越大,網上購物的行為越來越普遍時,要怎樣連接各個環節,讓所有人都能感知到體驗升級,怎樣確保大量用戶參與也不至於出現問題,這裡面不僅僅是不同領域的協作,也是技術的進步。而當你再下單參加雙 11 狂歡時,也許會有更進一步的體會。(編輯:王偉)
頭圖來自視覺中國