「深度」親歷流量尖峰時刻:一名阿里技術員工的雙11十年

「深度」亲历流量尖峰时刻:一名阿里技术员工的双11十年

每年雙 11 爆發性的峰值都是整個技術團隊的練兵場,霜波自己在這場硝煙和戰火中成長,手下帶的團隊也從最開始的 50 人,增長到現在的 160 人左右。

2018 年 11 月 10 日 23 點 45 分,阿里巴巴光明頂技術作戰中心,霜波拿起話筒,“還有 15 分鐘”,現場立刻安靜下來。

音量最大的是鍵盤的敲擊聲。霜波的視線一直沒離開數據大屏,“目前,各項數據指標正常”、“還有 5 分鐘”“還有 1 分鐘”,每隔幾分鐘,她間或說一句,面色平靜,語氣平緩,音量不大。

一位參加過四年雙 11 的工程師說,霜波的人和她的名字很不相符,“經過大風浪的人,在她臉上,你幾乎什麼風霜和波瀾都看不到。”

零點一過,淘寶流量以肉眼可見的速度暴漲。

第一個數字產生:2 分 05 秒,雙 11 交易流水過 100 億。GMV 背後是更龐大的交易筆數,交易後發生的取消、合併訂單等等。數據顯示,今年雙 11 每秒訂單創建峰值達到 49.1 萬筆。

每當過零點、1 點的峰值、系統逐漸穩定的時候,霜波和團隊會產生一種巨大的成就感。“我還挺喜歡那種心跳的感覺,”霜波說。

霜波是東南大學計算機專業研究生,專攻軟件測試。後又去美國的林肯大學讀了一年博士,方向不變。大學的時候,班裡 30 個人,只有 6 個女生;到博士階段就更少了。

霜波 2008 年入職阿里,現在已經過去整整十年。最早在阿里媽媽,後調動到天貓,然後一直在技術質量部,多年參與保障雙 11。最近三年任天貓雙 11的技術大隊長,協同很多部門一起負責雙 11 的穩定性工作,現在是阿里的 M5。

每年雙 11,阿里巴巴的組織形式是這樣的:委派一個團長,負責整體牽頭;團長下面設立三個大隊長;大隊長下面有各個分隊長。今年雙 11,不僅有天貓淘寶等核心電商部門參與,還有餓了麼、口碑、居然之家等,需要協同的BU繁多。

這樣的機制,會讓各個業務都抽調一個隊長、副隊長加入。這些隊長、副隊長在自己的內部又會成立一個雙11的團隊,金字塔結構保證項目穩定。雙 11 是整個集團最核心的問題,所有的 BU 都必須服從於雙 11 的優先級調配排序。

技術部的考核標準是交易峰值。去年交易創建的峰值在 30 萬 QPS 以上,今年承諾在 40 萬以上,QPS 指每秒查詢率,即對一個特定的查詢服務器在規定時間內所處理流量多少的衡量標準。

雙 11 十年,阿里巴巴代表了電商行業最先進的技術力量,每年雙11爆發性的峰值又是整個技術團隊的練兵場。霜波自己在這場硝煙和戰火中成長,手下帶的團隊也從最開始的 50 人,到現在的 160 人左右。

「深度」亲历流量尖峰时刻:一名阿里技术员工的双11十年

阿里2018年雙11作戰室

2009年措手不及

霜波是兩個孩子的媽媽。每年雙 11,她的團隊從 10 號開始進行封閉。10 號早上就會入場,白天檢查各種機器工作的狀態,下午開始做各種預熱。作戰室裡備有定勝糕、大麥茶等食品,還有行軍床,讓大家隨時能夠休息。

雙 11 當天,一直到下午 6 點,會有各種降級預案。對於一些對用戶影響不大,但是又非常消耗性能的東西,技術團隊會把它降級掉。即使是最穩定的時候,也差不多都要處理到早上 6 點半。

下半場時候,技術團隊才開始自己看看購物車,買點東西。霜波的策略是:全家列一份銷售清單,零點的時候讓老公去搶。

