閱讀972 返回首頁    go 阿裏雲 go 技術社區[雲棲]


餓了麼四次技術進化的曲折路,記訪談張雪峰

近幾個月,餓了麼CTO張雪峰氣定神閑了一些。如果把時間撥回兩年前,你會發現他焦頭爛額。

這並非誇張,張雪峰加入後,餓了麼日訂單從幾十萬增長到一百萬,又從一百萬增長到三百萬,接著到2016年聖誕節的九百萬。至今天,其訂單量僅次於淘寶和滴滴,與美團不相上下。亮眼數字背後,張雪峰和他團隊背負的技術壓力可想而知。
 
業務突飛勐進的兩年裏,這位敢於挑戰的技術人,做過很多嚐試和努力,但他最終明白一件事:“如果完全靠自己去招人,不管用多大的代價,壓力還是太大了,不僅成本居高不下,人肉堆積也未必理想。”麵對雲棲社區記者采訪時,他指出,對於創業公司而言,時間更為寶貴。

06a9e6b26c6bb7a57ae1e1f0acd9e8ce072eb508
餓了麼CTO張雪峰
 
在一個陽光明媚的初春午後,他坐在西溪濕地內某棟樓的一個陽台,迎著太陽和記者講述了餓了麼的技術發展曆程,以及他的一些思考。


2014年秋天,張雪峰跟餓了麼邂逅,那個時候他是餓了麼聯合創始人汪淵的技術顧問。2015年春節後,他正式加入餓了麼,成為這家外賣平台的CTO。緣分開始之時,挑戰也接憧而至。
 
兩個維度:
 
  1. 業務:業務發展實在太快了,2014年5月份,餓了麼接受大眾點評D輪融資時,訂單還隻是剛有10W,但僅僅幾個月後,餓了麼訂單就衝到了接近百萬。“全網係統壓力非常大。”張雪峰說,以前隻在幾十個城市有業務,而當時準備在兩百多個城市上業務。
  2. 人才:2014年秋天,餓了麼的技術團隊大概隻有35人,隨著業務發展,當張雪峰入職時,人員已經翻到70多人。如果要擴充技術路線的話,挑戰非常大。挑戰並不在技術或技術架構上,而是在人上。“業務翻倍,人不能跟著一直翻倍吧?”更何況人才難招,這讓張雪峰很是頭疼。彼時,Python在國內基礎設施和運維比較多,但做核心係統比較少,所以招人很難。
 
2015年那個夏天,他開始決定真正上雲。當然在上雲前,也做了很多嚐試。比如,Python招不到人?那就分多路,使用Java和Go。另外,餓了麼也有充裕的現金儲備,所以在IDC上也加大了很多投入。
 
但問題的解決之道,並不是僅靠堆砌就可以解決。“不同技術路線及新技術不斷引入後,要考慮全局複雜度”,但這還不是關鍵,在張雪峰看來,最關鍵的是餓了麼的特殊性:“餓了麼峰值壓力很明顯:集中在中午、晚上的前後三個小時,而且在高峰時,問題會不斷放大。”他舉了去年的一個例子,2016年5.17餓貨節,餓了麼峰值高達每秒1.5萬筆,導致前幾秒就把入口打爆而不得不進行限流(用戶體驗不好)。“特點很明顯,峰值效應後就是一個陡峭的曲線。”他說,壓力大的時候,會很大,其他時候則是閑置,全局資源利用率較低,不太劃算。
 
於是他換了個思路,部分上雲——IDC+雲。促銷、惡劣氣候、特殊事件或季節效應時(用戶在盛夏或寒冬時,點外賣最多),切換到雲,用雲擋住大部分流量。
 
上雲,幫助張雪峰解決了大問題。之前餓了麼部署在傳統機房,雖然投入了很多,但安全防護非常弱。每天後台攻擊流量高達幾十G,盡管做了很多努力,但每天提心吊膽。餓了麼有一半的故障都是DDOS導致的,每天都被攻擊,每周都有一兩次大的攻擊。“而上雲後,基本不用為這些攻擊的事情擔心了。”他說。
 
與此同時,上雲也把餓了麼的運維團隊從體力活中部分解放出來。“IDC是體力活,雲計算解放了運維團隊,讓他們有時間幹更高級的活。”張雪峰極為推崇雲原生(Cloud Native Application),他認為這是雲時代的潮流趨勢。“很多人說,雲時代運維要無用武之地了,但我不這麼看。雲時代,運維可以更加Focus腦力活而不是體力活或大量重複工作。”他希望餓了麼的團隊,能夠往這個方向努力並逐步轉型,具備雲時代的技術運營思維。
 
