写点什么

在线游戏为何青睐云计算?揭秘手游云计算架构部署

  • 2013-10-23
  • 本文字数:1488 字

    阅读完需:约 5 分钟

在线游戏(主要指手游和页游)具有鲜明的行业特点。首先,游戏开发门槛较低,导致游戏数量急剧增长,玩家忠诚度迅速降低,稳定可靠的游戏服务能力成为游戏开发与运营商的立身之本。其次,大多数游戏厂商独立运维的实力较小,随着业务的井喷式发展,对动态快速扩展硬件资源的需求与日俱增。第三,对于相对热门的游戏而言,一般都拥有海量玩家,亟需高并发、高负载的应对措施与方案。第四,游戏开发技术发展迅速,硬件日新月异,游戏画质与可玩性明显改善,低响应延迟是游戏体验的基本需求。最后,同业竞争激烈,安全成为游戏,尤其是热门游戏的命门。

在这种背景下,在线游戏行业面临三个主要挑战:1)需要 IT 系统提供稳定、安全、可靠的游戏服务能力,保证业务的高可用性;2)需要灵活、高可扩展性的游戏架构设计,适应业务发展的突发峰值访问;3)海量用户高并发场景下的低延迟响应要求,以提供流畅的游戏体验。

应对好这三个挑战,将为游戏厂商的成功提供坚实的基础与支撑。本文将从手游的角度讨论合理的在线游戏后端平台架构,并将引入手游行业的知名游戏大掌门应用云计算的架构,帮助优化已有的系统部署。

手游传统架构与云计算架构对比

传统手游架构

在传统手游构设计中,有几个可以改进的地方。游戏运行服务中,应用部署在固定的服务器上,当业务迅速变化时,无法及时动态调整资源来满足;单台云服务器上部署了游戏应用的多个模块,不符合松耦合的部署原则,且容易造成 IO 争抢,影响读写性能;在玩家游戏的高峰时段,游戏更新服务容易因数据分发延迟,形成瓶颈,影响用户体验;游戏更新服务中存在单点配置,一旦其中的一台服务器宕机,可能导致玩家无法更新而不能继续游戏;对架构全局缺少专门的监控与报警机制,存在安全隐患。

大掌门游戏架构图

与传统系统部署架构相比,大掌门应用云计算的架构有以下特点:

  1. 实现应用的松耦合,将 Web/ 应用服务器与缓存、数据库服务等模块解耦,并物理隔离部署,这样能够实现功能模块的水平扩展,同时也避免了云服务器上 IO 争抢带来的性能降低问题。如上图所示,Web Server、Cache Server 及 DB Server 均各自分层,Web Server 组成一个集群,通过负载均衡 SLB 对外提供服务。当业务量迅速变化时,可以通过 API 自动动态向上或向下扩展集群中的云服务器数目。DB Server 搭建主备集群,并定期冷备数据到本地或 OSS 存储。用户也可不必自己搭建缓存和数据库服务,而直接采用阿里云 OCS 和 RDS,这样可以简化系统架构、降低运维成本,并有更高的可靠性。
  2. 在关键路径上,部署主备集群,通过负载均衡服务 SLB 分发并对外提供服务,避免单点故障带来的游戏不可用。游戏更新和运行服务均体现了这一点。
  3. 游戏更新服务可基于阿里云 CDN 提供静态文件分发的低延迟,若游戏中有大量临时文件,包括地图、静态数据分发等,也可以考虑通过 CDN 来保证游戏体验。
  4. 在应用部署的云服务器上,免费开通云盾及云监控,保障游戏不受恶意攻击及病毒、木马等入侵,为游戏稳定运行提供保障。

综上所述,面对游戏行业特点与挑战,基于云服务的架构部署方式完全可以解决传统架构存在的问题与隐患。阿里云的云服务器、RDS 等产品的高可扩展性能力帮助用户实现动态资源配置,以应对业务的剧烈变化;负载均衡帮助用户应对高峰流量、单点故障,提升业务稳定性;云盾、云监控帮助用户保护网络与数据安全,抵御恶性竞争的攻击;多线 BGP 网络、CDN 帮助用户在海量、高并发场景下维持业务的快速响应。

