阿里雲架構師解讀四大主流游戲架構


文丨馮宇  阿里雲彈性計算產品解決方案架構師 

 

游戲行業是阿里雲最早聚焦的行業之一,近年來游戲行業的變化、雲計算產品技術的變化都與日俱進。隨着行業業務的變化、技術架構的演進以及阿里雲產品的迭代演進,整體的產品技術選型在不同的游戲場景、業務場景也不盡相同。本文將聚焦阿里雲彈性計算產品在游戲行業的方案實踐經驗。

 

01 游戲行業場景介紹

 

當前,游戲行業的各種場景和行業發展密不可分。簡單回顧電子游戲的發展,80年代的黑白機,90年代的PC單機游戲,00年代前夕隨着互聯網的發展網絡游戲開始盛行,2010年后隨着移動設備的逐漸普及,手游在國內開始興起。

 

從游戲終端來區別,主要有:主機游戲(往往是3A游戲)、PC游戲、移動游戲和網頁游戲等。目前出現跨平台多端游戲,以及雲游戲化的趨勢。

 

關於游戲的品類區別會有非常多的維度:RPG(角色扮演)、MOBA類、競技類、FPS(射擊類)、休閑類、卡牌類、棋牌類、SLG(策略類)等等。目前有多品類融合玩法裂變的趨勢。

 

隨着國內防沉迷、版號因素,近年來游戲行業誕生了越來越多的精品游戲,出海全球化乃至區域化,以及整體存量用戶增速放緩,長線運營、精細運營以及私域社區等運營方式也在悄然變化。

 

02 游戲行業技術架構介紹

 

不同的業務場景技術架構不盡相同,如競技類游戲和卡牌類游戲對計算的需求就有所區別,雲游戲與常規的網絡游戲架構也有所區別。這里主要從游戲服和游戲平台、大數據、雲游戲這四個目前常見的場景簡單介紹其架構。

 

1、游戲服架構與產品實踐

業務場景

游戲服,從游戲類型來看有RPG、FPS、MOBA、SLG、棋牌、休閑等等;從游戲平台來看通常有主機、手機、PC等;從業務發行來看有全球、國內、海外,從部署架構來看有集中部署和分區部署;從技術架構來看,游戲行業也有逐漸分層解耦的趨勢,但與互聯網應用相比,有一定其獨特性。

 

技術特點

因為游戲的強交互性特點,游戲技術架構與其他互聯網應用相比有一定獨特性。游戲需要保持會話連接,也就是從一個客戶端到服務端的長連接,便於對客戶端中玩家的操作、行為等進行及時的反饋以及推送給共同游戲或對戰的其他玩家,所以游戲普遍對網絡質量更加敏感,網絡質量較差的情況會使長連接斷開或重連,引起玩家掉線。游戲也需要保持會話的狀態,既服務端會保持一份玩家的實體,當玩家進行操作時,下次通信的數據會依賴之前的通信的數據,這也是一些MMO(多人在線)大型游戲對網絡吞吐性能要求較高的原因之一。再比如FPS、MOBA類等多人對戰類游戲,交互性更強,對網絡延遲容忍度更低,要求低延遲。

 

因為游戲需要比較高密度的記錄玩家的操作以及結果,所以有頻繁寫入數據的特點,這類場景需要較強的IO性能。因為游戲強交互性、低延遲的特點,其技術架構也和互聯網應用不同,在逐漸分層解耦的同時,需要保證游戲玩家的交互效果,同時也會依賴到底層服務器的計算能力。

 

這些都是游戲場景普遍存在的特點:長連接保持會話、保持狀態、低延遲網絡、高IO吞吐、高計算性能

 

部署方案

游戲的部署架構會結合游戲業務特點、游戲運營需求來制定游戲服務,有分區分服、全區全服業務邏輯,分區分服還是全區全服,最大的架構差異在於數據是不是一套。而從部署方式看,主要是集中式部署分區域部署

 

