云 游 世界 我的游戏可以实现全球同服吗? 张孝峰,AWS 解决方案架构师 Zhang Xiaofeng, Solutions Architect, Amazon Web Services
我的游戏 可以实现全球同服吗?
为什么希望全球同服
数据来源 newzoo global games report 2017 占全球 25% 北美 270 亿美金年增长率 4% 美国 251 亿美金 占全球 4% 拉美 44 亿美金年增长率 13.9% 占全球 24% 欧洲, 中东, 非洲 262 亿美金年增长率 8% 中国 275 亿美金 占全球 47% 亚太 512 亿美金年增长率 9.2%
Supercell 通过 AWS 提供世界级的手游 The world of gaming never sleeps... We owe every player a great experience, and AWS is our platform to make that happen. Sami Yliharju Services Lead, Supercell Supercell 需要一个优秀的基础设施, 让他的开发者开发部署最优秀的游戏 他们使用 Amazon Web Service 去支撑他们持续增长的平板电脑和手机游戏 可扩展的云平台允许百万级别的玩家增长, 包括扩展到最新的市场 高性能的分析服务让 Supercell 洞察游戏开发和服务 更快的服务器实例为新功能提供计算能力 Supercell 是一家芬兰游戏公司, 知名游戏有部落冲突 (Clash of Clans), 卡通农场 (Hay Day) 和海岛奇兵 (Boom Beach)
Stockholm AWS Govcloud Oregon Ohio N. California Montreal N. Virginia Ireland London Paris Frankfurt Ningxia Seoul Beijing Tokyo Mumbai Hong Kong Singapore São Paulo 全球 16 个区域, 在 2018 年, 将增长到 20 个 Sydney
Amazon CloudFront 21 个国家 / 地区和 48 个城市 77 个边缘站点 11 个区域性边缘缓存站点
跨越大西洋, 太平洋和印度洋, 以及地中海, 红海和南中国海的跨海光缆 100GbE 冗余网络遍布全球 避免海底光纤断缆事故造成的冲击 所有区域的私有冗余网络容量
仅有基础设施就能实现全球同服?
先去解决我们可以解决的问题
中心登陆服务器位于西欧 欧洲游戏服务 美西游戏服务 美东游戏服务 中国游戏服务 东亚游戏服务 东南亚游戏服务 南美游戏服务 建立更接近最终用户的游戏服务器 大洋洲游戏服务
API 节点位于西欧 欧洲游戏节点 美西游戏节点 美东游戏节点 中国游戏节点 东亚游戏节点 东南亚游戏节点 南美游戏节点 建立更接近最终用户的游戏服务器 大洋洲游戏节点
游戏流程 1 通过 HTTP API 登录 2 下载游戏资产 3 游戏服务器分配 EC2 EC2
游戏流程 1 通过 HTTP API 登陆 2 下载游戏资产 3 游戏服务器分配 4 战斗开始 5 游戏结束 EC2 EC2
游戏流程 1 通过 HTTP API 登陆 2 下载游戏资产 3 游戏服务器分配 4 战斗开始 5 游戏结束 6 通过 HTTP API 回写数据 EC2 EC2
数据库复制 = 坏主意 本地缓存 = 好主意
游戏节点 GAME GAME GAME GAME GAME GAME VPC Public Subnet VPC Public Subnet VPC Private Subnet 可用区 A VPC Private Subnet 可用区 B
API 节点 WEB Auto Scaling group WEB VPC Subnet VPC Subnet JOBS VPC Subnet Availability Zone C VPC Subnet Availability Zone A VPC Subnet Availability Zone B
资源弹性按需伸缩 EC2 EC2 EC2 中心服 游戏服
API 节点 EC2 Game API Pod
游戏节点 EC2 EC2 Game Server Pod
配对服务 Tokyo JOBS WEB WEB Auto Scaling group VPC Subnet VPC Subnet Frankfurt VPC Subnet Availability Zone A Availability Zone B Beijing
游戏服务器的注册与伸缩 HTTPS POST /api/servers/register 发送游戏服状态 Public IP 该游戏服用户数 支持的游戏模式 配对服务 管理服务器列表 回收服务器
AWS 让架构变得轻松
好像还有个问题没解决
中心登陆服务器位于西欧 欧洲游戏服务 美西游戏服务 美东游戏服务 中国游戏服务 东亚游戏服务 东南亚游戏服务 南美游戏服务 如果一位美国的玩家和中国玩家单挑怎么办? 大洋洲游戏服务
目标新加坡 - 美国日本 - 英国韩国 - 澳大利亚 延迟 169-186 ms 228-246 ms 144-177 ms 数据来源 verizon 噢, 不! 无论我怎么优化我的架构都没法突破光速
其实我们可以在客户端做点小魔法 时间戳 GAME 时间戳 玩家一 : 释放兵种本地播放 3 秒钟动画效果 玩家二 : 通过时间戳知道延迟 500ms 本地播放 2.5 秒钟动画效果
并不是所有游戏都适合全球同服 多人 MMO RPG 场景涉及的玩家众多 格斗游戏 竞速 运动类游戏 要求极高的实时响应延迟
AWS 数据分析
使用 DynamoDB, Amazon RDS, Amazon S3, Amazon Redshift 存储服务 DynamoDB Amazon RDS Amazon S3 Amazon Redshift 玩家数据 : 账户 属性 资产 保存的数据 玩家状态 玩家的币值 审计 日志文件 游戏回放 分析数据
游戏服务器日志 GAME GAME GAME Amazon CloudWatch Logs S3 Bucket VPC Public Subnet VPC Private Subnet 可用区 A
游戏服务器日志 GAME GAME GAME S3 Bucket VPC Public Subnet Amazon Kinesis VPC Private Subnet 可用区 A Amazon Redshift
Amazon EMR 一些最受欢迎的 Hadoop 框架的托管集群 Hadoop,Spark,Presto 等等 通过 EMRFS 与 AWS 集成, 适用于 S3, Kinesis,Redshift 和 DynamoDB 内置支持可调整大小的集群, 包括竞价实例
AMAZON ATHENA Amazon Athena 是一种交互式查询服务, 可以使用标准 SQL 直接从 Amazon S3 分 析数据
AWS 游戏服务
JOIN A GROWING LIST OF YOUR PEERS!
YES, WE NEEDED 2 SLIDES!
来开始你的 AWS 游戏之旅吧?
Thank You!