開發與維運

考拉上“雲”的431天:經歷了怎樣的“脫胎換骨”?

image.png

考拉上雲,打造出一間雲原生樣板間。

今年雙11,是考拉海購加入“阿里動物園”的第二年,其成績單備受外界關注。

加入阿里431天,考拉交出了一張漂亮的成績單:會員規模增長104%,刷新過往雙11紀錄。

很多人不知道,增長來之不易——2019年9月,考拉被阿里正式收購後,經歷了一場“脫胎換骨”:數據庫應用架構重新設計、百萬級節點的容器集群大規模遷移、數據中心從杭州機房遷移到上千公里之外的張北、從基礎組件到中間件全面擁抱雲原生……

image.png

2019年9月29日,阿里為考拉舉辦了入園儀式

在這一年裡,黑卡會員們買買買的同時,考拉悄無聲息完成了一場數字基礎設施的徹底換血。

如今,全站業務全部平穩過渡到阿里雲後,考拉已棲息在一棵長在“雲端”的參天大樹上。

一場大規模快速遷移

阿里收購史上,考拉體量不算最大,情況卻很特殊。

網易只出售了考拉的業務,卻沒有出售原本支撐考拉的數字軟硬件設施,比如物理機房、雲端數據庫等均不在其中。

因此,收購完成之後,考拉核心數據勢必迎來一場大規模快速遷移。

根據阿里預定的計劃,從2019年9月6日到2020年3月31日,為“考拉入園”後的半年整合期,考拉需要完成所有數據遷移,且業務不停服,一年之內,考拉需要完成雲原生的戰略升級。

焦灼的電商戰中,業務發展等不起,但這樣的速度,在阿里歷史上前所未有。

“原本的歷史數據和業務應用,就像是考拉的身體,現在我們需要給它換一個新的‘大腦’,重新連接起原本的數據,但不能影響它正常活動。”阿里雲資深架構師吳明比喻道:“要以最快速度和最低成本完成這一任務,考拉上雲是最佳方案。”

image.png

吳明(左三)和阿里工程師們

這是一場與時間賽跑的遷移,阿里和考拉都出動了最出色的工程師。

然而,第一個問題就成了難關。

考拉數據遷移的目的地遠在河北省的張北數據中心,按照慣例,大規模數據遷移,都需要拉一根實體的網絡專線傳輸數據,如果從杭州鋪設專線到河北,施工成本以千萬計,關鍵工程量還特別浩大,根本無法在半年裡完成。

阿里工程師想到了一個好辦法——過渡時期,可以先將阿里雲杭州數據中心做接入口,然後在雲上做內部鏈路,雲端跳轉之後,考拉只需從網易機房鋪設一條通到阿里雲杭州數據中心的專線,就可以把數據遷移去張北。

image.png

張北數據中心機房

“最後只拉了5公里專線光纖,工期一週,還把原本幾千萬的成本壓縮到了幾千元。”考拉上雲架構師伏見說。

很快,工程師們又遇到了新問題。

數據遷移要求打通阿里與網易的內網,可是兩家公司的防火牆都很結實,根本無法同時訪問兩家的內網賬號。

阿里云為此孵化了一個新產品——為考拉量身定製了獨立的虛擬私有云(VPC),既可以讓兩家公司的網絡流暢互通,又能確保數據安全。

“這種全新的產品,原本開發週期需要一兩個月,但是為了讓考拉如期完成遷移,我們只花了一兩週就完成了開發。”吳明說。

“如果是線下機房,涉及到兩家公司的安全方案,很難實現這樣的模式,解決這一問題,也是得益於阿里雲可以快速靈活配置VPC的能力。”伏見說。

image.png

2019年11月12日,阿里巴巴集團董事局主席兼CEO張勇來到寧波保稅區的考拉1號倉

網上協同挺過最關鍵時刻

今年1月底,考拉進入了緊張的數據遷移內測環節。

數據遷移一旦正式啟動,順利的話只需三四個小時,但要確保過程萬無一失,前期需要花幾個月測試和演練,從虛擬流量到真實流量,確保規避所有問題,才能正式啟動。

緊要關頭,疫情來了,600多位參與數據遷移的考拉工程師,春節之後被迫開始“雲辦公”。

“年初五就有同事打電話問我,年後大家不能去公司怎麼辦,要不要延遲數據遷移的時間?”伏見回憶。

伏見明白,一旦遷移推遲,考拉就會錯過今年第一波的3.8女神節大促,還要延長與網易機房的合約期限,導致成本上升。

image.png

大家在“雲辦公”時,還不忘加油打氣

“‘雲上協同’有困難,但遷移不能延遲,無論如何也要頂著壓力扛過去。”伏見說。

