文章摘要: 音量最大的是鍵盤的敲擊聲。霜波的視線一直沒離開資料大屏,「目前,各項資料指標正常」、「還有5分鐘」「還有1分鐘」,每隔幾分鐘,她間或說一句,面色平靜,語氣平緩,音量不大。
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人左右。
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的零點體驗。
所以到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難以做到十全十美,每一年的問題都不同。但霜波說,阿里的技術人絕不會讓同樣的錯誤重複兩次。