一、概述
游戲行業是阿里云最早聚焦的行業之一,近年來游戲行業的變化、云計算產品技術的變化都與日俱進。隨著行業業務的變化、技術架構的演進以及阿里云產品的迭代演進,整體的產品技術選型在不同的游戲場景、業務場景也不盡相同。本文將聚焦阿里云彈性計算產品在游戲行業的方案實踐經驗。
二、游戲行業場景介紹
當前,游戲行業的各種場景和行業發展密不可分。簡單回顧電子游戲的發展,80年代的黑白機,90年代的PC單機游戲,00年代前夕隨著互聯網的發展網絡游戲開始盛行,2010年后隨著移動設備的逐漸普及,手游在國內開始興起。
從游戲終端來區別,主要有:主機游戲(往往是3A游戲)、PC游戲、移動游戲和網頁游戲等。目前出現跨平臺多端游戲,以及云游戲化的趨勢。
關于游戲的品類區別會有非常多的維度:RPG(角色扮演)、MOBA類、競技類、FPS(射擊類)、休閑類、卡牌類、棋牌類、SLG(策略類)等等。目前有多品類融合玩法裂變的趨勢。
隨著國內防沉迷、版號因素,近年來游戲行業誕生了越來越多的精品游戲,出海全球化乃至區域化,以及整體存量用戶增速放緩,長線運營、精細運營以及私域社區等運營方式也在悄然變化。
三、游戲行業技術架構介紹
不同的業務場景技術架構不盡相同,如競技類游戲和卡牌類游戲對計算的需求就有所區別,云游戲與常規的網絡游戲架構也有所區別。這里主要從游戲服和游戲平臺、大數據、云游戲這四個目前常見的場景簡單介紹其架構。
1 游戲服架構與產品實踐
業務場景
游戲服,從游戲類型來看有RPG、FPS、MOBA、SLG、棋牌、休閑等等;從游戲平臺來看通常有主機、手機、PC等;從業務發行來看有全球、國內、海外,從部署架構來看有集中部署和分區部署;從技術架構來看,游戲行業也有逐漸分層解耦的趨勢,但與互聯網應用相比,有一定其獨特性。
技術特點
因為游戲的強交互性特點,游戲技術架構與其他互聯網應用相比有一定獨特性。游戲需要保持會話連接,也就是從一個客戶端到服務端的長連接,便于對客戶端中玩家的操作、行為等進行及時的反饋以及推送給共同游戲或對戰的其他玩家,所以游戲普遍對網絡質量更加敏感,網絡質量較差的情況會使長連接斷開或重連,引起玩家掉線。游戲也需要保持會話的狀態,既服務端會保持一份玩家的實體,當玩家進行操作時,下次通信的數據會依賴之前的通信的數據,這也是一些MMO(多人在線)大型游戲對網絡吞吐性能要求較高的原因之一。再比如FPS、MOBA類等多人對戰類游戲,交互性更強,對網絡延遲容忍度更低,要求低延遲。因為游戲需要比較高密度的記錄玩家的操作以及結果,所以有頻繁寫入數據的特點,這類場景需要較強的IO性能。因為游戲強交互性、低延遲的特點,其技術架構也和互聯網應用不同,在逐漸分層解耦的同時,需要保證游戲玩家的交互效果,同時也會依賴到底層服務器的計算能力。
這些都是游戲場景普遍存在的特點:長連接保持會話、保持狀態、低延遲網絡、高IO吞吐、高計算性能。
部署方案
游戲的部署架構會結合游戲業務特點、游戲運營需求來制定游戲服務,有分區分服、全區全服業務邏輯,分區分服還是全區全服,最大的架構差異在于數據是不是一套。而從部署方式看,主要是集中式部署和分區域部署。
集中部署就是不論游戲玩家在哪里,游戲服務集中在一個區域,適合對網絡延遲要求通常不高的游戲類型,如休閑類;分區部署是指游戲服務器根據游戲玩家地域分布,分區域部署,方便就近接入,適合對網絡延遲要求較高的游戲類型,如MOBA、FPS類。
典型架構
i. 類游戲架構介紹
MMO類有高并發特點,大量玩家并發的高計算量負載對服務器的計算能力和穩定性有著極高的要求。同時MMO類游戲有著比較強的PVE或PVP特性,對網絡延遲的容忍度較低。
其中網關服務器負責所有網絡數據包的轉發,通常是網絡負載較集中的點,對于網絡吞吐能力要求較高。單個游戲區承載玩家數量高,邏輯服務器通常按照場景地圖來劃分,規模再大會通過分區的方式實現。
數據中心服務器負責緩存玩家數據并異步入庫,保障玩家客戶快速獲取和寫入數據,對于可用性要求較高,需要配合應用層實現數據容錯機制。
日志服務器承載了大區所有業務行為的日志收集及處理的壓力,對磁盤寫入性能要求較高,通常采用多臺分組方式實現。
彈性計算產品建議:
(1)MMO游戲服性能與穩定需求,建議使用最第7代ECS實例,根據實際需求選型c計算型(CPU與內存配比1:2)/g通用型(1:4)/r內存型(1:8)h5 資源本地化緩存,Intel Ice Lake 2.9GHz基頻3.5GHz睿頻提供超高性能,能更好地優化游戲體驗。
(2)異步落庫以及日志服務器,對于磁盤讀寫性能要求高的場景,建議云上使用ESSD PL 0/1/2/3根據業務性能需要選擇,避免磁盤讀寫瓶頸。
(3)在游戲日常版本更新中,需要各個地域鏡像的快速復制,基于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 游戲平臺
業務場景
游戲平臺(不限于FPS、MOBA類)主要提供的服務:官網、客服、注冊、登錄、充值、兌換、商城、推送、公告、社區、SDK及郵件、短信等公共服務;包括內容審核、視頻錄制、彈幕、轉碼、剪輯、RTC這些業務需要的基礎服務,以及運維監控、發布平臺、測試平臺這些運維等平臺服務。
這部分更接近于通用的互聯網技術架構,以服務為顆粒度解耦,接入->網關->應用->數據庫。
技術特點
這往往通常需要構建高可用基礎架構來提升穩定性,業務突發期往往需要一定的彈性能力。相比于游戲服務這部分容器化就更加普及,也更容易通過云上的比如彈性容器實例去應對流量峰值場景。在視頻錄制場景,對實時性要求較高時,往往會基于GPU能力構建,這部分阿里云也提供了vGPU/cGPU能力,釋放GPU的靈活性。
3 大數據架構與產品實踐
業務場景
游戲全生命周期的業務表現,用戶留存、經營轉化、包括游戲內玩法策略等都是游戲廠商非常關注的業務支撐數據。
大數據是當前游戲業務經營、游戲運營主要的技術手段,主要面向平臺數據運營、游戲數據分析、廣告轉化分析、安全運營分析等游戲核心運營場景。不同的場景對實時性要求不同,實時查詢檢索通常是經營分析、客戶受理、玩家監測、在線等場景;離線報表通常是玩家行為分析、用戶畫像、特征挖掘等場景。
總體而言,實時性業務更多是業務查詢類、簡單計算類任務,比如買量轉化的分析;離線類基本是分析類、預測類任務,比如游戲玩法分析。
架構特點
從技術架構來看,得益于開源社區技術棧的高豐富度,大數據具體的技術選擇非常之多,整體從存算一體到存算分離,也誕生像數據倉庫、數據湖乃至湖倉一體等概念。
從數據架構流程來看,從數據源->數據采集、傳輸->數據計算、存儲->數據應用,其中可選看技術方案也需要因地制宜。
從部署架構來看,不同的游戲公司處在不同的數據建設階段,會有不同的選擇傾向,包括完全自建、基于云自建大數據、基于云上托管、以及利用更多云上成熟的產品技術去豐富整體的大數據能力集,而后者也成為越來越多客戶的選擇。
拿云上大數據方案舉例來講,比如實時計算部分,選擇SLS采集、Kafka數據網關通道,通過Flink做數據計算,通過ES或CK做數據分析,通過ADB以及做數據應用展示。離線方案通過OSS做冷數據存儲,Spark、Hive、HDFS等組件做數據計算存儲,通過CK匯聚分析,通過做數據應用。
產品選型
具體計算存儲的產品選型,主要根據不同的業務特性以及大數據應用特性來區分,根據數據容量、IOPS、吞吐、讀寫特點以及性價比來選擇。
如剛剛舉例的實時計算/近實時計算場景,Flink具備高性能、低延遲特點,所以是計算密集、網絡性能高場景,推薦選型七代ECS實例或6代增強實例;如HDFS需要超大存儲容量,高吞吐,推薦D系列本地盤實例,如D2S存儲型本地盤實例。 等處理結果多的場景,讀寫處理頻繁如大量的join計算,需要綜合來看計算、網絡、存儲性能以及綜合成本來選擇通用實例(如第7代ECS實例)或i系列本地盤實例。所以,最終在云上的資源選型,在性能滿足的前期下,需要評估通過網絡傳輸數據成本高(云盤),還是就地取材計算成本高(本地盤),不同模型、不同量級選擇不同。
從內存處理(成本最高、性能最好、存儲容量最小)、SSD本地盤、HDD本地盤、ESSD云盤、OSS對象存儲(成本最優、性能一般、存儲容量最大),逐漸分層解耦,還帶來一個好處:充分釋放了云上彈性的能力,可以利用更輕巧的彈性計算產品(如SPOT搶占式實例方式,或ECI容器實例)進行大數據計算,達到更好的彈性能力去滿足業務需求的同時也能節約更多的成本。
4 云游戲架構與產品實踐
業務場景
從2009年提出云游戲理念與產品開始,云游戲已經熬過了一個技術周期,尤其在近兩年,我們也能夠看到越來越多的公司關注云游戲,投入云游戲。平臺以流化能力為技術基礎,以視頻流化形式帶動游戲運行h5 資源本地化緩存,使用戶以低成本享受更高品質游戲產品,并根據實際將云游戲的需求覆蓋到PC端、移動端、電視端等終端場景。
架構特點
云游戲主要分終端和云端。終端部分基于、iOS、Linux等操作系統的終端設備包括手機、平板、電腦、電視機、VR一體機等。云端架構主要是游戲應用層、云游戲平臺層、IaaS基礎資源層,應用層包括PC游戲、手游、VR游戲、H5游戲等多種類型的游戲應用;平臺層云游戲必須的運營平臺、支撐平臺、流化技術平臺等;IaaS基礎資源層包括基礎網絡、基于X86架構以及ARM架構的GPU服務器。
產品推薦
云游戲落地,在技術上也經歷了諸多挑戰,為滿足端到端高性能低時延,網絡調度、指令串流、編解碼、多終端的SDK適配等等都是云游戲場景中不可避免的技術問題。
對于云端算力來講,阿里云解決了云端渲染、串流以及編解碼問題,并通過全系列GPU產品來滿足云手游、端游、VR乃至企業級視覺渲染場景的需求。
總結來講,阿里云彈性計算通過云上的串流、編碼加速、渲染加速等全套的技術幫助游戲客戶給云游戲玩家提供更好的性能體驗,通過基于阿里云全球數據中心可以幫助云游戲客戶覆蓋更多的用戶,通過GPU多種產品形態和整體的彈性能力,也幫助到游戲客戶去更快捷更靈活的構建其云游戲業務。
四、總結
阿里云通過多年的技術積累和持續的運營,提供了大規模的基礎設施云服務,目前在全球部署了26個地域、82個可用區,通過優異穩定的性能表現幫助游戲客戶高效穩定地運行游戲業務,為玩家提供極致順滑的游戲體驗,并通過技術手段不斷地幫助游戲客戶優化用云成本。
國內的業務出海、游戲出海也是現階段大的趨勢之一,很多游戲公司已經把出海從業務可選項變成了必選項之一。在2022年3月,阿里云上線了韓國和泰國兩大,能夠為本地化的游戲業務提供更流暢、更穩定的游戲體驗,以此希望能在游戲客戶出海的業務領域,提供更多的幫助。
當然,作為內容與科技兩大熱門領域的交叉領域,游戲產業日新月異,架構也隨著前端業務的需要不斷改變。阿里云彈性計算也針對游戲廠商的不同架構,陸續推出了不同的云服務器類型和付費方式,以及云上運維套件,以幫助客戶降本增效。
未來,阿里云將持續對游戲行業保持高度關注,始終為行業提供堅實、穩定、便捷的基礎設施,一同推動游戲產業的健康發展。
文 | 阿里云彈性計算產品解決方案架構師 馮宇(尋野)