集中部署就是不論游戲玩家在哪里,游戲服務集中在一個區域,適合對網絡延遲要求通常不高的游戲類型,如休閑類;分區部署是指游戲服務器根據游戲玩家地域分布,分區域部署,方便就近接入,適合對網絡延遲要求較高的游戲類型,如MOBA、FPS類。

 

典型架構

i.  MMORPG類游戲架構介紹

MMO類有高並發特點,大量玩家並發的高計算量負載對服務器的計算能力和穩定性有着極高的要求。同時MMO類游戲有着比較強的PVE或PVP特性,對網絡延遲的容忍度較低。

 

其中網關服務器負責所有網絡數據包的轉發,通常是網絡負載較集中的點,對於網絡吞吐能力要求較高。單個游戲區承載玩家數量高,邏輯服務器通常按照場景地圖來划分,規模再大會通過分區的方式實現。

 

數據中心服務器負責緩存玩家數據並異步入庫,保障玩家客戶快速獲取和寫入數據,對於可用性要求較高,需要配合應用層實現數據容錯機制。

 

日志服務器承載了大區所有業務行為的日志收集及處理的壓力,對磁盤寫入性能要求較高,通常采用多台分組方式實現。

架構圖1.png

 

彈性計算產品建議

(1)MMO游戲服性能與穩定需求,建議使用最新的第7代ECS實例,根據實際需求選型c計算型(CPU與內存配比1:2)/g通用型(1:4)/r內存型(1:8),Intel Ice Lake 2.9GHz基頻3.5GHz睿頻提供超高性能,能更好地優化游戲體驗。

 

(2)異步落庫以及日志服務器,對於磁盤讀寫性能要求高的場景,建議雲上使用ESSD PL 0/1/2/3根據業務性能需要選擇,避免磁盤讀寫瓶頸。

 

(3)在游戲日常版本更新中,需要各個地域Region鏡像的快速復制,基於ESSD快照異地復制的能力,能夠提升鏡像復制效率。

 

(4)分區分服等場景往往需要快速地開服滾服合服,通過CADT雲速搭、ESS彈性伸縮、OOS運維編排、ROS資源編排等雲上運維工具搭配產品使用,能夠提升雲上運維效率。

 

ii.FPS、MOBA類游戲架構介紹

MOBA類游戲主要包括PVP系統、PVE系統、游戲平台等幾個主要部分,其中PVP戰斗是MOBA/FPS游戲的核心。

 

PVP、PVE、游戲平台功能部署於同一VPC中,構成游戲大區;戰斗服務器(往往)單獨跨地域部署。

 

游戲客戶端首先接入到登錄服務器中,完成登錄認證、計費等游戲平台邏輯。為避免單點問題,所以游戲平台服務往往需要高可用方案。可利用雲上高可用方案,包括便捷的運維工具滿足業務高可用需求。

 

FPS/MOBA競技游戲,往往對延遲特別敏感,可以想象,競技類游戲中對戰的游戲場景:玩家操控人物,在地圖里步伐飄逸,槍聲密集,每一顆子彈都是一次時間加上空間的矢量計算,而且需要在主進程中完成計算,那么算力需求就隨着房間玩家數量上升而指數爆炸,5V5的房間和大房間100人(吃雞)對算力的需求完全不同。

 

游戲這部分重算力場景,推薦阿里雲7代高主頻或七代實例,更高的單核性能提供更好的戰斗效果

 

戰斗房間類游戲,因為業務本身峰谷特性,靈活地使用雲上資源的彈性能力,往往會較好地優化整體的資源使用成本。阿里雲彈性計算本身提供了非常靈活的付費方式,包括常規的按量實例、包月包年實例、以及通過節省計划/預留實例券去抵扣按量實例資源,兼顧資源靈活使用的同時達到更優的成本。

 