2009 年是淘寶商城成立的第二年,這一年的秋天,運營的同學想搞一場營銷活動,逍遙子喜歡四個一,而 11.11 又是網民創造的”光棍節“。誰也沒有想到,這樣一個隨意的選擇,竟然在若干年後成為影響中國乃至全球的大事件,造就了電商行業最具影響力的品牌。

第一屆雙 11 的活動口號是全場五折,共有 27 個商戶參加,淘寶商城的成交額是平時的十倍,超出團隊預期。

幸運的是,在 2009 年初,“五彩石”項目將淘寶和商城的系統底層架構統一了,雖然商城的成交額增加十倍,但由於基數還比較小,與淘寶的日常成交額比起來並不大,系統上沒有出現特別重大的事故。

儘管如此,暴增的流量還是讓工程師們措手不及。當年第一屆的工程師四虎回憶說:“第一年雙 11,作為交易系統的 owner,接到老闆指示,光棍節要搞個活動,你值一下班。那年我們啥都沒做,就坐在那看服務器的情況。零點發現流量暴增,一下子服務器就掛了。我們就手忙腳亂地去重啟服務器,恢復系統。系統起來後,發現店鋪和商品圖片又出不來了。“

第一次雙11,完全是意料之外、沒有做任何準備的,不僅僅是把交易和商品系統壓掛了,同時把很多商家的外部圖片空間也給壓掛了。服務器容量、網絡帶寬容量、系統保護都是沒有的。

2012年:壓力最大的一年

2011 年淘寶商城成為獨立的事業部,雙 11 對於剛剛成立的淘寶商城技術部已經是一件相當重要的事情,各團隊提早幾個月就開始準備,並且上線了第一期的價格申報系統,完成了雙 11 的商家商品報名的工作。

2012 年,集團從 5 月份開始啟動雙 11 項目。當天晚上整個集團的核心技術幾乎都 All in 在雙 11。每個核心人員做好各種預案手冊,當天晚上全神貫注就等著零點的到來。

霜波感覺壓力巨大。她同時還兼任情報中心的隊長,專門收集問題反饋。零點到來,流量來得比以往更猛一些。

零點的時候,各種系統報錯、立刻下單報錯、購物車支付報錯、支付系統報錯、購物車的東西丟失,系統顯示交易成功率不到 50%。系統排查的大部分指向都是一個錯誤——取不到商品信息了。再進去看,商品中心繫統的網卡被打滿了,無法再響應請求。情況緊急。

商品中心開啟了事先準備的降級方案,但效果並不明顯。降級手段包括降低圖片像素質量、減少旺旺亮燈等。大約在 1 點左右,系統流量峰值慢慢緩和,系統才慢慢恢復到 90% 以上。

另一個發生問題的是支付寶的健康檢查系統。和所有系統的自我保護系統一樣,這個健康檢查系統會定時掃描線上機器,根據機器應答返回時間判斷是否正常,將超時嚴重的機器在應用列表中剔除。只是在雙 11 的流量之下,幾乎所有機器都發生了響應過慢的情況,然後大部分機器都被剔除了出去。

霜波所在的團隊快速下線了這個系統,支付成功率重新回到了正常值。在 1 點之後,系統各項指標都恢復了,她心情才稍稍輕鬆了一些。

雙11在逼著霜波和團隊成長。

剛開始,霜波自信地認為,原先有那麼多方法,做過那麼多測試(統測試、單元測試、接口測試、用戶測試、線上演練、性能測試、破壞性測試),所有方法都用盡的時候,是可以保障雙 11 穩定的。但結果,2012 年雙 11 的技術指標顯示,它是真的失敗了。團隊不得不做創新。

「深度」亲历流量尖峰时刻:一名阿里技术员工的双11十年

霜波在阿里巴巴西溪園區接受界面新聞記者採訪

在當年雙 11 結束後的覆盤會上,所有技術同學達成了一個共識,一定要有一套系統能夠最真實地模擬雙 11 當天的流量,能夠及時發現大壓力下線上系統的所有問題和風險,保障雙 11 的零點體驗。