雲辦公的時間裡,伏見成了最忙碌的“電話接線員”,有時候同時要開三個會議,手機開一個,電腦同時開兩個。

其他工程師大抵如此,都是接入多個會議持續通話,以保持“雲辦公”時集體操作的協調統一。

數百名工程師在雲上協同,哪怕一個環節沒確認好或是信息理解不一致,就可能發生誤操作,導致遷移後的應用功能出現差錯。

2月29日晚,所有測試完畢,考拉全站遷移阿里數據中心進入最後的關鍵時刻。

當時尚未全面復工,原本燈火通明的阿里西溪園區,大樓內空無一人。

將近凌晨12點,伏見與數據庫團隊和阿里雲的兩位工程師來到園區,在漆黑的夜裡點亮了大樓裡唯一一間辦公室。

他們負責在一線第一時間確認考拉數據遷移的執行進度,而考拉其他工程師們,則分散在全國各地,同時加入這場大規模遷移操作,每個人都凝神屏息,默默等待著關鍵時刻的到來。

image.png

大家制作了自己表情包,在群裡相互打氣

“當時非常緊張,遷移的操作列表,每一個都非常長,每一個操作步驟後的驗證步驟也非常長,需要很多同學配合做出精細化操作。一旦切到阿里雲時出現差池,會對用戶體驗產生直接影響,我們的目標就是零故障,因此必須非常謹慎。”考拉測試質量團隊負責人林兮說。

辦公室裡,伏見盯著大屏上的進度條一點點向前挪動,就像瞭望著一艘夜航巨輪,正在航道燈的引導下駛過暗礁險灘。

“其實演練過很多次,基本上不會出現問題。”伏見相信。3月1日凌晨3點40多分,進度條順利走完,數據遷移大功告成。

image.png

考拉團隊從阿里濱江園區搬到西溪園區前的留念

全站切換至阿里雲後,考拉立刻進入驗證階段,一有問題,工程師們迅速跟進解決,1日當天,成功閉環98%以上的問題。

“那天,這個數據在群裡同步時,大家都很嗨,這可以算是一次‘零故障’遷移了。”林兮說。

數據搬完家後,考拉立刻開始備戰3.8女神節大促,迎接考拉遷移上雲後的首個流量洪峰。

image.png

考拉團隊總結會後的留影

經過連續幾天的壓測和緊急擴容,3.8女神節當天,考拉的流量峰值,較2019年雙12增長了72%,而運行在雲上的考拉如磐石般穩穩地扛住了流量峰值,而且成本比之前大幅度降低。

考拉各業務線也在當天被證明已100%打通,形成閉環。

直到大促結束,吳明團隊沒有接到伏見的緊急電話,沒有消息,就是最好的消息。

每年節省2000萬元成本

3月31日,考拉如期從網易機房下線,鋪設在網易和阿里之間的5公里光纖專線,在完成歷史使命後也順利拆除。

至此,考拉全面上雲、快速入園的任務,獲得了里程碑式的成功。

圓滿完成第一階段目標後,考拉開始了全面的雲原生之路。

image.png

過去,每到大促前夕,考拉都要提前幾個月打申請,臨時購買服務器擴容。

如今,藉助阿里雲的彈性計算,考拉可實現單日內的彈性收縮。

還有同城雙活數據中心,考拉過去一直想做。

在同個城市部署兩個數據中心的好處在於,可以在一個數據中心發生故障或災難的情況下,實現用戶的“故障無感知”。

考拉曾在2019年做過一套方案,發現建設這個能力需要8個月,成本高達上千萬元。

阿里早已嘗試過“同城雙活”、“異地雙活”、甚至“異地多活”,在阿里雲原生產品天然多AZ容災能力下,考拉在一個月內就完成了“同城雙活”的能力建設,具備了多AZ容災能力。

image.png

“工作被‘搶’走了,我還挺高興的。”這是考拉運維工程師李斌的肺腑之言。

3.8女神節後,考拉用戶量大增,卻苦了運維的同學。

一直以來,考拉使用自建的ZooKeeper(分佈式協調服務),一旦負載增大,某臺服務器宕機後,就會自動選舉新的服務器,這個過程中無法對外提供服務。

宕機伴隨的警報聲,可能發生在任何時間節點,李彬不止一次在凌晨恢復數據,而且釘釘群裡還有一線業務員“刷屏”式的催促。

image.png

伏見(左)

伏見發現阿里雲有一套MSE(微服務引擎),相當一個全託管平臺,找阿里雲問了兩句,對方工程師就拍著胸脯說,“沒問題的,以後的運維工作我們都包了。”

阿里雲的資源彈性能力和自動化運維技術,預計為考拉每年節省成本近2000萬元,同時計算性能提升20%。考拉也不再設立專門的運維團隊。