這次上雲的嚐試,也讓張雪峰想明白一個道理:如果完全靠自己去招人,不管用多大的代價,壓力還是太大了。他認為:“作為創業公司,時間對餓了麼來說更為寶貴,尤其是我們還處在一個業務快速上升期。”這是餓了麼願意嚐試借助外部力量的原因所在,而不僅僅是因為“開放的技術氛圍,極客的技術精神”。

 
回顧餓了麼發展曆程,你會發現,它經曆過幾次P0最嚴重事故:紅包金額發放異常、支付完成狀態異常、機房核心主備全掛。而壓力最大的一次是,新浪微博在當天午餐高峰期的頭條報道——餓了麼點不了飯,快餓死了。

一語雙關的頭條,除了讓全社會的目光聚焦在點不了飯上,也讓人心中暗忖這家創業公司的技術力量,究竟能否長期穩定地支撐起業務的極速擴張。“買不了東西,隻會抱怨兩下,而錢上如果出問題(指支付狀態完成異常,實際會原路徑退回客人賬戶),一定會恐慌的。”張雪峰指出。
 
技術故障對公司而言,是危機,但對技術團隊來說,也是成長契機。在餓了麼身上,你會發現後者占了絕大部分。
 
有兩點為證:一是餓了麼係統對訂單的承載能力飛速成熟,如開頭提到,短短兩年的時間,它的訂單從幾十萬躍升到2016年聖誕節的九百萬;二是, 談及三次P0,餓了麼CTO張雪峰並沒藏著掖著,反而是與記者促膝長談,話裏行間全是對事故的反思和根源性討論。

他說,三次P0的原因很簡單,比如:支付狀態完成異常那次,隻是字段溢出,修複問題隻用了30秒……而紅包金額發放異常,從深層次來看,是當時的餓了麼全網係統還沒有建立統一的風控體係(有反欺詐模塊)。 
 
大部分技術架構問題背後,都和組織架構有關。隨後一段時間,他開始調整組織架構。原來的風控是三級團隊,現在獨立出來,被提升為二級部門(一級為整個技術)。原來風控隸屬於大數據部門,現在則會構建自己獨立的數據模型與算法。職能上,隻要被風控攔住的需求,一律先更新PRD,不允許直接開發。希望通過這些措施,構建起統一、專業的風控體係,最重要是做到兩點:盡量提前發現問題、“守門(兜底)”。

“這幾乎接近於尚方寶劍。” 張雪峰說,統一的風控建立後,一開始有點波折,一個是人員有波動,“另外是風控剛開始可能有點過激,動不動就是P0最高優先級需求。”張雪峰說,團隊磨合了一段時間後,效果立馬出來,尤其是基本遏製住了O2O領域的頑疾——刷單(用戶端/商戶端/配送端/ETC)。


雖然餓了麼在2015年就上了雲,但當時的上雲隻是測試環境,非生產環境。那後來為什麼災備也選擇上雲,並進而開始做多活?
 
張雪峰解釋說,上雲後發現比他們想象的要複雜的多,也發現很多問題——IDC和雲機房之間要拉光纖,很多事情需要配套。僅僅就這樣嗎——不輕不癢?進一步深挖則發現,讓他下定決心在雲上做多活是因為一次事故。
 
那次核心主備全掛,張雪峰的技術團隊,隻能幹瞪眼。因為這是供應商設備Bug,“主”掛了後,“備”上線後也會自動觸犯一個Bug。那時的張雪峰壓力極大,但隻能苦等廠商拿更高級的設備過來緊急替換。餓了麼CEO張旭豪(Mark)當時比較寬容,還安慰他說:“這事急不了。”
 
事故讓人反思,“雖然大家都知道兩地三中心,但沒真正吃過一次虧,就不信邪。”張雪峰發現一個機房也不可靠。並且,餓了麼災備前後也做了一年時間,前後斷過幾次。由於一些曆史原因,餓了麼當時的災備建設並不以自動化為主,所以上災備的(人肉)工作量非常大,而且災備也沒有發揮應有作用。於是餓了麼決定進一步上雲——做多活。

決定啟動多活,還有一個重要原因是:通過單機房支撐餓了麼全網業務的極速發展,已逐步顯現容量瓶頸。
 
當時餓了麼內部團隊也有擔心,完全上雲後,運維是不是要轉崗了? “原因很簡單,因為IDC+雲是能解決峰值的效益問題,但也引入了新的問題——混合模式下的運維複雜度成倍增加,這對人員的能力和數量提出了全新要求 。”但大家沒有抵觸,希望通過多活慢慢往雲原生方向轉變,適應雲時代的趨勢,讓自己成長起來,最終具有雲思維。
 
實施多活中,張雪峰麵臨很多挑戰,比如數據一致性。餓了麼的外賣和配送業務對時效性要求非常高,如果幾秒沒響應、狀態沒變,用戶會很著急。“互聯網、分布式係統最大的挑戰就是CAP,很難同時滿足一致性,又滿足分區容忍度——這是淘寶沒有麵臨的局麵。” 張雪峰說,隨著不斷嚐試,他們的解決方案目前正待生產逐步驗證。
 