基于以上的优势,做游戏就用云计算开始成为行业标配,比如大掌门、疯狂猜图、小浣熊、游易网络、跃兔、边锋等都是云计算的受益者,他们也将在 2013 阿里云开发者大会上详细展示如何完成“云中游戏”的。

2013-10-23 10:111661
用户头像

发布了 1459 篇内容, 共 690.0 次阅读, 收获喜欢 2484 次。

关注

评论

发布
暂无评论
发现更多内容

微信内H5页面唤起小程序&App

南城FE

前端 微信开发 7月月更

语音聊天源码——语音聊天源码开发设计搭建

开源直播系统源码

软件开发 直播系统源码 开源源码 语音聊天源码 语音社交软件

Linux下QT配合OpenCV完成图像处理(实现基本的人脸检测)

DS小龙哥

7月月更

【C语言】进阶指针night

謓泽

7月月更

有证书有目录!|海泰密码服务平台

电子信息发烧客

镍氢电池的特性和使用方法(FDK镍氢电池充电机制)

不脱发的程序猿

嵌入式 汽车电子 镍氢电池 镍氢电池充电逻辑 FDK镍氢电池

从0开始的 TypeScriptの十四:内置工具类型

空城机

typescript 7月月更

深入Ceph原理包含核心算法Crush说明和通信机制原理(五)

Lansonli

云原生 Ceph 7月月更

谈谈JavaScript的作用域及作用域链

南极一块修炼千年的大冰块

7月月更

【LeetCode】最长的斐波那契子序列的长度Java题解

Albert

LeetCode 7月月更

ArkUI常见问题汇总【系列3】

坚果

HarmonyOS Open Harmony 7月月更

【古月21讲】ROS入门系列(2)——发布者Publisher、订阅者Subscriber的编程实现+自定义话题消息编程实现

秃头小苏

ROS 7月月更

spark调优(六):大家好才是真的好——广播变量

怀瑾握瑜的嘉与嘉

spark 7月月更

Android/Unity大乱斗-完整双方集成交互指南

芝麻粒儿

android Unity 7月月更

QT | VS2017 + Qt5.14.2环境搭建

YOLO.

环境搭建 vs Qt Creator 7月月更

激情的开头,大意的结局,Python反爬加更,好友求助米哈游的API,给他安排上

梦想橡皮擦

Python 爬虫 7月月更

服务网格中 sidecar 流量治理与多协议嗅探

博文视点Broadview

MFC|自绘CStatic刷新不及时问题

中国好公民st

c++ 7月月更

如何控制css鼠标样式以及扩大鼠标点击区域

南极一块修炼千年的大冰块

7月月更

python 中Mixin混入类的用法

杨彦星

Python

Room:又要写业务代码了?看看我吧,给你飞一般的感觉!

编程的平行世界

数据库 Android; android jetpack

【Debug】VS EXE运行“应用程序无法正常启动(0xc000007b)”

柒号华仔

debug 7月月更

java零基础入门-综合案例(File类+递归)

喵手

7月月更

浅谈 Slack Channel 支持的一些提高工作效率的特性

汪子熙

远程办公 即时通讯 SAP Slack 7月月更

iOS中的Block(初步认识)

NewBoy

ios 前端 移动端 iOS 知识体系 7月月更

对接企业微信,客户关系管理也可以很简单!

CRMEB

mysql进阶(三)游标简易知识点汇总

No Silver Bullet

MySQL 数据库 游标 7月月更

【答疑解惑】 裁员浪潮中,N+1 到底指什么?

面试官问

互联网裁员 N+1

LeetCode-111. 二叉树的最小深度(java)

bug菌

Leet Code 7月月更

list的使用方式

小肉球

qt 7月月更

查找——二叉排序树(一)

乔乔

7月月更

在线游戏为何青睐云计算?揭秘手游云计算架构部署_语言 & 开发_InfoQ 中文站_InfoQ精选文章