(天下網商記者 王安憶 黃天然)今年雙11,是考拉海購加入「阿里動物園」的第二年,其成績單備受外界關注。
加入阿里431天,考拉交出了一張漂亮的成績單:會員規模增長104%,刷新過往雙11紀錄。
很多人不知道,增長來之不易——2019年9月,考拉被阿里正式收購後,經歷了一場「脫胎換骨」:資料庫應用架構重新設計、百萬級節點的容器集群大規模遷移、數據中心從杭州機房遷移到上千公裡之外的張北、從基礎組件到中間件全面擁抱雲原生……
在這一年裡,黑卡會員們買買買的同時,考拉悄無聲息完成了一場數字基礎設施的徹底換血。
如今,全站業務全部平穩過渡到阿里雲後,考拉已棲息在一棵長在「雲端」的參天大樹上。
一場大規模快速遷移
阿里收購史上,考拉體量不算最大,情況卻很特殊。
網易只出售了考拉的業務,卻沒有出售原本支撐考拉的數字軟硬體設施,比如物理機房、雲端資料庫等均不在其中。
因此,收購完成之後,考拉核心數據勢必迎來一場大規模快速遷移。
根據阿里預定的計劃,從2019年9月6日到2020年3月31日,為「考拉入園」後的半年整合期,考拉需要完成所有數據遷移,且業務不停服,一年之內,考拉需要完成雲原生的戰略升級。
焦灼的電商戰中,業務發展等不起,但這樣的速度,在阿里歷史上前所未有。
「原本的歷史數據和業務應用,就像是考拉的身體,現在我們需要給它換一個新的『大腦』,重新連接起原本的數據,但不能影響它正常活動。」阿里雲資深架構師吳明比喻道:「要以最快速度和最低成本完成這一任務,考拉上雲是最佳方案。」
這是一場與時間賽跑的遷移,阿里和考拉都出動了最出色的工程師。
然而,第一個問題就成了難關。
考拉數據遷移的目的地遠在河北省的張北數據中心,按照慣例,大規模數據遷移,都需要拉一根實體的網絡專線傳輸數據,如果從杭州鋪設專線到河北,施工成本以千萬計,關鍵工程量還特別浩大,根本無法在半年裡完成。
阿里工程師想到了一個好辦法——過渡時期,可以先將阿里雲杭州數據中心做接入口,然後在雲上做內部鏈路,雲端跳轉之後,考拉只需從網易機房鋪設一條通到阿里雲杭州數據中心的專線,就可以把數據遷移去張北。
「最後只拉了5公裡專線光纖,工期一周,還把原本幾千萬的成本壓縮到了幾千元。」考拉上雲架構師伏見說。
很快,工程師們又遇到了新問題。
數據遷移要求打通阿里與網易的內網,可是兩家公司的防火牆都很結實,根本無法同時訪問兩家的內網帳號。
阿里云為此孵化了一個新產品——為考拉量身定製了獨立的虛擬私有雲(VPC),既可以讓兩家公司的網絡流暢互通,又能確保數據安全。
「這種全新的產品,原本開發周期需要一兩個月,但是為了讓考拉如期完成遷移,我們只花了一兩周就完成了開發。」吳明說。
「如果是線下機房,涉及到兩家公司的安全方案,很難實現這樣的模式,解決這一問題,也是得益於阿里雲可以快速靈活配置VPC的能力。」伏見說。
網上協同挺過最關鍵時刻
今年1月底,考拉進入了緊張的數據遷移內測環節。
數據遷移一旦正式啟動,順利的話只需三四個小時,但要確保過程萬無一失,前期需要花幾個月測試和演練,從虛擬流量到真實流量,確保規避所有問題,才能正式啟動。
緊要關頭,疫情來了,600多位參與數據遷移的考拉工程師,春節之後被迫開始「雲辦公」。
「年初五就有同事打電話問我,年後大家不能去公司怎麼辦,要不要延遲數據遷移的時間?」伏見回憶。
伏見明白,一旦遷移推遲,考拉就會錯過今年第一波的3.8女神節大促,還要延長與網易機房的合約期限,導致成本上升。
「『雲上協同』有困難,但遷移不能延遲,無論如何也要頂著壓力扛過去。」伏見說。
雲辦公的時間裡,伏見成了最忙碌的「電話接線員」,有時候同時要開三個會議,手機開一個,電腦同時開兩個。
其他工程師大抵如此,都是接入多個會議持續通話,以保持「雲辦公」時集體操作的協調統一。
數百名工程師在雲上協同,哪怕一個環節沒確認好或是信息理解不一致,就可能發生誤操作,導致遷移後的應用功能出現差錯。
2月29日晚,所有測試完畢,考拉全站遷移阿里數據中心進入最後的關鍵時刻。
當時尚未全面復工,原本燈火通明的阿里西溪園區,大樓內空無一人。
將近凌晨12點,伏見與資料庫團隊和阿里雲的兩位工程師來到園區,在漆黑的夜裡點亮了大樓裡唯一一間辦公室。
他們負責在一線第一時間確認考拉數據遷移的執行進度,而考拉其他工程師們,則分散在全國各地,同時加入這場大規模遷移操作,每個人都凝神屏息,默默等待著關鍵時刻的到來。
「當時非常緊張,遷移的操作列表,每一個都非常長,每一個操作步驟後的驗證步驟也非常長,需要很多同學配合做出精細化操作。一旦切到阿里雲時出現差池,會對用戶體驗產生直接影響,我們的目標就是零故障,因此必須非常謹慎。」考拉測試質量團隊負責人林兮說。
辦公室裡,伏見盯著大屏上的進度條一點點向前挪動,就像瞭望著一艘夜航巨輪,正在航道燈的引導下駛過暗礁險灘。
「其實演練過很多次,基本上不會出現問題。」伏見相信。3月1日凌晨3點40多分,進度條順利走完,數據遷移大功告成。
全站切換至阿里雲後,考拉立刻進入驗證階段,一有問題,工程師們迅速跟進解決,1日當天,成功閉環98%以上的問題。
「那天,這個數據在群裡同步時,大家都很嗨,這可以算是一次『零故障』遷移了。」林兮說。
數據搬完家後,考拉立刻開始備戰3.8女神節大促,迎接考拉遷移上雲後的首個流量洪峰。
經過連續幾天的壓測和緊急擴容,3.8女神節當天,考拉的流量峰值,較2019年雙12增長了72%,而運行在雲上的考拉如磐石般穩穩地扛住了流量峰值,而且成本比之前大幅度降低。
考拉各業務線也在當天被證明已100%打通,形成閉環。
直到大促結束,吳明團隊沒有接到伏見的緊急電話,沒有消息,就是最好的消息。
每年節省2000萬元成本
3月31日,考拉如期從網易機房下線,鋪設在網易和阿里之間的5公裡光纖專線,在完成歷史使命後也順利拆除。
至此,考拉全面上雲、快速入園的任務,獲得了裡程碑式的成功。
圓滿完成第一階段目標後,考拉開始了全面的雲原生之路。
過去,每到大促前夕,考拉都要提前幾個月打申請,臨時購買伺服器擴容。
如今,藉助阿里雲的彈性計算,考拉可實現單日內的彈性收縮。
還有同城雙活數據中心,考拉過去一直想做。
在同個城市部署兩個數據中心的好處在於,可以在一個數據中心發生故障或災難的情況下,實現用戶的「故障無感知」。
考拉曾在2019年做過一套方案,發現建設這個能力需要8個月,成本高達上千萬元。
阿里早已嘗試過「同城雙活」、「異地雙活」、甚至「異地多活」,在阿里雲原生產品天然多AZ容災能力下,考拉在一個月內就完成了「同城雙活」的能力建設,具備了多AZ容災能力。
「工作被『搶』走了,我還挺高興的。」這是考拉運維工程師李斌的肺腑之言。
3.8女神節後,考拉用戶量大增,卻苦了運維的同學。
一直以來,考拉使用自建的ZooKeeper(分布式協調服務),一旦負載增大,某臺伺服器宕機後,就會自動選舉新的伺服器,這個過程中無法對外提供服務。
宕機伴隨的警報聲,可能發生在任何時間節點,李彬不止一次在凌晨恢復數據,而且釘釘群裡還有一線業務員「刷屏」式的催促。
伏見發現阿里雲有一套MSE(微服務引擎),相當一個全託管平臺,找阿里雲問了兩句,對方工程師就拍著胸脯說,「沒問題的,以後的運維工作我們都包了。」
阿里雲的資源彈性能力和自動化運維技術,預計為考拉每年節省成本近2000萬元,同時計算性能提升20%。考拉也不再設立專門的運維團隊。
「開箱即用」的雲上產品,更像是一種共享經濟,而且阿里雲這些雲產品經過歷年雙11的打磨,解決過業界最難的問題場景和複雜度。
和阿里雲一起吃第一個螃蟹
2019年9月到2020年3月31日,歸功於阿里雲的成熟產品,「考拉遷雲」順利完成,考拉基礎產品負責人玄圈對這一過程的評價是「穩定」,但到了「考拉換樹」全面擁抱雲原生時,阿里雲一些「半定製」產品,卻帶來了一些新的挑戰。
在阿里雲的PaaS層系統中,有一個名為ARMS(業務實時監控服務)的中間件,可以通過實時監控系統運行指標,評估系統健康狀態。
AMRS最大的優點是改造成本低,一行代碼就能接入,原本的多數業務也不需要修改。但是ARMS也是個「考拉定製版」的產品,支持全鏈路壓測,上萬級節點體量的考拉,是第一個吃螃蟹的「自己人」。
第一次為伏見做ARMS介紹的人,是阿里雲架構師涯海,兩人一見如故。
考拉第一次接入ARMS時,也沒出任何問題。
然而,恰逢考拉「55大促」臨近,考拉將100多個應用上線ARMS,沒想到卻發生意外,顧客購物時偶發無法下單,反覆出現「請重試」的提示。
伏見緊急回滾了百餘個應用的版本後恢復。
發生故障後,涯海立刻從西溪園區趕往濱江園區,親自給考拉團隊道歉。沒想到考拉技術負責人朱靜波走過來安慰他,「這個主責算我們項目組的,歸伏見。」
沒想到,涯海後來趕去濱江的次數越來越多,尤其是「99大促」壓測,小問題聚集爆發。
壓測,就是把大促最高水位的壓力,持續不斷地在線上系統模擬。
好比一個人平時走200米沒有感覺,突然暴走2萬米,腎、肝、肺的問題都會在高壓下暴露出來。
在涯海和伏見看來,早點發現故障是好事。
雙方制定了作戰方案,例如從灰度環境再到線上環境,分多個批次上線等等。5個月,雙方共同解決了200多個問題,ARMS迭代升級50多個版本,終於走到了「老夫老妻」的狀態。
10月,考拉在ARMS上的業務一切穩定,「邊開飛機邊造引擎」的日子終於告一段落。
考拉也經受了雙11大考
很快,考拉又迎來了今年天貓雙11的壓測,玄圈專門帶了幾個組長,跑去西溪園區1號樓7層備戰雙11的「光明頂」,聽著雙11技術大隊長霜波站在臺上指揮,「第一輪壓測的目標是什麼,加多少流量……」
考拉過去也做過雙11壓測,但玄圈發現,阿里在壓測中的功能預演、時光機(雙11零點的流量)等功能從前都沒用過,「阿里是把雙11零點所有的可能性,都壓上來了,沒有十多年的實戰經驗,不可能做到。」
10月21日,天貓雙11正式開啟,考拉也走進了李佳琦直播間,1秒賣出10萬張考拉黑卡。
緊接著是參與11月11日的大促,這也是考拉換樹後,第一次以會員電商的身份,參與阿里最大的項目。
11月11日零點剛過,天貓雙11的訂單峰值就達到58.3萬筆/秒,阿里雲再次扛住全球最大規模流量洪峰。
阿里巴巴CTO程立表示,繼去年核心系統上雲後,阿里巴巴進一步雲原生化,將每萬筆峰值交易的IT成本降低了80%,這些核心技術也正通過阿里雲向全社會開放。
今年雙11,雲原生幫考拉減少了250臺伺服器,節約成本約100萬/月,沉澱出一套落地實踐方案。
考拉在雲上的研發效率也大幅提升,例如使用阿里雲直播中心服務,考拉快速完成了海外直播服務從0到1的搭建。此外,「爬樹TV」、「Like社區」等新功能也相繼上線。
「阿里雲能把集團內部的業務完全上雲,本身就顯示出一種自信。」考拉技術負責人朱靜波認為,考拉雖是以樣板間身份在做嘗試,但云服務能力越來越完善,對考拉和外部企業的技術支持就會越好,「這本身就是一個相互成就的過程。」