目前餓了麼使用阿裏雲ECS、RDS、雲盾、CDN等服務。它在阿裏雲上有幾千個節點,為保證多活順利切換,會進行多輪生產演練 。張雪峰說:“多活順利的話,會在今年四五月份,劃分不同時段和區域進行生產切換。”
 
這家外賣巨頭多活的目標是幾秒鍾數據延遲,一分鍾內完成所有切換。對於下一步,張雪峰稱,如果一切順利的話,他將會做一個能承擔所有業務的一鍵部署單元。
 
“為什麼?”
 
“這樣當容量出問題時,我隻要在阿裏雲上開ezone(全網業務最小部署單元)就行了。”麵朝午後太陽的他,臉轉向筆者,直接又簡單地補充到。
 
 
2016年9月份,餓了麼創始人、CEO張旭豪表示,引領外賣行業下半場不是靠執行力,而是要靠人工智能、數據分析等技術創新。而大數據、人工智能,張雪峰一直在布局。

今年1月份,有媒體報道,餓了麼已同阿裏雲合作研發出人工智能ET新的調度引擎,並全麵推行到外賣送餐領域。就實際來看,人工智能調度引擎優勢體現在兩點:全局的洞察和實時決策,落到三處:1.預估餐廳出餐時間;2.預估騎手送餐地等待時間;3.訂單分配和路線規劃。
 
為什麼要和阿裏雲合作,張雪峰表示,僅靠餓了麼自己做這件事不現實,需要更專業的團隊來一起推動。

原因有兩點:
 
  1. 數據太大了:餓了麼創業團隊主要來自交大,一開始他們自己做智能調度,但發現小看事情的難度了。“交易漲10倍,大數據可能會漲50-80倍。”張雪峰說,數據的壓力太大,而且不劃算,並且數據暴增之後,計算也是個問題。
  2. 模型的正確性很有難度:比如說特征工作,怎樣從這些數據當中,發掘出特征?“挑戰非常大。”, 張雪峰說:“這並不是來一位人工智能專家,就能把事做好。其中,有很多業務維度,有很多細節需要大量分析。”這要求對數據極度敏感,同時也要非常熟悉即時配送這樣的非傳統物流業務及產品形態。
 
於是,雙方合作下的虛擬團隊就成立了。團隊包含三組,一組是物流工程團隊,主要把算法模型成果做成應用;一組是餓了麼大數據團隊,提供一線的數據反饋與修正;另外一組是阿裏雲山景博士帶的智能調度團隊,在方向和專業性上提供幫助。其中,阿裏雲的作用主要是讓效率上得到更大提升。“比如說,十個特征,餓了麼要一一組合驗證後,才能明確知道是否適用,而阿裏雲團隊可以指出,這幾個不用試了(ROI不高或死胡同),試別的。”

合作中,遇到很多挑戰,最典型的是魚和熊掌不可兼得。比如,出現異常情況,兩個單都麵臨超時,保哪個單?金額最多的,還是新用戶的單子?這些都是需要不斷拿捏和思考的。投入使用後,張雪峰對於灰度測試的結果比較滿意,認為可以取代人工調度:“一是省成本;二是機器出錯的概率低;三是高效,以前一個配送員5個訂單,後來7個,現在是9個訂單。”
 
智能調度隻是餓了麼在大數據、人工智能上的一個應用方向,而在另外一個維度,張雪峰還將數據應用於業務的運營。健康度,這是餓了麼在業務運營中提出的一個概念,強調全局最優。
 
“並不是說,商戶上了餓了麼就行了,一定要讓商戶覺得在餓了麼平台有價值。”張雪峰希望通過數據和銷售的經驗,抽象出規律,讓商戶感受到,上餓了麼平台的確能幫助到自己。比如說,讓一個區域的幾家奶茶店,分別盈利,實現共贏。
 
“餓了麼是LBS,消費很密集,更應該去做精細化經營。淘寶頭部效應很明顯,我們是曲線很明顯,Top 1000的店都未必占餓了麼很大的份額,所以我們希望每個店都能在對應的區域做起來。”
 
餐飲店最難的是選址,張雪峰還希望通過數據知道:這個區域內,開什麼店合適?或者說,這種類型的店最好就不要開了。另外,所有的生意都是有瓶勁的,數據也可以表明:是否適合做外賣?如果不符合商戶的預期,到底是對利潤期望過高,還是他的經營不好,亦或是已經到極限了?

接下來,餓了麼還會利用技術嚐試什麼?張雪峰說,會去探索送餐機器人,也許是和阿裏雲合作效果不錯,他又說:“以及和阿裏合作智能客服。”


