“在Camel Games,沒有專門的DBA。游戲核心業(yè)務(wù)運(yùn)行在200多組Amazon Aurora集群上,平均延時穩(wěn)定保持在10毫秒左右,新業(yè)務(wù)上線可在幾分鐘內(nèi)輕松完成。開發(fā)運(yùn)維團(tuán)隊可以從大量基礎(chǔ)的工作中解放出來,充分與業(yè)務(wù)結(jié)合,專注創(chuàng)新?!?/span>
——張華北京殼木軟件有限責(zé)任公司服務(wù)器主管
關(guān)于Camel Games
北京殼木軟件有限責(zé)任公司(以下簡稱“Camel Games”)成立于2009年8月,是一家具有世界一流開發(fā)、運(yùn)營水準(zhǔn)的手機(jī)網(wǎng)游公司。2011年獲得了Google Play官方頒發(fā)的Top Developer(頂尖開發(fā)者),是中國大陸地區(qū)第一家獲此殊榮的手機(jī)游戲開發(fā)團(tuán)隊。2013年,Camel Games被神州泰岳收購,成為創(chuàng)業(yè)板上市公司神州泰岳的全資子公司。
Camel Games于2011年底推出的《小小帝國》,是國內(nèi)游戲團(tuán)隊早期出海的代表作品,也是在海外達(dá)到千萬月流水的手游產(chǎn)品之一。Camel Games于2016年推出《War and Order》,截至目前,該款游戲全球累積總流水已超過20億元。
用“精品游戲”瘋狂圈粉,重度用戶“養(yǎng)成記”
在業(yè)界,Camel Games一直強(qiáng)調(diào)做“精品游戲”,主要開發(fā)的是“重度長生命周期”游戲。目前,Camel Games運(yùn)營時間最長的游戲已服務(wù)全球玩家近八年。從一開始,Camel Games就借助Amazon Elastic Compute Cloud(Amazon EC2)、Amazon Elastic Block Store(Amazon EBS)、Amazon CloudFront、Amazon Simple Storage Service(Amazon S3)等成熟的云服務(wù)來擴(kuò)充服務(wù)器容量,為用戶提供穩(wěn)定、高質(zhì)量的游戲體驗。無論玩家位于美國、歐洲、亞洲、南美洲還是大洋洲,都能通過最近的節(jié)點(diǎn)高效傳輸數(shù)據(jù),低延遲地獲得游戲更新和內(nèi)容。
從最初在Amazon EC2上搭建MySQL,到2016年新款游戲上線時直接使用Amazon Aurora數(shù)據(jù)庫,AWS云伴隨Camel Games的發(fā)展一路走來。未來,Camel Games計劃將所有游戲業(yè)務(wù)都遷移至Aurora。
目前,僅面向《War and Order》這款核心游戲,Camel Games就在AWS上部署200組Aurora集群,其中170組供游戲業(yè)務(wù)使用(采用主從方式),另外70多臺實(shí)例負(fù)責(zé)處理日志數(shù)據(jù),總數(shù)據(jù)量約200TB。另外一款頗受玩家追捧的游戲《Age of Z》則通過33組Aurora集群支撐,同樣采用主從方式部署。
圖1是Camel Games的系統(tǒng)架構(gòu)圖,所使用的AWS服務(wù)包括Amazon EC2、Aurora、Amazon EBS、Amazon S3、Elastic Load Balancing、Amazon CloudWatch、CloudFront、Amazon Route 53等。
使用AWS的體驗就是——穩(wěn)定、高效、安全
作為一家170人規(guī)模的游戲公司,Camel Games僅用2-3名非專職運(yùn)維人員就管理了500-600臺Amazon EC2服務(wù)器以及200多組Aurora數(shù)據(jù)庫?!斑\(yùn)維管理實(shí)踐中,我們更多考慮的是如何更好地服務(wù)核心業(yè)務(wù)、輔助決策?!盋amel Games服務(wù)器主管張華表示,“Camel Games甚至沒有專門的DBA,數(shù)據(jù)庫一旦完成正確配置,團(tuán)隊甚至多半年時間都無需關(guān)注它”。
由于游戲服務(wù)器采用主備形式,當(dāng)一個實(shí)例發(fā)生意外故障時,系統(tǒng)可自動做主備切換,最小化停機(jī)時間。當(dāng)正確設(shè)置時,應(yīng)用層無需重啟,平臺可在30秒左右自動接管服務(wù),無縫實(shí)現(xiàn)故障轉(zhuǎn)移。同時,Aurora支持自動備份和時間點(diǎn)恢復(fù),可在極端事件發(fā)生時確保數(shù)據(jù)安全,將業(yè)務(wù)影響和損失降至最低。
性能表現(xiàn)是游戲玩家最重視的關(guān)鍵體驗之一,實(shí)際應(yīng)用中與游戲模型、代碼優(yōu)化程度等高度關(guān)聯(lián)。Aurora提供多種配置選項,Camel Games可根據(jù)自身業(yè)務(wù)實(shí)際來高效匹配資源。當(dāng)游戲版本更新、推廣活動等峰值來臨時,后臺僅需通過簡單的“升級+配置”即可輕松搞定,整個過程高度自動化。通過Aurora,新業(yè)務(wù)上線只需點(diǎn)擊幾次鼠標(biāo),整個過程不過幾分鐘。
目前Camel Games運(yùn)行在AWS上的單個Aurora集群平均業(yè)務(wù)并發(fā)量達(dá)幾千次/秒,玩家數(shù)據(jù)讀/寫,日志數(shù)據(jù)以寫為主。峰值可達(dá)兩萬多次讀/秒,寫則有三、四千次/秒。據(jù)張華介紹,經(jīng)歷最長的一次峰值持續(xù)了幾個小時,而Aurora數(shù)據(jù)庫延時穩(wěn)定保持在10毫秒左右,表現(xiàn)令人滿意。其中,數(shù)據(jù)庫中最大的表是用戶表,達(dá)千萬量級,讀寫比例約為5:1。
Amazon Aurora的“隱藏功能”和待發(fā)掘的云平臺超能力
多年的AWS使用經(jīng)歷,讓Camel Games團(tuán)隊積累了豐富的云上業(yè)務(wù)經(jīng)驗。“運(yùn)維開發(fā)和管理更多是從業(yè)務(wù)層的角度出發(fā),比如更關(guān)注代碼的優(yōu)化程度,如何最大程度地挖掘?qū)嵗阅?。”張華坦言,“通常在業(yè)務(wù)上新時,例如一個新版本的內(nèi)容需要配置多大的數(shù)據(jù)庫等類似問題,團(tuán)隊內(nèi)部有經(jīng)驗公式,只需按照預(yù)先的準(zhǔn)備直接開新實(shí)例,運(yùn)維管理的角度并不需要特別關(guān)注這些事情。包括CloudWatch等運(yùn)維監(jiān)控工具,實(shí)際上都很少看,系統(tǒng)運(yùn)行基本上都很穩(wěn)定。
張華介紹,實(shí)際應(yīng)用中,團(tuán)隊更多的是使用“Performance Insights”功能來監(jiān)控Aurora集群上的“Top SQL”。根據(jù)“TOP SQL”,運(yùn)維團(tuán)隊可以輕松定位對系統(tǒng)消耗資源較多、明顯異常的SQL語句。以此為初始依據(jù),再根據(jù)經(jīng)驗做判斷和優(yōu)化,后續(xù)效果反饋則可通過CloudWatch第一時間以圖形化的方式直觀呈現(xiàn)。實(shí)際應(yīng)用中,Camel Games團(tuán)隊認(rèn)為Aurora的這項特性很實(shí)用,尤其對非DBA專業(yè)出身的用戶非常友好,有助于迅速發(fā)現(xiàn)和解決問題。
通過這種方法,特別在新游戲上線時,運(yùn)維團(tuán)隊可以開展相應(yīng)監(jiān)控和優(yōu)化工作,在代碼本身經(jīng)過迭代的情況下,團(tuán)隊就能對平臺的業(yè)務(wù)支撐能力做到“心中有數(shù)”。
Aurora數(shù)據(jù)庫的存儲空間可以根據(jù)數(shù)據(jù)量的增加而自動增長的特性令人印象深刻。張華說,有了這個功能,就不需要操心數(shù)據(jù)庫的存儲擴(kuò)容問題。自動增加存儲空間時不需要停機(jī),也不會影響性能。
目前,Camel Games的數(shù)據(jù)庫仍集中在一個區(qū)域,如何面向全球不同地區(qū)用戶提供應(yīng)用加速,將不同區(qū)域的訪問延時控制在可控范圍內(nèi)并保證數(shù)據(jù)同步是Camel Games后續(xù)考慮的重點(diǎn)方向。面向業(yè)務(wù),未來則考慮進(jìn)一步將Amazon S3和Amazon Athena數(shù)據(jù)庫查詢相結(jié)合,針對日志數(shù)據(jù)做大數(shù)據(jù)分析,更好地輔助運(yùn)營決策。
獲得的收益
對于在AWS上的應(yīng)用收益,張華總結(jié)了幾點(diǎn)獨(dú)特的感受:
一是平臺功能豐富,系統(tǒng)穩(wěn)定。包括大量使用文檔和教學(xué)內(nèi)容,非常方便技術(shù)人員了解和學(xué)習(xí)。“AWS的策略更多考慮的是將底層的事情用平臺包裝,做成一個非常容易使用的產(chǎn)品,Aurora就是其中的代表。伴隨Camel Games自身業(yè)務(wù)的成長和使用需求,AWS總是能在最需要的時候提供可行方案?!?/span>
二是使用越深入,平臺上積累的競爭優(yōu)勢越多。張華認(rèn)為,某種程度上,游戲公司的業(yè)務(wù)特點(diǎn)決定了它容易對云平臺形成‘路徑依賴’。Aurora是非常優(yōu)秀的數(shù)據(jù)庫,包含很多使用過程中可挖掘的特色功能。使用越多,感受越深。相比較傳統(tǒng)數(shù)據(jù)庫,Aurora大大減少了數(shù)據(jù)庫運(yùn)維的工作量,讓技術(shù)人員可以專注于應(yīng)用開發(fā)和業(yè)務(wù)創(chuàng)新。
三是成本可控,經(jīng)濟(jì)效益佳。與花費(fèi)在游戲運(yùn)營和推廣上的支出相比,Camel Games在云平臺上的投入占整體營收的比例較小。實(shí)際上,業(yè)務(wù)本身的穩(wěn)定性和適用性是決定性因素,Camel Games團(tuán)隊更多會從TCO的角度考慮問題。所謂“開源節(jié)流”,開源更重要。從平臺本身著手,做成本控制和優(yōu)化,未來還有很大的進(jìn)步空間。而在擴(kuò)展市場時,穩(wěn)定性顯然比單純關(guān)注成本更重要。
Camel Games生于云,長于云,一步一個腳印,與AWS相伴一路走來。在服務(wù)全球游戲玩家,培養(yǎng)大量“重度用戶”的過程中,Camel Games也在AWS云上積累了豐富的實(shí)踐經(jīng)驗。共同成長,更多歡笑。