此外,為更進一步釋放開發運維的效率,當前一些游戲也采用了容器化技術架構,阿里雲的ACK+ECS/ECI彈性容器實例組合搭配使用,更進一步釋放了基礎資源的靈活性和彈性能力。

架構圖2.png

 

2、游戲平台

業務場景

游戲平台(不限於FPS、MOBA類)主要提供的服務:官網、客服、注冊、登錄、充值、兌換、商城、推送、公告、社區、SDK及郵件、短信等公共服務;包括內容審核、視頻錄制、彈幕、轉碼、剪輯、RTC這些業務需要的基礎服務,以及運維監控、發布平台、測試平台這些運維等平台服務。

 

這部分更接近於通用的互聯網技術架構,以服務為顆粒度解耦,接入->網關->應用->數據庫。

 

技術特點

這往往通常需要構建高可用基礎架構來提升穩定性,業務突發期往往需要一定的彈性能力。相比於游戲服務這部分容器化就更加普及,也更容易通過雲上的比如彈性容器實例去應對流量峰值場景。在視頻錄制場景,對實時性要求較高時,往往會基於GPU能力構建,這部分阿里雲也提供了vGPU/cGPU能力,釋放GPU的靈活性。

架構圖3.png

 

3、大數據架構與產品實踐

業務場景

游戲全生命周期的業務表現,用戶留存、經營轉化、包括游戲內玩法策略等都是游戲廠商非常關注的業務支撐數據。

 

大數據是當前游戲業務經營、游戲運營主要的技術手段,主要面向平台數據運營、游戲數據分析、廣告轉化分析、安全運營分析等游戲核心運營場景。不同的場景對實時性要求不同,實時查詢檢索通常是經營分析、客戶受理、玩家監測、在線等場景;離線報表通常是玩家行為分析、用戶畫像、特征挖掘等場景。

 

總體而言,實時性業務更多是業務查詢類、簡單計算類任務,比如買量轉化的分析;離線類基本是分析類、預測類任務,比如游戲玩法分析。

 

架構特點

從技術架構來看,得益於開源社區技術棧的高豐富度,大數據具體的技術選擇非常之多,整體從存算一體到存算分離,也誕生像數據倉庫、數據湖乃至湖倉一體等概念。

 

從數據架構流程來看,從數據源->數據采集、傳輸->數據計算、存儲->數據應用,其中可選看技術方案也需要因地制宜。

 

從部署架構來看,不同的游戲公司處在不同的數據建設階段,會有不同的選擇傾向,包括完全自建、基於雲自建大數據、基於雲上托管、以及利用更多雲上成熟的產品技術去豐富整體的大數據能力集,而后者也成為越來越多客戶的選擇。

 

拿雲上大數據方案舉例來講,比如實時計算部分,選擇SLS采集、Kafka數據網關通道,通過Flink做數據計算,通過ES或CK做數據分析,通過ADB以及QuickBI做數據應用展示。離線方案通過OSS做冷數據存儲,Spark、Hive、HDFS等組件做數據計算存儲,通過CK匯聚分析,通過Dataworks做數據應用。

 

產品選型

具體計算存儲的產品選型,主要根據不同的業務特性以及大數據應用特性來區分,根據數據容量、IOPS、吞吐、讀寫特點以及性價比來選擇。

 

如剛剛舉例的實時計算/近實時計算場景,Flink具備高性能、低延遲特點,所以是計算密集、網絡性能高場景,推薦選型七代ECS實例或6代增強實例;如HDFS需要超大存儲容量,高吞吐,推薦D系列本地盤實例,如D2S存儲型本地盤實例。Remote Shuffle Service等處理結果多的場景,讀寫處理頻繁如大量的join計算,需要綜合來看計算、網絡、存儲性能以及綜合成本來選擇通用實例(如第7代ECS實例)或i系列本地盤實例。所以,最終在雲上的資源選型,在性能滿足的前期下,需要評估通過網絡傳輸數據成本高(雲盤),還是就地取材計算成本高(本地盤),不同模型、不同量級選擇不同。

 