采訪中,張雪峰多次提及運維以及運維團隊需要轉型。筆者問為什麼,他回複稱:“這是他下一步重點考慮的事。”

“業務漲兩倍,人漲兩倍是不健康的,應該是業務漲到一定階段,人就是一個水平線,甚至往下降了,這才是最終努力的方向。”他說,雲上有很多基礎設施和API,更強調自動化,傳統的互聯網運維思維已經不行了。團隊需要改變思維,去適應寫程序解決問題。“希望我們團隊能夠轉變思維,自動化水平就自然而然提上去了。”張雪峰認為,人的意識提升能推動餓了麼基礎設施向更高效的自動化方向前進。

另外,經過大半年努力,在2016年底,張雪峰也從矽穀請到了幾位技術大神,分別以副總裁、高級總監等身份加入,負責餓了麼大數據與人工智能、核心基礎設施、模型算法策略等關鍵技術團隊。有了這一批世界級專家,餓了麼會加速進入下一個10x發展周期,不僅僅是技術上10x成長,也為技術及數據驅動業務10x發展奠定堅實基礎。

回顧個人發展經曆,張雪峰說,有兩段經曆很特別。一段是微軟出來後的那次創業,一次是餓了麼。對於前者,張雪峰評價到,如果不是這次曆練,他不太會考慮加入一家創業公司。
 
從微軟出來後,張雪峰跟著老板做教育,線下做的還好,但轉到線上時卻沒有成功。這對他有一些觸動,體現在安逸的環境到不可知環境後的思考。
 
在今天來看,就是很多人都在疑問到底要不要去創業公司賭一把。但在張雪峰眼中,是否去創業公司,應該思考以下幾個問題:
 
  1. 是否熱愛這件事,真的想去改變什麼:張雪峰說,很多人創業隻是因為在原來公司待的不爽或感覺創業很酷,於是意氣用事創業或進創業公司。但這種不是發自內心熱愛的行為,往往做不久。
  2. 經濟上有沒有太大壓力:經濟上有壓力的壞處,體現在兩個方麵:一是壓力會讓你沒法去熱愛和幹好這件事;二是,當經濟上有壓力時,去初創公司就變成賭,心態會變壞。
  3. 家庭支持:如果已經成家的話,家庭要支持你做這件事。
  4. 追求的事有沒有高度:當有熱愛,也沒後顧之憂之後,你的追求有沒有高度?張雪峰舉例子到:“有了滴滴打車後,你繼續做打車去死磕,這不是改變。有追求的改變,是利用技術去做新的東西。”他還指出,去創業公司千萬不要想著一夜暴富,或經濟上有多少的收益,這概率很低,因為大部分都是失敗的。

在最後,張雪峰說:“我喜歡去做一些現有秩序解決不了,或者至少目前看不到解決的事。”他不喜歡提VR、AR和人工智能這些概念,“我喜歡想一些具體的事。”

從這來看,也不難明白——張雪峰為什麼能帶領餓了麼技術團隊,扛住業務快速發展帶來的巨大挑戰,完成四次進化:因為隻有具體並落到細節,才能深入。

在3月29日的雲棲大會深圳峰會上,雲棲聯盟和第一財經聯合發布2016雲棲獎名單,評選出九大“新技術時代影響中國的決策者”。九位獲獎者如何將雲計算與各行各業深度融合,推動產業的深層變革?為此,我們分別采訪了他們,希望展示出深耕DT時代的豐富圖景。

【深度】2020年業務峰值提前3年出現,中國郵政上雲實戰經驗談
https://yq.aliyun.com/articles/72820
【深度】中信集團張波:信息化已經過去,數字化剛剛到來
https://yq.aliyun.com/articles/72821
【深度】一條已經堅持了10年原則,是否能適應波司登“新零售”征程?
https://yq.aliyun.com/articles/72822
【深度】小矽片與大數據的結合——協鑫光伏的新製造之路
https://yq.aliyun.com/articles/72811
【深度】特步CIO唐坤軍:特步上雲,最難的地方是組織流程的調整
https://yq.aliyun.com/articles/72807
【深度】餓了麼四次技術進化的曲折路,記訪談張雪峰
https://yq.aliyun.com/articles/72804
【深度】金鑫:基因應用現狀解析及華大基因的數據平台架構
https://yq.aliyun.com/articles/72831
【深度】丁國祥:吉利的數字化轉型從雲上起步
https://yq.aliyun.com/articles/72832

最後更新:2017-07-19 10:32:40

  上一篇:go  特步CIO唐坤軍:特步上雲,最難的地方是組織流程的調整
  下一篇:go  “三淘”和阿裏雲成長經曆:千萬不要挑活,記訪談阿裏雲專家子嘉