阿里云架构师解读四大主流游戏架构

简介: 阿里云弹性计算产品在游戏行业的方案实践经验分享。

文丨冯宇  阿里云弹性计算产品解决方案架构师 


游戏行业是阿里云最早聚焦的行业之一,近年来游戏行业的变化、云计算产品技术的变化都与日俱进。随着行业业务的变化、技术架构的演进以及阿里云产品的迭代演进,整体的产品技术选型在不同的游戏场景、业务场景也不尽相同。本文将聚焦阿里云弹性计算产品在游戏行业的方案实践经验。


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,能够为本地化的游戏业务提供更流畅、更稳定的游戏体验,以此希望能在游戏客户出海的业务领域,提供更多的帮助。


当然,作为内容与科技两大热门领域的交叉领域,游戏产业日新月异,架构也随着前端业务的需要不断改变。阿里云弹性计算也针对游戏厂商的不同架构,陆续推出了不同的云服务器类型和付费方式,以及云上运维套件,以帮助客户降本增效。


未来,阿里云将持续对游戏行业保持高度关注,始终为行业提供坚实、稳定、便捷的基础设施,一同推动游戏产业的健康发展。


点击观看视频,查看冯宇在《游戏行业弹性计算最佳实践》直播中的精彩演讲回放。

相关实践学习
基于ACK Serverless轻松部署企业级Stable Diffusion
本实验指导您在容器服务Serverless版(以下简称 ACK Serverless )中,通过Knative部署满足企业级弹性需求的Stable Diffusion服务。同时通过对该服务进行压测实验,体验ACK Serverless 弹性能力。
Kubernetes极速入门
Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理。Kubernetes通常结合docker容器工作,并且整合多个运行着docker容器的主机集群。 本课程从Kubernetes的简介、功能、架构,集群的概念、工具及部署等各个方面进行了详细的讲解及展示,通过对本课程的学习,可以对Kubernetes有一个较为全面的认识,并初步掌握Kubernetes相关的安装部署及使用技巧。本课程由黑马程序员提供。   相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
14天前
|
弹性计算 运维 监控
阿里云云服务诊断工具:合作伙伴架构师的深度洞察与优化建议
作为阿里云的合作伙伴架构师,我深入体验了其云服务诊断工具,该工具通过实时监控与历史趋势分析,自动化检查并提供详细的诊断报告,极大提升了运维效率和系统稳定性,特别在处理ECS实例资源不可用等问题时表现突出。此外,它支持预防性维护,帮助识别潜在问题,减少业务中断。尽管如此,仍建议增强诊断效能、扩大云产品覆盖范围、提供自定义诊断选项、加强教育与培训资源、集成第三方工具,以进一步提升用户体验。
662 243
|
4月前
|
存储 架构师 测试技术
架构之道——人人都是架构师
本文的探讨和编写主要围绕三个方面:架构是什么?架构师要解决的问题有哪些?解决这些问题的方法论是什么?最后作者希望人人都能具备架构师思维。
|
1月前
|
人工智能 云计算 网络架构
阿里云引领智算集群网络架构的新一轮变革
11月8日~10日在江苏张家港召开的CCF ChinaNet(即中国网络大会)上,众多院士、教授和业界技术领袖齐聚一堂,畅谈网络未来的发展方向,聚焦智算集群网络的创新变革。
阿里云引领智算集群网络架构的新一轮变革
|
9天前
|
弹性计算 Cloud Native Serverless
阿里云 SAE 邀您参加 Serverless 高可用架构挑战赛,赢取精美礼品
阿里云 SAE 邀您参加 Serverless 高可用架构挑战赛,赢取精美礼品。
|
1月前
|
人工智能 Cloud Native 算法
|
1月前
|
人工智能 运维 网络架构
阿里云引领智算集群网络架构的新一轮变革
11月8日至10日,CCF ChinaNet(中国网络大会)在江苏张家港召开,众多院士、教授和技术领袖共聚一堂,探讨网络未来发展方向。阿里云研发副总裁蔡德忠发表主题演讲,展望智算技术发展趋势,提出智算网络架构变革的新思路,发布高通量以太网协议和ENode+超节点系统规划,引起广泛关注。阿里云HPN7.0引领智算以太网生态蓬勃发展,成为业界标杆。未来,X10规模的智算集群将面临新的挑战,Ethernet将成为主流方案,推动Scale up与Scale out的融合架构,提升整体系统性能。
|
2月前
|
缓存 NoSQL Java
秒杀圣经:10Wqps秒杀,16大架构绝招,一文帮你秒变架构师 (2)
高并发下的秒杀系统设计是一个复杂的挑战,涉及多个关键技术点。40岁老架构师尼恩在其读者交流群中分享了16个关键架构要点,帮助解决高并发下的秒杀问题,如每秒上万次下单请求的处理、超卖问题的解决等。这些要点包括业务架构设计、流量控制、异步处理、缓存策略、限流熔断、分布式锁、消息队列、数据一致性、存储架构等多个方面。尼恩还提供了详细的实战案例和代码示例,帮助读者全面理解和掌握秒杀系统的架构设计。此外,他还分享了《尼恩Java面试宝典》等资源,帮助读者在面试中脱颖而出。如果你对高并发秒杀系统感兴趣,可以关注尼恩的技术自由圈,获取更多详细资料。
秒杀圣经:10Wqps秒杀,16大架构绝招,一文帮你秒变架构师 (2)
|
2月前
|
缓存 NoSQL Java
秒杀圣经:10Wqps高并发秒杀,16大架构杀招,帮你秒变架构师 (1)
高并发下,如何设计秒杀系统?这是一个高频面试题。40岁老架构师尼恩的读者交流群中,近期有小伙伴在面试Shopee时遇到了这个问题,未能很好地回答,导致面试失败。为此,尼恩进行了系统化、体系化的梳理,帮助大家提升“技术肌肉”,让面试官刮目相看。秒杀系统设计涉及16个架构要点,涵盖业务架构、流量架构、异步架构、分层架构、缓存架构、库存扣减、MQ异步处理、限流、熔断、降级、存储架构等多个方面。掌握这些要点,可以有效应对高并发场景下的秒杀系统设计挑战。
秒杀圣经:10Wqps高并发秒杀,16大架构杀招,帮你秒变架构师 (1)
|
3月前
|
Cloud Native Java 编译器
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
随着云计算技术的不断发展,云服务商们不断推出高性能、高可用的云服务器实例,以满足企业日益增长的计算需求。阿里云推出的倚天实例,凭借其基于ARM架构的倚天710处理器,提供了卓越的计算能力和能效比,特别适用于云原生、高性能计算等场景。然而,有的用户需要将传统基于x86平台的应用迁移到倚天实例上,本文将介绍如何将基于x86架构平台的应用迁移到阿里云倚天实例的服务器上,帮助开发者和企业用户顺利完成迁移工作,享受更高效、更经济的云服务。
109 13
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
|
3月前
|
缓存 Kubernetes Java
阿里云 SAE Web:百毫秒高弹性的实时事件中心的架构和挑战
SAE 事件中心通过智能诊断显示通知与用户连接起来,SAE WEB 百毫秒弹性实例给事件中心带来了新的实时性、海量数据和高吞吐的挑战,本篇将带您了解 SAE 整体事件中心的架构和挑战。
198 10