所以到 2013 年,霜波集合了各個 BU 創造了一套全新的壓測系統:全鏈路壓測。這個工具在 2013 年上線之後,第一年壓測出了 600 多個問題。但從 2013 年開始,雙 11 就沒有出現過大的問題。

外界可能並不瞭解全鏈路壓測在行業中的意義,是這套系統讓雙 11 的技術有了本質的飛躍。它能夠安全模擬用戶在雙 11 當天的流量行為,提前預知雙 11 當天可能會發生哪些問題,然後把它修復掉。這讓整個阿里巴巴技術體系上了一個臺階。

新的壓測對數據庫要求非常高。因為如果寫得不好,會導致數據全部錯亂。基本上所有的系統、所有的中間件、所有的數據庫全部要做改造——相當於要改造每一個系統,才能夠讓的全鏈路的壓測成功。如果沒有雙 11,沒有公司會做這樣的事情。它既耗成本、又要考驗人的勇氣。

在內部推行全鏈路壓測的場景讓霜波印象深刻。一個全新的系統,從產生到全面實施從來不是一帆風順的。剛開始,大家根本不敢到線上壓,擔心影響用戶,直到有人大膽地承諾:“出了故障我來背!”

到 2013 年 9 月時,剛開始兩次大規模的壓測都失敗了。有人開始懷疑方案的可行性,思考要不要回到之前的壓測模式,直到有人堅決地前行:“我們這次一定要成功,讓所有的開發一起來加入”!有人在打趣:“摩擦了一晚上都沒有動靜。”有人在寬慰:“第一次從來不會一把成功,我們多磨合幾次。”

”我清晰地記得第一期的那些開發同學,在一個小小的會議室裡面,晚上 12 點我回家的時候他們在,早上 8 點我來公司他們還在。眼睛裡經常有血絲,但是說起話來還是中氣十足。每次給我的答覆都是:‘我們會成功的。’感謝這些同學,無論現在是否依然在雙 11 的崗位上奮戰,但雙 11 的功臣中一定會有你們的名字。“霜波回憶當年的場景。

針對庫存的問題,有了 2012 年的經驗教訓,阿里巴巴技術團隊在 2013 年做了獨有的超賣審計系統,會實時對賬所有庫存,一旦有超賣馬上能收到報警,這個系統在這些年的庫存保障中發揮了很大的作用。

到 2013 年時候,由於各個系統的預案加起來已經超過 2000 個,無法靠人來控制和梳理了,霜波的團隊做了一個所有預案的控制系統,提前降級的開關可以準時執行,準備好的預案可以錄入並且做好權限和通知管理。

2015年:晚會聯動 新的探索模式

2015 年,第一次有了雙 11 晚會,晚會現場可以現場抽獎,技術部的同學實現了線上和線下的同期互動。效果超出期望的好,客戶端註冊系統當場就被用戶的熱情打爆了,技術緊急擴容解決問題。

零點,無線端導購的流量大大超過了預期。而當時,物流系統和導購部署在同一批物理機之上,機器資源發生爭搶,有 10% 的物流機器被打死,無法響應,那麼落入這批機器的用戶就會購買失敗。

在零點 10 分的時候,團隊做了一個決策,直接剔除了這批死掉的機器,系統的成功率重新恢復到正常值。當時的決策有點風險,因為零點 10 分的時候流量依然很大,他們無法推測剔除這批機器的風險,那 90% 的機器如果扛住了,團隊就成功了,如果扛不住,可能所有交易就會跌到零。

2015 年,也是交易全面個性化的一年,每個用戶都會被會場推薦帶入自己的喜好和偏向的領域。這一變化讓無線的點擊率和購買率都得到了提升,也為下一年的全面個性化打下了基礎。那一年雙 11,無線成交佔比達 68.67%。

