我們知道CDN護航了雙11十年,卻不知道背後有那麼多故事……
情不知如何而起,竟一往情深。
恰如我們。
十年前,因為相信,所以看見。
十年後,就在眼前,看見一切。
當2018天貓雙11成交額2135億元的大屏上,打出這麼一段字的時候,參與雙11護航的阿里雲CDN技術掌舵人姚偉斌(文景),心中湧起一絲莫名的觸動。
CDN是最早參與天貓雙11的技術之一,伴隨雙11走了十年,回首十載春秋,無論是業務規模、技術架構,還是這些幕後的工程師們,都發生了翻天覆地的變化。他們的故事雖不如《阿里雲這群瘋子》一文中那般精彩,但也值得銘記!
技術掌舵人文景:雙11是技術小二最重要的事!
11月11日00:19分,文景看到作戰室的小夥伴們在輕鬆地交談後,他知道雙11的流量洪峰已經平穩地渡過了,他開始刷起了淘寶,他在為24小時後的結束儀式採購龍蝦。
不同於往年在光明頂(雙11作戰總指揮室)的忐忑和亢奮,今年文景團隊100多名作戰成員多了一份從容和鎮定,他們分佈在不同的辦公地,五地線上協同作戰。在文景看來,這些年,業務倒逼了技術發展,推動了個人成長。十年雙11磨出來的穩定的系統、成熟的作戰方案、默契的團隊配合,都是這個團隊一路走來,身上的不可磨滅烙印。
(文景在雙11會場選購寶貝)
作為CDN技術掌舵人,雖然文景不是團隊中最“老”的同學,但他卻歷經了淘寶業務飛速發展的幾年,見證了從最初服務淘寶和集團內部的CDN,到如今國內服務客戶最多的雲CDN的每一步技術蛻變。
讀書時期的文景是個非常“愛折騰“的學生,去女生宿舍幫忙調通網路,跟著導師接系統開發的“私活”,相對於從書本上汲取營養,他更偏愛從專案錘鍊中獲取知識。慢慢地,他接觸到了嵌入式開發、無線感測網路、Linux、Nginx、Squid,向服務端開發轉型。而真正讓他感受到作為一個工程師的技術價值感的,是在做開源以後。“當時寫了很多開源模組,有一些在Github上有了上千的STAR,我寫的程式碼能幫到成千上萬的開發者,甚至有國外的開發者會給我寫感謝信,這不僅讓技術得到提升,也給了我十分強烈的認同感,也是因為開源,讓阿里看到了我。”在加入阿里後,文景負責的Tengine,曾一度躋身全球第十的WebServer。
很幸運,加入阿里的第一年他就趕上了雙11。對於當時的淘寶技術人來說,雙11是每年最最重要的事情。“對我們來說,最關鍵的就是在零點那一刻,系統要扛住,降級的措施越少越好“。文景回憶到,當時的技術原則:第一是要對業務有預估,幾千萬人同時併發的QPS是多少,系統能不能支援;第二,要做技術預案,所有依賴系統的容量是多少,一旦出了問題後的應對方案。”經過頭幾年雙11考驗後,系統逐漸具備了在極限的情況下也能正常執行的能力,在高效能、穩定方面有很大提升。到後來,我們技術能力已經遠超當年秒殺的規模,當前的技術架構已經足以支撐,所有的技術人這才安心了。“
啟航:從新手上路到一路狂奔
高階技術專家李克(空見)參與了整整十年的雙11,現在談起2009年的那個冬天,恍如昨日。“大家都是新手,該怎麼準備、怎麼配合,基本都是摸著石頭過河,CDN當時採用的是硬體方案,效能和靈活性還有很大的限制。誰也沒想到電商的業務發展的速度如此驚人,我們的一部分節點水位基本都跑在崩潰的邊緣,當時真的是靠幾個運維值班同學人工處理的方式撐了過來。”也就是在那年雙11之後,淘寶核心系統部門宣佈成立,將自研CDN提上了日程。
(空見在雙11護航現場與“戰友們”討論)
當然,技術的積澱並不是一蹴而就。空見回憶道:每年我們都會預測第二年的峰值,但是每次都低估了電商的爆炸式增長。在這種高強度的業務壓力下,基本上所有的瓶頸都會被我們遇到,記憶體、CPU、IO、網路,來來回回做了很多輪軟體優化和節點架構升級。比如針對負載過高,增加前後端長連線機制,使得每個連線可以服務多個請求。為了降低IO開銷,使用一致性HASH策略,將多個機器的磁碟統一使用。在單機上採取記憶體->SSD->SATA的多層儲存策略,動態進行冷熱資源的遷移,提升磁碟效率。為了應對峰值壓力,我們會提前準備業務鎖量、節點壓測、降級預案、採購臨時頻寬等多種措施。在我們的監控和資料還不完善的那個年代,雙十一就靠每個人開啟多個終端,盯著一批節點,一旦發現機器負載過高,立馬進行人工干預。
就是這樣,團隊靠著盯屏+人工操作,艱難撐過前幾年,CDN架構不斷定製、優化,團隊的技術實力一直在重重挑戰之中不斷攀升。
轉眼來到了2012年,文景認為這一年對CDN非常關鍵:“第一,我們決定不再採用外部的商用CDN,因為我們發現淘寶的流量,商用CDN是不足以支撐的。原因是淘寶是中國第一個圖片這麼多的網站,當時的SSD機器還沒有這麼流行,大部分的CDN廠商還在用SATA的機器,遇到資料量激增的時候,它的IOPS跑不起來,節點立刻會IOB掛掉。第二,當大部分CDN廠商都在用千兆機器,淘寶CDN已經在用萬兆機器,我們是中國第一個使用全SSD機器的廠商,並且完成了40G的節點。當時的技術架構是非常領先的。”
演進:機遇和挑戰並存的日子裡
2013年,隨著CDN能力的增強,很多業務已經開始使用CDN,比如秒殺、紅包、詳情頁等,CDN能夠offload大量的請求和頻寬,避免源站能力不足帶來的服務不可用。空見說到:這一年我們在技術上實現靜態化和資料化,通過動靜分離,抽象出來靜態內容,快取在CDN上,動態部分通過ESI回源非同步獲取。靜態化改造之後,雙11扛住了數十倍的業務峰值流量。
在內部業務越來越豐富的同時,CDN的資料化也開始有了產出,第一版的資料平臺能夠針對每個域名進行統計,提供節點、區域、運營商維度的五分鐘粒度資料,包含業務資料,如命中率、頻寬、QPS等,監控資料,如RTT、丟包率等。CDN告別了大鍋飯時代,開始了精細化的運營,這也為後面CDN商業化提供了基礎。
直到2014年,CDN不僅支援集團內部雙11,也開始服務外部客戶。空見很清楚地記得,在這年雙11,團隊內部搞起了流量競猜,工程師們為此設計了一個預測系統,通過每年雙十一的歷史資料,以及各業務線的預估和實際情況,實時預測晚高峰流量,用來及時調整資源,比如當天上午11點就準確出來晚上高峰在多少T。
2015年對CDN團隊來說也同樣意義非凡,因為那一年他們險些背了3.25。
當時淘寶上了全站HTTPS,而由於前期壓測、對新業務的評估沒有做到位,全站HTTPS帶來的計算開銷導致CPU、記憶體都開始成為瓶頸。“當雙11開始後,別人都在為資料再創新高而歡呼,我們團隊的工程師卻眼睜睜的看著線上節點記憶體被打爆,不停重啟,當時我在客戶現場駐場,真的連死的心都有了。”文景回憶到。
當時的CDN團隊已經到了阿里雲,經常全中國到處跑,深入客戶現場,貼身服務,整個團隊的工作重心不再僅僅是為雙11做方案和保障。“我們從純碎的技術人,變成了需要有商業思維的架構師,用CDN這個產品幫助客戶去解決問題。也正是因為如此,這次的經歷給我們敲響了警鐘,後面每當新業務誕生的時候,我們都做足了充分的預案,堅決避免再次重現,更絕不容許這種情況出現在客戶身上。”
(CDN團隊2017雙11合影 左三空見 右三士豪 右六文景 )
在2016年,新興的直播、短視訊業務發展迅速,頻寬增速非常快,高階技術專家周哲(士豪)認為,團隊在經歷過數年雙11的大考之後,已經開發出高效能、低延時、穩定的快取系統,我們有能力服務好這麼大規模的圖片業務,視訊業務當然也不再話下。
“但是真正當有大規模的視訊點播業務上來之後,我才認識到對視訊點播場景理解不足。視訊點播對首屏、卡頓體驗,以及對整體命中率和回源保護有更高的要求。於是,我們就通過對整個系統完善全鏈路監控、基於使用者體驗的排程、提高整體快取命中率、TCP協議棧優化,來提高視訊播放體驗。”
原本專注網路的CDN團隊,拉上了兄弟團隊,搞了小半年的技術攻堅,打磨出了直播全鏈路保障的方案。這套方案也成功應用在了天貓雙11晚會上,空見還記得在2016年團隊在護航天貓雙11晚會時,當TFBoy出現在螢幕上,頻寬直接飆升好幾倍,“這也是我第一次見識到了小鮮肉的威力!”
與此同時,優酷加入了阿里大家庭,這給CDN帶來了很多大檔案加速、視訊加速的業務場景,讓整個團隊的資源建設和技術水平得到了補充。在技術層面,也加強了CDN團隊對視訊業務場景的理解,完善視訊格式實時轉封裝、全網防盜鏈、內容版權保護、P2P等相關技術。
從2017年開始,阿里雲CDN走上國際化之路,進行大規模海外節點的建設,以滿足國內使用者出海加速和海外使用者加速的需求。與此同時,在經過了2018俄羅斯世界盃、春晚等多次重大活動的洗禮,CDN的團隊規模、客戶規模、技術實力一齊進階,整個系統的自動化、智慧化、精細化程度與服務能力全面加碼,這支能戰能勝的團隊再次面對雙11的時候,已然非常自信從容。
如今:程式設計師們一起“剁手”度過雙11
有了十年的積累沉澱,文景覺得今年雙11可以說是豐收的一年。
CDN團隊主要支撐了電商和貓晚,整個過程可以說是如絲般順滑,零故障零卡頓。同時,貓晚直播提供了超高清、高幀率的4K視訊,通過頻實時處理、轉碼向全網直播,窄帶高清技術能夠進一步提升畫質,讓網友們過足了眼癮。
CDN為優酷2500萬用戶提供的視訊分發,整個平臺的QPS也突破歷史峰值。整個服務過程中依賴全鏈路質量監控、智慧自動化排程,值班人員只需要關注資料大盤就能掌控全域性了。
在今年雙11期間,文景所在的團隊也為Lazada提供電商CDN加速保障,同時結合直播解決方案幫助Lazada把雙11晚會推送到泰國、馬來西亞,和東南亞人一起狂歡雙11。
空見半玩笑半自豪地說:“以前奢望地喝喝茶、購購物過雙11的夢想在今年終於實現了,2135億裡也有我們值班人員的一份貢獻。”
(零點洪峰平穩渡過後,程式設計師們終於有心思買買買了)
一路走來,文景也曾疑惑過:為什麼我們不能把活動的時間跨度拉長到3天,或者1周呢?那樣我們或許就不必冒著如此大的風險,承受日常峰值是10倍以上的壓力啊!然而當他走到現在才深刻的體會到,正是因為這集中爆發的、一次又一次的業務洪峰,在拉著技術往前狂奔,這才鑄就了今天這支能戰能勝的技術團隊,技術應該感謝業務!
十年雙11,就如同一部浩浩蕩蕩的阿里技術發展史。CDN就這樣用它獨有的起伏,添上了濃墨重彩的一筆。期待下一個十年,我們繼續一路相隨。
(空見第十次在雙11護航現場:人生有幾個十年)
原文連結
本文為雲棲社群原創內容,未經允許不得轉載。