朱建
隨著中國(guó)人口紅利消失、競(jìng)爭(zhēng)加劇,很多互聯(lián)網(wǎng)公司選擇出海掘金,由于中國(guó)游戲市場(chǎng)不斷加強(qiáng)監(jiān)管力度,出海更是成為很多游戲公司的必修課。
2019年12月12日登陸港交所的心動(dòng)網(wǎng)絡(luò)也是游戲廠商出海大軍中的一員,但是出海帶來(lái)業(yè)務(wù)增長(zhǎng)的同時(shí)也帶來(lái)了IT方面的挑戰(zhàn),為了不影響玩家體驗(yàn),心動(dòng)網(wǎng)絡(luò)開(kāi)啟了上云、遷移數(shù)據(jù)庫(kù)之路。
出海掘金業(yè)務(wù)猛增迎挑戰(zhàn)
心動(dòng)網(wǎng)絡(luò)于2002年成立,前身為中國(guó)最早的互聯(lián)網(wǎng)分享網(wǎng)站之一的電爐大全(VeryCD)。2009年起,公司開(kāi)始打造心動(dòng)網(wǎng)絡(luò)的自主品牌,進(jìn)軍游戲領(lǐng)域,致力于網(wǎng)頁(yè)及移動(dòng)客戶(hù)端游戲的研發(fā)與運(yùn)營(yíng)。
2016年心動(dòng)網(wǎng)絡(luò)增資海外發(fā)行公司龍成網(wǎng)絡(luò),投資成立公司易玩(上海)網(wǎng)絡(luò)科技有限公司,打造游戲社區(qū)平臺(tái)TapTap,進(jìn)一步拓展公司產(chǎn)品在海內(nèi)外的發(fā)行運(yùn)營(yíng)渠道,構(gòu)建內(nèi)容社區(qū)平臺(tái),2019年心動(dòng)網(wǎng)絡(luò)加大了海外的擴(kuò)張步伐,將《碧藍(lán)航線(xiàn)》《永遠(yuǎn)的7日之都》《第五人格》等國(guó)內(nèi)大熱產(chǎn)品帶到海外,主打韓國(guó)、港澳臺(tái)和東南亞市場(chǎng)。
市場(chǎng)研究機(jī)構(gòu)Newzoo發(fā)布的東南亞游戲市場(chǎng)研究報(bào)告顯示,隨著移動(dòng)設(shè)備普及,東南亞網(wǎng)絡(luò)人口不斷增長(zhǎng),2019年?yáng)|南亞游戲市場(chǎng)規(guī)模有望達(dá)到46億美元,同比增幅22 %,成為全球增速最快的游戲市場(chǎng)。
隨著業(yè)務(wù)的發(fā)展其營(yíng)收也水漲船高,這2年心動(dòng)網(wǎng)絡(luò)的海外營(yíng)收不斷走高,根據(jù)招股書(shū)披露,2018年心動(dòng)網(wǎng)絡(luò)在海外營(yíng)收占比由2016年的2.1 %上升到61.5 %。
業(yè)務(wù)的發(fā)展離不開(kāi)強(qiáng)大的IT支撐。據(jù)悉,心動(dòng)網(wǎng)絡(luò)為支持游戲業(yè)務(wù)快速出海、游戲發(fā)行和TapTap游戲社區(qū)全球化運(yùn)營(yíng)與交付,需要支撐全球化業(yè)務(wù)的統(tǒng)一部署。在服務(wù)國(guó)內(nèi)、東南亞和歐美等地人口大國(guó)時(shí),活動(dòng)峰值有100萬(wàn)級(jí)玩家同時(shí)在線(xiàn),需要支撐高并發(fā)壓力,提供低延遲、高穩(wěn)定的云服務(wù)。
云計(jì)算具有可擴(kuò)展、高并發(fā)的性能,此前心動(dòng)網(wǎng)絡(luò)大部分業(yè)務(wù)部署在IDC,為了降本增效逐步使用了阿里云的ECS,RDS,SLB等產(chǎn)品和服務(wù)遷往云端。其中承載應(yīng)用的數(shù)據(jù)庫(kù)是上云升級(jí)的重中之重,比如游戲運(yùn)維發(fā)布、游戲服務(wù)端軟/硬件故障導(dǎo)致服務(wù)端重啟,需要數(shù)據(jù)庫(kù)支撐更快的數(shù)據(jù)讀取能力,以實(shí)現(xiàn)業(yè)務(wù)的快速恢復(fù)。
而心動(dòng)網(wǎng)絡(luò)業(yè)務(wù)的高速增長(zhǎng)使得原來(lái)的MySQL數(shù)據(jù)庫(kù)面臨著挑戰(zhàn),部分項(xiàng)目會(huì)有單表大量讀寫(xiě)的瓶頸,造成業(yè)務(wù)的延遲較大。其另一個(gè)主要痛點(diǎn)是新版本發(fā)布時(shí)數(shù)據(jù)備份慢,游戲新版本發(fā)布往往是凌晨,發(fā)布前對(duì)數(shù)據(jù)備份動(dòng)輒需要幾個(gè)小時(shí)才能完成,非常影響凌晨發(fā)布的效率。
從MySQL到PolarDB
遇到瓶頸后發(fā)力海外的心動(dòng)網(wǎng)絡(luò)希望繼續(xù)沿用阿里云的服務(wù)升級(jí),但彼時(shí)阿里云海外節(jié)點(diǎn)較少,于是測(cè)試使用了AWS Aurora。而隨著阿里云不斷發(fā)力海外,其自研的云原生數(shù)據(jù)庫(kù)PolarDB有了足夠的海外節(jié)點(diǎn),心動(dòng)網(wǎng)絡(luò)找到了PolarDB。經(jīng)過(guò)多輪討論與評(píng)估、壓測(cè)各項(xiàng)指標(biāo)分析,PolarDB可100 %兼容MySQL,使得心動(dòng)網(wǎng)絡(luò)的業(yè)務(wù)可以無(wú)縫遷移。同時(shí),PolarDB大幅減少了單表讀寫(xiě)壓力,使業(yè)務(wù)相對(duì)更穩(wěn)定,且不需要花太多時(shí)間去進(jìn)行分庫(kù)分表的優(yōu)化,成本比Aurora更低。因此,心動(dòng)網(wǎng)絡(luò)最終選擇了PolarDB。
PolarDB是一款關(guān)系型分布式數(shù)據(jù)庫(kù),采用工業(yè)界得到廣泛驗(yàn)證的計(jì)算與存儲(chǔ)分離架構(gòu),原生兼容MySQL,經(jīng)歷過(guò)雙11大規(guī)模高并發(fā)、高可用和擴(kuò)展性檢驗(yàn),又有基于中國(guó)市場(chǎng)的豐富實(shí)踐,成為包括心動(dòng)網(wǎng)絡(luò)在內(nèi)的很多企業(yè)數(shù)據(jù)庫(kù)上云的選擇。
不過(guò)數(shù)據(jù)庫(kù)作為應(yīng)用軟件中最難遷移的技術(shù)之一,稍有差池后果很?chē)?yán)重。心動(dòng)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)遷移前雙方團(tuán)隊(duì)進(jìn)行了風(fēng)險(xiǎn)評(píng)估以及數(shù)據(jù)備份,唯一擔(dān)心的是遷移后的性能和數(shù)據(jù)庫(kù)結(jié)構(gòu)不一致問(wèn)題。由于在遷移前充分壓測(cè)了PolarDB的性能并進(jìn)行測(cè)試遷移,正式遷移相對(duì)順利。最終心動(dòng)網(wǎng)絡(luò)采用PolarDB分布式云原生數(shù)據(jù)庫(kù)方案構(gòu)建了全部業(yè)務(wù)系統(tǒng),解決了相關(guān)挑戰(zhàn),具體來(lái)看:
1.優(yōu)良游戲體驗(yàn):基于存儲(chǔ)計(jì)算分離架構(gòu),實(shí)例都帶有一主一支讀節(jié)點(diǎn),基于高性能的讀寫(xiě)能力,便于新開(kāi)服以及應(yīng)用彈性擴(kuò)容。在游戲版本發(fā)布、服務(wù)端重啟等場(chǎng)景可以大大縮短維護(hù)時(shí)間,又確保在極端情況下,不會(huì)因?yàn)橛螒蚍?wù)端軟、硬件故障造成服務(wù)恢復(fù)過(guò)慢而影響玩家體驗(yàn)。
2. 7×24高可用服務(wù):數(shù)據(jù)采用3副本一致性存儲(chǔ),保證了數(shù)據(jù)的可靠性。同時(shí)在主實(shí)例發(fā)生故障時(shí)系統(tǒng)能在短時(shí)間(30 ~ 60 s)內(nèi)完成快速切換,確保在線(xiàn)業(yè)務(wù)能夠在保證數(shù)據(jù)完整性的同時(shí)快速恢復(fù)以提供正常的服務(wù)。
3.備份速度快:傳統(tǒng)的數(shù)據(jù)庫(kù)備份時(shí)間跟數(shù)據(jù)容量相關(guān),容量越大備份越慢。但PolarDB在計(jì)算存儲(chǔ)分離的架構(gòu)下,通過(guò)分布式存儲(chǔ)的快照(Snapshot)來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的無(wú)鎖備份(lock-free backup),并且通過(guò)Copy-on-Write把數(shù)據(jù)的復(fù)制拷貝后置,可以做到30 s以?xún)?nèi)完成整個(gè)數(shù)據(jù)庫(kù)的備份,使備份時(shí)長(zhǎng)與容量無(wú)關(guān)。
4.豐富的業(yè)務(wù)支持:100 %兼容MySQL5.6和MySQL8.0,完全兼容MySQL各種生態(tài)和中間件開(kāi)源工具,非常方便游戲歷史戰(zhàn)績(jī)、游戲充值和運(yùn)營(yíng)活動(dòng)的開(kāi)展。
數(shù)據(jù)庫(kù)合適的才是最好的
作為對(duì)標(biāo)基礎(chǔ)物理的數(shù)據(jù)庫(kù),研發(fā)難度極大。這兩年國(guó)產(chǎn)數(shù)據(jù)正逐步展露頭角,就游戲產(chǎn)業(yè)而言,一些共性的低延遲、全球同服和高并發(fā)等挑戰(zhàn),PolarDB分布式云原生數(shù)據(jù)庫(kù)有其獨(dú)特的優(yōu)勢(shì)。
從心動(dòng)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)遷移過(guò)程可以看到,企業(yè)云端數(shù)據(jù)庫(kù)選型考慮的是綜合因素,性能、成本、服務(wù)等都會(huì)影響最終結(jié)果,相信每個(gè)企業(yè)都有自己的考量,合適的才是最好的。