“開箱即用”的雲上產品,更像是一種共享經濟,而且阿里雲這些雲產品經過歷年雙11的打磨,解決過業界最難的問題場景和複雜度。

和阿里雲一起吃第一個螃蟹

2019年9月到2020年3月31日,歸功於阿里雲的成熟產品,“考拉遷雲”順利完成,考拉基礎產品負責人玄圈對這一過程的評價是“穩定”,但到了“考拉換樹”全面擁抱雲原生時,阿里雲一些“半定製”產品,卻帶來了一些新的挑戰。

image.png

吳明(左)和玄圈(右前)

在阿里雲的PaaS層系統中,有一個名為ARMS(業務實時監控服務)的中間件,可以通過實時監控系統運行指標,評估系統健康狀態。

AMRS最大的優點是改造成本低,一行代碼就能接入,原本的多數業務也不需要修改。但是ARMS也是個“考拉定製版”的產品,支持全鏈路壓測,上萬級節點體量的考拉,是第一個吃螃蟹的“自己人”。

第一次為伏見做ARMS介紹的人,是阿里雲架構師涯海,兩人一見如故。

考拉第一次接入ARMS時,也沒出任何問題。

image.png

考拉團隊給涯海(左)送花以表感謝

然而,恰逢考拉“55大促”臨近,考拉將100多個應用上線ARMS,沒想到卻發生意外,顧客購物時偶發無法下單,反覆出現“請重試”的提示。

伏見緊急回滾了百餘個應用的版本後恢復。

image.png

5月,考拉團隊進行壓測

發生故障後,涯海立刻從西溪園區趕往濱江園區,親自給考拉團隊道歉。沒想到考拉技術負責人朱靜波走過來安慰他,“這個主責算我們項目組的,歸伏見。”

沒想到,涯海後來趕去濱江的次數越來越多,尤其是“99大促”壓測,小問題聚集爆發。

壓測,就是把大促最高水位的壓力,持續不斷地在線上系統模擬。

好比一個人平時走200米沒有感覺,突然暴走2萬米,腎、肝、肺的問題都會在高壓下暴露出來。

image.png

涯海(右二)和考拉樣板間的同學們

在涯海和伏見看來,早點發現故障是好事。

雙方制定了作戰方案,例如從灰度環境再到線上環境,分多個批次上線等等。5個月,雙方共同解決了200多個問題,ARMS迭代升級50多個版本,終於走到了“老夫老妻”的狀態。

image.png

5月28日,考拉海購全面上雲

10月,考拉在ARMS上的業務一切穩定,“邊開飛機邊造引擎”的日子終於告一段落。

考拉也經受了雙11大考

很快,考拉又迎來了今年天貓雙11的壓測,玄圈專門帶了幾個組長,跑去西溪園區1號樓7層備戰雙11的“光明頂”,聽著雙11技術大隊長霜波站在臺上指揮,“第一輪壓測的目標是什麼,加多少流量……”

image.png

天貓雙11期間,考拉團隊的會議

考拉過去也做過雙11壓測,但玄圈發現,阿里在壓測中的功能預演、時光機(雙11零點的流量)等功能從前都沒用過,“阿里是把雙11零點所有的可能性,都壓上來了,沒有十多年的實戰經驗,不可能做到。”

10月21日,天貓雙11正式開啟,考拉也走進了李佳琦直播間,1秒賣出10萬張考拉黑卡。

image.png

緊接著是參與11月11日的大促,這也是考拉換樹後,第一次以會員電商的身份,參與阿里最大的項目。

11月11日零點剛過,天貓雙11的訂單峰值就達到58.3萬筆/秒,阿里雲再次扛住全球最大規模流量洪峰。

阿里巴巴CTO程立表示,繼去年核心系統上雲後,阿里巴巴進一步雲原生化,將每萬筆峰值交易的IT成本降低了80%,這些核心技術也正通過阿里雲向全社會開放。

image.png

今年雙11,雲原生幫考拉減少了250臺服務器,節約成本約100萬/月,沉澱出一套落地實踐方案。

考拉在雲上的研發效率也大幅提升,例如使用阿里雲直播中心服務,考拉快速完成了海外直播服務從0到1的搭建。此外,“爬樹TV”、“Like社區”等新功能也相繼上線。

image.png

“阿里雲能把集團內部的業務完全上雲,本身就顯示出一種自信。”考拉技術負責人朱靜波認為,考拉雖是以樣板間身份在做嘗試,但云服務能力越來越完善,對考拉和外部企業的技術支持就會越好,“這本身就是一個相互成就的過程。”

作者:王安憶 黃天然
文章來源:天下網商
原文鏈接:https://mp.weixin.qq.com/s/vzMtxkPTys0a0eM_Bbx-1g

Leave a Reply

Your email address will not be published. Required fields are marked *