”我們最虧的是不認識那些明星。當一個明星出來需要做互動時,但是技術不知道這個人是誰。旁邊得配一個熟悉娛樂圈的告訴我們誰來了,我們把它彈上去。挺好玩的。“霜波說。

到了下一年,手機客戶端自己做起了直播。晚上就可以在手淘和天貓客戶端一邊看晚會一邊參加抽獎和互動遊戲,再加上紅包和購物券等產品,產品種類繁雜。由於零點的限流產生,就發生了組合下單被限流的現象。

雙 11 前一天技術團隊已經評估出了這個風險,所以準備了一個後臺程序幫助回補沒有使用的紅包和購物券。可是由於流量的長時間持續,限流時間超出預期,後臺程序也在大壓力下掛掉了。技術的同學只能對後臺程序進行擴容,從準備的幾十臺機器擴展到幾百臺機器,終於在早上 6 點完成了紅包和購物券的回補。

也是在這一年,系統實現了 50% 的雲化。在雙 11 之後一週內就將機器資源釋放出來,提升機器循環使用的效率。

從 2015 年以後,阿里技術團隊更重視線上和線下的聯動反饋。再加上馬雲自 2016 年雲棲大會提出新零售後,新零售作為系統級戰略被集團推出,技術的保障是第一步。線下零售它對穩定性的要求會更高。線上交易有 bug,可以退出系統刷新一下;但如果線下系統出現問題,用戶對此的容忍性會更差。

”線下的話我們基本上是每個POS、每個付碼器我們必須是一臺一臺的去測試。而不像線上。線上我們只要監控整體的大數據,99.99%我們覺得就可以了,但是線下我們要把保證 100%。“霜波說。

像盒馬這種集團內部的創新項目還好,但是很多系統是商家自己的,上線的時候要有更多磨合。比如,傳統商家掃碼的時候,必須把用戶請到固定的地方來說支付。現在,新技術可以讓他們拿一個 pad,用戶要支付的時候讓他籤個名就已經可以了——更便捷、更加智能化。

這是一條漫漫長路。

未來

霜波是計劃型的技術人員。

雙 11 讓她感覺時間過得飛快。上半年在準備雙 11、結束後需要覆盤。每年的正式投入從 7 月份開始,從市場需求、到業務、最後反饋到技術這裡,然後開始和商家開溝通會,打磨用戶體驗。

在西溪園區 7 號樓,”光明頂“辦公室,核心 200 多個員工,一起在技術團隊的作戰指揮室裡給這個中國最大的商業帝國提供核心保障。

霜波最近一次發火是在上週五壓測時候。值班期間,一個系統出現問題,造成很多準備失效,小問題影響全局。第一輪沒有壓起來,因為一個降級的開關沒有執行到位,相當於很多其他準備的系統都驗證不到。霜波當場就要飆火了,旁邊幾個人把她按住。

大部分時候,霜波制定了計劃都需要嚴格執行,手機得隨時保持開機。雙 11 值班時,不止是 24 小時,前面的 12 個小時肯定也是在的,這 36 個小時基本上就不會回家了。處理完事情,如果能睡的話,她可能才會睡上兩個小時。

今年,阿里在張北建了大規模的綠色數據中心,承擔了雙 11 近 1/3 的數據量。冷風技術、服務器浸泡在溶液裡的液冷技術可以降低能耗。這些服務器會支撐雙 11 的電商交易、支撐大數據計算,讓雙 11 更節能、環保。未來這些節能技術會更大規模的覆用,在這次雙十一驗證之後會更大範圍推廣。

雙 11 難以做到十全十美,每一年的問題都不同。但霜波說,阿里的技術人絕不會讓同樣的錯誤重複兩次。

「深度」亲历流量尖峰时刻:一名阿里技术员工的双11十年
「深度」亲历流量尖峰时刻:一名阿里技术员工的双11十年「深度」亲历流量尖峰时刻:一名阿里技术员工的双11十年
「深度」亲历流量尖峰时刻:一名阿里技术员工的双11十年「深度」亲历流量尖峰时刻:一名阿里技术员工的双11十年


分享到:


相關文章: