雙11“隱身人”: 我們的狂歡, 他們的戰場
摘要: 每年的雙11背後都有一群隱身人,他們就是阿里雲的工程師們。雙11是他們的戰場,他們的戰鬥是為了天貓雙11消費者們的“和平”。
文/天下網商記者 劉磊
葡萄牙詩人佩索阿在《惶然錄》中寫過一個他的生活經驗。他在電車上看到前面一個姑娘的外衣,接下來他會看到一整個“裸露的世界”:“我立即看見了面前的工廠,各式各樣的工種:製造原材料的工廠,製造深色絲線以便裝飾外衣彎曲領口的工廠。我還看見了這些工廠裡各種各樣的車間、機器、工人以及縫紉女工。”他甚至還“看見”了辦公室裡開始算賬的傢伙,經理和工人下班之後的家庭生活……如果我們有一雙佩索阿這樣的眼睛,當我們每年11月11日晚上在觀看貓晚,等著零點“剁手”時,也可以“看見”很多隱身在淘寶頁面背後的人。
今天故事的主角就是這些隱身人中的一個,他是阿里雲高階解決方案架構師楊旭。楊旭和他的阿里雲同事們在雙11中的角色是“供電”。在阿里雲內部,這個因雙11而來的“虛擬”職務叫“雙11技術隊長”。
複雜
在阿里巴巴,關於雙11的小故事每個人都能說出幾個。
一個回老家結婚的同事,第二天早上七點接新娘,頭天晚上還要和他們一起“壓測”。老家沒有網,只好找了一家網咖,從晚上五點一直待到第二天清晨。還有一個同事,老婆過生日,給老婆買了生日蛋糕,但當天沒能回家,第二天、第三天也沒能回家,後來“蛋糕都化了”。
阿里雲雙11技術隊長楊旭
之前講的都是別人的,現在輪到自己了。10月6日,楊旭接到阿里雲總裁胡曉明的電話,讓他到阿里巴巴西溪園區彙報工作。正在江蘇老家準備第二天婚禮的他只好告訴老闆,自己第二天要結婚,“這個來不了”。最後只好改成了網上遠端彙報。“沒有辦法。你問題沒解決,下一個壓測點沒有人會等你。”楊旭說。
阿里巴巴內部有一句話:沒經歷過雙11的人不算阿里人。楊旭對這句話深有感受。每經過一次雙11,團隊的凝聚力都變得更強了,無論是BU之間,每個BU內部的不同部門之間,還是同部門的同事之間。在平時的工作中,同事們在合作中難免會有分歧或者摩擦,但到了雙11,“大家真的是齊心協力。”在雙11這場共同的戰役中,你的工作就是我的工作,雙11在所有人的工作列表裡都共同享有最高優先順序。阿里雲每年參與雙11的工程師都會換,目的就是為了“讓更多的人能夠參與進來,感受到(阿里)技術上的這樣一個文化”。
IoT、邊緣計算、區塊鏈……今年的雙11,阿里巴巴引入了更多的新技術,光是阿里雲支撐雙11的技術小分隊就有18個。作為技術隊長,楊旭負責總體的技術規劃、風險把控和專案管理。每年的雙11,就是阿里巴巴整個集團的大考,或者更形象地說,是各個BU、不同崗位協同作戰的戰役。
這已經是楊旭參與雙11大考的第七年。從最初在AliOS時負責交易、物流兩個核心系統到如今成為統籌管理500多人的阿里雲雙11團隊的技術隊長,楊旭一直身處雙11最前線。在雙11這個戰場上,經驗從來不會讓壓力有任何的減輕。每一年都是新的:前一年沒有出現問題,不代表今年就不會出現問題。
更何況,每一年的擔子都更重了。“玩法”隨著外部環境的變化越來越豐富。楊旭介紹,今年雙11與往年的一個明顯不同是,在新零售大背景之下,多了不少與線上聯動的線下活動。銀泰百貨在上海,太古匯在廣州都將有大規模的線下活動。
新零售業務的同事給楊旭看了一些網路蒐集的顧客砸店的視訊,提醒他線下活動的特殊性。這種特殊性將阿里雲作為基礎設施的重要性進一步放大了。往年的雙11,阿里雲的目標是可用性支撐到4個9或5個9(出問題的概率控制在萬分之一或十萬分之一),而今年的要求“就是百分之百”。
雲端計算聽上去像一個近乎虛幻的概念,但它的影響是實實在在的,就像電一樣。雙11的每一個環節,從使用者下單、支付,賣家物流到晚會直播,都有阿里雲工程師大量細緻入微的工作。視訊雲、圖片雲、電商雲、金融雲、物流雲的順暢運轉,都是楊旭和他的同事們的責任。這就好比你有一座大園子,每年要在11月11日這天開門迎客,客人是海量的,而且每年都在迅速增長。作為主人,之前要做的準備工作之巨量是可想而知的,要考慮的細節多如牛毛。
不到十年的時間,雙11已經從當初普通的商家促銷日進化成為整個中國的購物狂歡節。
工程師們在雙11作戰室
一組數字非常直觀地反映了這一巨大的變化。從2009年開始,每年天貓雙11全天銷售額分別為0.52億、9億、52億、191億、350億、571億、912億、1207億,到了2017年,天貓雙11交易總額達到1682億元。2017年11月11日零點後的第一個小時裡,天貓交易峰值32.5萬筆/秒,這一數字是2009年的812.5倍——當年的交易峰值只有區區400筆/秒。幾乎每一個阿里工程師初到阿里尤其是參加雙11之後都體會過“震驚”,楊旭也不例外。2012年第一次參加雙11,他終於體會到什麼叫“限制了你的想像力”:在資料圖上,平時的流量全都變成了底部幾乎看不見的一條橫線,只剩11月11日這天一個“非常大的峰值”。
“豁出命也要上”
採訪中楊旭說的最多的一個詞是“很複雜”。“這裡面你要關注到的細節非常非常多”,就單單拿購物車來說:使用者是放10件商品還是20件商品,這些商品是在同一個商家那裡買的還是從10個不同商家那裡買的,這些都直接影響後臺的流量並對系統提出不同的計算需求。五花八門的優惠券組合、區域限售的大件商品……一個個的因素加進來,就更加複雜了。
正常情況下,楊旭和他的同事們都隱身在“剁手黨”們順暢的購物體驗之後。他們在前線“廝殺”,為的是躺在床上一邊看著貓晚一邊等著搶購的使用者們的“和平”——對他們來說,“剁手黨”們意識不到他們的存在是理想狀態,也是必須實現的目標。一旦人們意識到他們的存在,就是說,出問題了。就像你只有在停電時才會意識到電的存在一樣。
阿里巴巴集團CEO張勇(第二排左三)、CTO張建鋒(前排左一)與護航2017年雙11的工程師們
楊旭坐在我面前接受採訪是10月29日,離雙11還有不到兩週的時間。全鏈路壓測正進入尾聲。11月2日是最後一次壓測的時間,在這之前,要解決掉“所有的問題”。這之後,就像大考前的考生一樣,整個團隊會進入一個“放空自己”“查漏補缺”的狀態。
對“剁手黨”們來說,雙11只有一天,但對楊旭和他的同事們來說,每年的雙11從前一年的12月份就開始了。這個時候集團會一起開一個會,確定新一年的雙11目標。然後阿里雲會從集團目標出發,用幾個月的時間進行技術可行性調研,在四月底五月初確定自己的技術目標。
戰場的硝煙從這時就開始瀰漫了:此時確定的目標,沒有任何回頭路可走。“你只要決定上,豁出命也要上。”如果把備戰雙11比喻成蓋房子,那麼楊旭和他的同事們負責的就是地基部分。“蓋了八個月了,你告訴我地基不行,我要拆掉重搞,別人肯定沒辦法繼續做了。”
八月是集團正式啟動雙11備戰的時間。阿里雲的工程師們要與天貓等業務部門進行一輪輪的溝通。從這時候開始,“所有的問題都是倒計時的。”以前解決一個問題,可以是一週、兩週,在雙11這裡,是全部以天來計的——業務部門提的要求都是“X天之內必須解決”。
雙11前的一個多月裡,每天“除了上廁所,都在解決問題”。通宵從來不是新鮮事。去年的雙11,楊旭曾經連續一個星期都沒有回家。每天待在專案室裡,工作到凌晨四五點,甚至早上七八點,然後在公司睡幾個小時,十點多起來繼續幹。
阿里這些年幾乎所有重要的技術變遷,去IOE、異地多活、單元化……楊旭都是親歷者,作為阿里巴巴集團雲化專案負責人,他主導設計了混合雲方案在阿里集團的落地,從計算、網路、儲存、大資料多個層面全面推動整個集團基於雲的基礎技術架構統一。雙11是混合雲落地的一個典型場景。混合雲可以有效解決的正是這種突然出現的“非常大的峰值”,即所謂的脈衝式計算。
網際網路時代的到來,使得脈衝式計算越來越成為計算資源使用的常態。微博上的熱點事件、春運期間的火車購票、世界盃的計算需求都屬於此類。這些場景尤其是雙11會極大程度地放大和暴露技術問題,“平常是萬分之一(的概率),那個時候可能是雪崩的效應。”所以在雙11的場景中,“只要是問題,每一個問題都要有答案。”多小的概率都不能放過。
但人終究不是上帝,準備得再充分,意料之外的狀況總是難免。楊旭和他的“戰友”們踩過各種各樣的“坑”。講起這樣的“坑”,楊旭信手拈來。比如,他們早年曾經遇到過一個問題。按照正常的購物流程,他們在每一個環節都做好了充分的準備。但真正到了雙11的時候,他們意外地發現還是有一塊出問題了。原來他們沒有考慮到一個細節:付款失敗的使用者會從哪兒重新購買?現實告訴楊旭的答案是,他們都回到了“待付款”頁面。忽略這個細節,也就意味著事先並沒有分配給這個系統足夠的流量,網路擁堵因此就成為必然。
問題像牛皮癬一樣,“去年把這個東西修掉了,今年可能又以另外一種形式表現出來。”這樣的防不勝防讓楊旭和他的同事們更要盡最大可能地做好防範,“儘可能建築圍牆”。
這些年雙11的工作經歷深化了楊旭對工程師這個職業的理解。他把這個職業最重要的素質歸為兩點:耐得住寂寞、追求極致的精神。每年雙11,都是坐著冷板凳一次次向極限發起的技術挑戰,需要的是工匠一樣的精益求精。“真的要非常非常細。每個數字都是要精確到小數點後兩位。”楊旭感慨。
工程師的責任
這些“牛皮癬”、踩過的一個又一個“坑”,換一個說法就是極其豐富的場景,這是阿里巴巴的獨特優勢。雙11像一個強有力的引擎,推動著阿里巴巴這臺巨型機器的發展。阿里有一句話:你的技術好不好,要經過雙11的檢驗,“是騾子是馬拉出來遛遛”。這些複雜業務場景在不斷驅動著阿里巴巴的技術迭代和發展。
媒體中心大螢幕,正在與雙11作戰室現場連線
作為“基礎設施”的提供者,得到業務方面的認可是楊旭最有成就感的時刻。2013年雙11,他還沒加入阿里雲,當時在AliOS技術事業群的他負責庫存系統。超賣問題(所謂“超賣”,就是商家在系統中接單超過了實際的庫存數,從而導致超出預期貨量的訂單不能正常發貨)曾經一直是讓商家頭疼的問題,這年備戰雙11期間,他和同事們經過努力解決了這個“痛點”。
活動結束後,阿里巴巴CEO張勇拿起話筒,對參與雙11的同事們講的第一句話就是:“剛才有個商家打電話給我,說你們今年這個系統非常給力,一單都沒有超賣。”這個瞬間楊旭至今記憶猶新。
楊旭感到,儘管內心的壓力仍然很大,但相比往年,今年的雙11還是更順了。隨著阿里雲的資料積累和技術迭代,原先很多棘手的問題都找到了“科學的”解決辦法。
比如以前分配系統流量時,都是靠工程師們“拍腦袋”,現在有了模型——每年他們都會基於往年的雙11資料進行更為精準的預測。從2012年的最小單元驗證開始,阿里雲不斷迭代優化到今天,已經成長為“應用+儲存+快取+資料庫+網路+大資料”的全技術棧的混合雲解決方案,可以有效地應對和處理雙11這樣的脈衝計算。
2013年開始,整個集團在雙11備戰工作中增加了全鏈路壓測。所謂全鏈路壓測,也就是通過大量的機器人模擬各種各樣的使用者從各種終端登陸,提前把雙11的所有環節“演練”一遍,發現問題,再一次次地回過頭排查,看問題出在哪兒。
阿里巴巴是技術路上的先行者,每一個困難,阿里巴巴先遇上了,解決了,豐富的經驗和紮實的技術就此沉澱下來。現在阿里雲正在用這些技術賦能360行。雙11沉澱下來的很多技術都成為其他企業可以在阿里雲上購買的產品。彈性裸金屬伺服器(神龍)、例項儲存 、vbc(vpc) 虛擬專有網路,這些在阿里雲上線的產品都是此前雙11沉澱的技術。
像很多人一樣,最初工作對楊旭來說只是一個謀生的飯碗,但到了阿里之後,工作開始產生了謀生之外的意義。在阿里雲,他要和各行各業的客戶打交道。在這些“接地”的工作中,他感到了工程師的責任。他開始意識到,自己工作中的每一個問題不再只是一個“小問題”,它對於客戶和社會來說可能都會產生很大的影響。“比如小的創業公司,只有幾百萬去搞一個活動,因為你的這個問題導致活動沒有完成,下面就沒有錢了。別人把身家性命放在你這裡,你就不只是謀生了,真的是有一種責任在裡面。”
這份工作也讓他養成了觀察生活的習慣。在生活中遇到某個場景,他會想,有沒有可能通過技術的方式改進它?對他來說,解決問題一直是他工作中樂趣的一個重要來源。以前做程式員時,有時遇到很難調的bug,夜裡做夢甚至也會夢到,一下子驚醒過來,他會趕緊起來把夢到的思路在本子上記下來。
“最快樂的就是解決問題的一瞬間,比如你調調調忽然一下,這個介面就調通了。那種成就感真的不是金錢能帶來的快樂。”對楊旭來說,這種快樂從沒變過,只是“問題”正在變得越來越大,以前是程式碼中的bug,現在是阿里雲各行各業的客戶需求,是“讓整個社會變得更好”。