50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

  • 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:112084
用户头像

发布了 1541 篇内容, 共 726.6 次阅读, 收获喜欢 2518 次。

关注

评论

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

ARTS Week15

时之虫

ARTS 打卡计划

程序的机器级表示-数组的分配和访问

引花眠

计算机基础

拥抱K8S系列-05-基于docker部署面临的问题

张无忌

Docker 运维

透彻理解AQS源码分析系列之AQS基础二

InfoQ_d2212957090d

翻转链表,机器学习视觉训练,对数据的人工标注,使信息丢失,John 易筋 ARTS 打卡 Week 16

John(易筋)

大数据 学习 ARTS 打卡计划 翻转链表 Google论文评判人工预处理

读后感之《任正非:以客户为中心》

王新涵

有奖征文重磅来袭,来!一起玩把大的!

有只小耳朵

商业通识 : 商业为什么能进步?

Walker

学习 得到 个人成长 商业

[翻译] Go Concurrency Patterns: Pipelines and cancellation[Go并发模式]

卓丁

channel pipeline

实战解读丨Linux下实现高并发socket最大连接数的配置方法

华为云开发者联盟

Linux TCP socket 高并发

Spring 5 中文解析测试篇-Spring测试

青年IT男

Spring5 JUnit

Golang Package sync 透析

卓丁

sync Go 语言

3. 站在使用层面,Bean Validation这些标准接口你需要烂熟于胸

YourBatman

Hibernate-Validator Bean Validation 数据校验

一点思考|工作十几年了,竟从未用过do-while!

王磊

Java

阿里巴巴发布国内首个公益区块链标准 用技术让公益公开透明

CECBC

区块链 公益

架构师训练营第十三周总结

张明森

oeasy教您玩转linux010206 蒸汽机车 sl

o

握草,你竟然在代码里下毒!

小傅哥

Java 程序员 小傅哥 bug 有毒代码

深入理解JVM垃圾回收机制 - GC Roots枚举

Skye

GC Roots枚举 安全点 安全区域 OopMap

用函数式写法精简Java代码的一个例子

Sean

Java 函数式编程

从湖南“软硬兼施”,管窥三湘水畔的智能浪潮

脑极体

ARTS打卡 第15周

引花眠

微服务 ARTS 打卡计划

不支持原子性的 Redis 事务也叫事务吗?

大头星

Java redis 事务

你问我答:容器平台改造后的安全是如何解决的?

BoCloud博云

云计算 容器 微服务 PaaS 博云

2020-09-03-第十三周学习总结

路易斯李李李

学习 Java,有什么书籍推荐?学习的方法和过程是怎样的?

沉默王二

Java 学习 程序员 书单

给DevOps加点料——融入安全性的DevSecOps

禅道项目管理

DevOps 运维 测试 开发 安全性

LeetCode题解:239. 滑动窗口最大值,单调队列,JavaScript,详细注释

Lee Chen

大前端 LeetCode

给大家介绍下,这是我的流程图软件 —— draw.io

程序员小航

工具 流程图 draw.io drawio-desktop 画图软件

Go: gops如何与Go运行时交互?

陈思敏捷

gops Go 语言

甲方日常 8

句子

工作 随笔杂谈 日常

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