從內存處理(成本最高、性能最好、存儲容量最小)、SSD本地盤、HDD本地盤、ESSD雲盤、OSS對象存儲(成本最優、性能一般、存儲容量最大),逐漸分層解耦,還帶來一個好處:充分釋放了雲上彈性的能力,可以利用更輕巧的彈性計算產品(如SPOT搶占式實例方式,或ECI容器實例)進行大數據計算,達到更好的彈性能力去滿足業務需求的同時也能節約更多的成本。

架構圖4.png

 

4、雲游戲架構與產品實踐

業務場景

從2009年ONLIVE提出雲游戲理念與產品開始,雲游戲已經熬過了一個技術周期,尤其在近兩年,我們也能夠看到越來越多的公司關注雲游戲,投入雲游戲。平台以流化能力為技術基礎,以視頻流化形式帶動游戲運行,使用戶以低成本享受更高品質游戲產品,並根據實際將雲游戲的需求覆蓋到PC端、移動端、電視端等終端場景。

 

架構特點

雲游戲主要分終端和雲端。終端部分基於Windows、iOS、Linux等操作系統的終端設備包括手機、平板、電腦、電視機、VR一體機等。雲端架構主要是游戲應用層、雲游戲平台層、IaaS基礎資源層,應用層包括PC游戲、手游、VR游戲、H5游戲等多種類型的游戲應用;平台層雲游戲必須的運營平台、支撐平台、流化技術平台等;IaaS基礎資源層包括基礎網絡、基於X86架構以及ARM架構的GPU服務器。

架構圖5.png

 

產品推薦

雲游戲落地,在技術上也經歷了諸多挑戰,為滿足端到端高性能低時延,網絡調度、指令串流、編解碼、多終端的SDK適配等等都是雲游戲場景中不可避免的技術問題。

 

對於雲端算力來講,阿里雲解決了雲端渲染、串流以及編解碼問題,並通過全系列GPU產品來滿足雲手游、端游、VR乃至企業級視覺渲染場景的需求。

架構圖6.png

總結來講,阿里雲彈性計算通過雲上的串流、編碼加速、渲染加速等全套的技術幫助游戲客戶給雲游戲玩家提供更好的性能體驗,通過基於阿里雲全球數據中心可以幫助雲游戲客戶覆蓋更多的用戶,通過GPU多種產品形態和整體的彈性能力,也幫助到游戲客戶去更快捷更靈活的構建其雲游戲業務。

架構圖7.png

 

03 實踐經驗總結

 

阿里雲通過多年的技術積累和持續的運營,提供了大規模的基礎設施雲服務,目前在全球部署了26個地域、82個可用區,通過優異穩定的性能表現幫助游戲客戶高效穩定地運行游戲業務,為玩家提供極致順滑的游戲體驗,並通過技術手段不斷地幫助游戲客戶優化用雲成本。

 

國內的業務出海、游戲出海也是現階段大的趨勢之一,很多游戲公司已經把出海從業務可選項變成了必選項之一。在2022年3月,阿里雲上線了韓國和泰國兩大Region,能夠為本地化的游戲業務提供更流暢、更穩定的游戲體驗,以此希望能在游戲客戶出海的業務領域,提供更多的幫助。

 

當然,作為內容與科技兩大熱門領域的交叉領域,游戲產業日新月異,架構也隨着前端業務的需要不斷改變。阿里雲彈性計算也針對游戲廠商的不同架構,陸續推出了不同的雲服務器類型和付費方式,以及雲上運維套件,以幫助客戶降本增效。

 

未來,阿里雲將持續對游戲行業保持高度關注,始終為行業提供堅實、穩定、便捷的基礎設施,一同推動游戲產業的健康發展。

 

點擊觀看視頻,查看馮宇在《游戲行業彈性計算最佳實踐》直播中的精彩演講回放。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM