9月16日,Distributed Cloud|2021全球分布式云大會(huì)·上海站隆重召開。在全球分布式云大會(huì)不懈布道下,云計(jì)算行業(yè)對分布式云的關(guān)注度愈發(fā)高漲,以全球分布式云聯(lián)盟成員為代表,涌現(xiàn)出了大量分布式云技術(shù)和實(shí)踐成果,為分布式云計(jì)算發(fā)展夯實(shí)了基礎(chǔ)。
2021全球分布式云大會(huì)為分布式云計(jì)算發(fā)展再添強(qiáng)大推力,本次大會(huì)共設(shè)有分布式云主題報(bào)告會(huì)、邊緣云論壇、云原生專題論壇、分布式數(shù)據(jù)庫論壇四大論壇,圍繞分布式云、邊緣算力、云原生、分布式架構(gòu)等技術(shù)與實(shí)踐展開。全球分布式云聯(lián)盟聯(lián)合阿里云、騰訊云、Google Cloud、中興通訊、京東云、安邁云、網(wǎng)心科技等國內(nèi)外分布式云頂尖技術(shù)服務(wù)商,共話分布式云創(chuàng)新新趨勢,共謀云計(jì)算變革新未來,共享分布式云計(jì)算新紅利!
在9月16日下午召開的分布式數(shù)據(jù)庫論壇上,Google Cloud 架構(gòu)師 郭斌發(fā)表了題為《Cloud Spanner在全球游戲場景下的使用》的精彩演講。
郭斌先生演講的主要內(nèi)容是Google Cloud Spanner云數(shù)據(jù)庫如何支撐全球游戲發(fā)展,并通過這樣的視角來揭示Spanner作為云原生的分布式數(shù)據(jù)庫是如何解決行業(yè)內(nèi)具體問題的。
郭斌先生將游戲行業(yè)對數(shù)據(jù)庫的要求進(jìn)行了總結(jié):
第一,數(shù)據(jù)庫一定要有非常高的SLA。目前來看,Spanner是能夠提供最高99.999%的SLA,可以滿足到絕大部分客戶對SLA的需求。Google Cloud為中國出海的客戶群體提供服務(wù),其中就包括游戲出海、跨境電商、跨境金融服務(wù),以及社交、媒體等泛娛樂產(chǎn)品/服務(wù)。其中游戲、跨境電商以及跨境金融服務(wù)的客戶對數(shù)據(jù)庫的高可用性要求非常高。
第二,游戲?qū)π阅艿囊蠓浅8?,需要?shù)據(jù)庫能夠很好地支撐橫向擴(kuò)展能力。橫向擴(kuò)展能力包括擴(kuò)縮容;當(dāng)需要收縮性能時(shí),也可以便捷地實(shí)現(xiàn)收縮。為了闡明Spanner的特點(diǎn),郭斌老師舉例說,今年的秋季某廠商發(fā)布一款游戲,這是一款面向全球的游戲,預(yù)計(jì)有數(shù)百萬玩家同時(shí)在線。在做準(zhǔn)備時(shí),Google按照百萬玩家規(guī)模來部署Spanner數(shù)據(jù)庫,建立了幾百個(gè)節(jié)點(diǎn)的Cloud Spanner的實(shí)例,部署完成后效果非常好。但游戲上線后并沒有達(dá)到預(yù)期效果,在線玩家遠(yuǎn)不足百萬,Google很容易地把Spanner從幾百個(gè)節(jié)點(diǎn)收縮成一百節(jié)點(diǎn)左右,回收資源,節(jié)省成本。如果游戲經(jīng)過推廣,吸引了更多玩家,Cloud Spanner可以繼續(xù)增加節(jié)點(diǎn),實(shí)現(xiàn)很好的橫向擴(kuò)展。
關(guān)于Spanner如何面對游戲行業(yè)的技術(shù)挑戰(zhàn),郭斌老師表示,游戲行業(yè)通常需要三種服務(wù)。第一種,游戲服本身,需要用計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)來承載;第二種,平臺(tái)服務(wù),如注冊、充值、聊天、郵件。第三種,游戲的數(shù)據(jù)分析,包括玩家行為分析,游戲是特別注重玩家體驗(yàn)的,基于數(shù)據(jù)分析的結(jié)果,可以幫助游戲廠商更好的匹配游戲玩家需求。Google在這三個(gè)場景中可以很好地滿足到客戶的要求。從游戲類型來看,單人游戲、回合制游戲、實(shí)時(shí)對戰(zhàn)游戲、完整世界游戲,對數(shù)據(jù)庫的要求是越來越高的,這也是Cloud Spanner擅長之處。
前面講到了高可用性的SLA,還有一點(diǎn)就是,一旦數(shù)據(jù)庫變成云服務(wù)之后,用戶往往擔(dān)心停機(jī)運(yùn)維帶來的困擾,針對這一擔(dān)憂,Spanner是無需停機(jī)運(yùn)維的,不存在運(yùn)維停機(jī)時(shí)間。
此外,Cloud Spanner能夠自動(dòng)完成數(shù)據(jù)庫Sharding,而不是手動(dòng)Sharding,從而更好地支撐橫向擴(kuò)展和收縮。最后,Cloud Spanner作為一種云原生服務(wù),它可以降低很多管理和運(yùn)維成本。
開啟Cloud Spanner之旅
Google 于2007年左右自研完成并推出了Spanner數(shù)據(jù)庫,作為Google 內(nèi)部關(guān)系數(shù)據(jù)庫的首選。2017年,Spanner成為Google云服務(wù)的一種,賦能給客戶使用。
Spanner是比較有特點(diǎn)的數(shù)據(jù)庫云服務(wù),關(guān)于整體的特點(diǎn),郭斌老師形象地將它比喻成金庸武俠小說中的小無相功。上層對外提供關(guān)系型數(shù)據(jù)庫的要素,事務(wù)、SQL等等。底層是NoSQL技術(shù),Spanner把兩者的特點(diǎn)糅合在一起。
郭斌老師認(rèn)為,Spanner代表了數(shù)據(jù)庫發(fā)展的一個(gè)方向,代表了一種未來。究其原因,Spanner即是NewSQL,又是云原生數(shù)據(jù)庫,它把數(shù)據(jù)庫和云的能力結(jié)合在一起對外提供服務(wù)。它用到了分布式計(jì)算領(lǐng)域、NoSQL領(lǐng)域的最新技術(shù),例如在分布式存儲(chǔ)領(lǐng)域的LMST、分布式仲裁協(xié)議的PAXOS協(xié)議,Spanner是業(yè)界第一個(gè)將PAXOS協(xié)議工程化實(shí)現(xiàn)的業(yè)界翹楚。Spanner使用Truetime跨區(qū)域的分布式事務(wù)。
Spanner作為云原生數(shù)據(jù)庫是基于谷歌的網(wǎng)絡(luò)基礎(chǔ)設(shè)施實(shí)現(xiàn),特別有利于它解決跨區(qū)域的延時(shí)問題,通過TrueTime實(shí)現(xiàn)分布式事務(wù)和外部強(qiáng)一致性。Spanner在軟件堆棧里完整實(shí)現(xiàn)了PAXOS協(xié)議,以及自動(dòng)Sharding。
郭斌老師總結(jié)說,Spanner的特點(diǎn)是能夠簡化管理、快速自動(dòng)故障恢復(fù)、自動(dòng)Sharding,無需手動(dòng)分庫分表,、沒有停機(jī)運(yùn)維時(shí)間。
關(guān)于跨區(qū)域配置方面,Spanner有兩種配置,一種是在一個(gè)區(qū)域內(nèi)部,數(shù)據(jù)有三個(gè)副本的。在這三個(gè)副本當(dāng)中,自動(dòng)選出主節(jié)點(diǎn)中,當(dāng)故障發(fā)生時(shí),會(huì)自動(dòng)恢復(fù)??鐓^(qū)域情況下,會(huì)有四份或更多數(shù)據(jù)實(shí)現(xiàn)自動(dòng)的跨區(qū)域切換。
郭斌老師提到,著名游戲《精靈寶可夢GO(Porkemon GO)》的底層,就是使用Spanner數(shù)據(jù)庫來支撐全球玩家的。此外,萬代南夢宮旗下的一款A(yù)RPG類游戲,也是基于Spanner實(shí)現(xiàn)的對全球數(shù)百萬玩家的支持。Spanner數(shù)據(jù)庫,在游戲行業(yè),特別是日本游戲行業(yè)非?;鸨?,日本頭部的游戲客戶普遍使用了Spanner數(shù)據(jù)庫來支撐業(yè)務(wù)發(fā)展。中、日、韓都是游戲大國,游戲產(chǎn)出很多,但國內(nèi)的不少游戲的架構(gòu)后臺(tái)偏老舊,需要一場變革,需要對游戲進(jìn)行“現(xiàn)代化改造”,Google Cloud也非常愿意去助力中國游戲產(chǎn)業(yè)去實(shí)現(xiàn)這一次變革!