云. 游世界 AWS 游戏行业解决方案 赵霏,AWS 解决方案架构师 Zhao Fei, Solutions Architect, Amazon Web Services
从 6 位游戏开发者开始全球卖座第 1 的手游 游戏每日活跃数量 (DAU) 超过 1 亿日收入超过 600 万美元 每天 10TB 游戏日志存入 AWS S3
日进 600 万美元背后的秘密 易用性强 性能强大且稳定可靠, 同时还需要这个云服务有高扩展性, 能适应游戏用户的高速增长 在这种情况下, 我们选择了亚马逊的 AWS - Sami Yliharju Services Lead of SuperCell
游戏开发者需要什么样平台 无大量前期投资按需付费低成本 高可靠性 全球扩展 运维容易高扩展性创新专注于游戏
AWS 全球基础设施
Glu Mobile 全球部署 + 快速部署 US-West (Oregon) US-EAST(Virginia) EU(Frankfurt) China (Beijing) ASIA PAC (Tokyo) 游戏应用 ASIA PAC (Singapore) SOUTH America (Sao Paulo) ASIA PAC (Sydney)
无前期投资, 按照用量付费 实际需求 AWS 实际需求 客户不满 资源浪费 预计需求 僵化的传统方式 AWS 弹性方式
Ubisoft 育碧软件 - 构建游戏而非服务器 前期投资低, 加速产品面市 刺客信条 孤岛惊魂和舞力全开的开发商 Ubisoft, 通过使用 AWS 的敏捷性 在 18 月内推出了 10 款游戏, 最高峰期在 8 周内推出 5 款 即使是像 Ubisoft 这么大型的游戏公司, 也不想将大量人力和财力, 花在前期投资上
缩短产品进入市场时间 : 快速组建 选择区域 (Region) 使用一个高可用区 (AZ) 足够研发使用 无需冗余设计 EC2 实例 Linux 或 Windows 游戏服务器代码 弹性负载均衡 (ELB) 数据库 RDS 或使用 EC2 搭建 ELB Availability Zone A Region Region
AWS 管理控制台
使用 AWS API 自动化运维 AWS Console (GUI) Software Development Kits (SDK).NET, Java, PHP, Ruby, Node.js API Eclipse Visual Studio CLI Powershell Command Line Interface (CLI) Windows Powershell and Python on Linux REST API 可编程实现 Android ios Java nodejs.net PHP Python Ruby 广泛的开发工具集
Tap4Fun 2011: Tap4Fun 在成都成立 Island Empire Galaxy Empire King s Empire Spartan Wars Global Threat Galaxy Legend
2013
2014 使用 AWS API 自动化运维 带来改变可视化所有平台资源, 监控使用率, 稳定性和可用性 -- AWS API 收集所有云资源信息
简化流程, 提高自动化 带来改变现在, 我们启动一个实例, 更加自动化, 节省更多的时间, 更安全
快速增长 挑战 提高可用性 / 减少宕机 支撑快速增长 减少发展瓶颈 高可靠性 高扩展性
CMUNE - 超级突击队 (UberStrike) 多人在线射击游戏 (MMOFPS) 3D 页游 / 手游 超过一百万的世界玩家同台竞技 完全基于 AWS 云
提高可用性 - 减少延迟, 断线和宕机 增加另外一个高可用区 (AZ) 高可用性设计 负载均衡 辅助数据库 RDS Multi-AZ 设计 自行构建 Availability Zone A ELB Availability Zone B S3 Region
DevSisters - 自动伸缩应对访问高峰 24 小时之内, 随着服务量的变化, EC2 的 2 台实例扩展至 60 台并收缩回 2 台
自动扩展 (Auto Scaling) 高扩展性随需应变 自动扩展组 (Auto Scaling Group) 自动伸缩应对访问高峰 随需设计容量 根据用户量反馈 自动故障恢复 EC2 ELB EC2 Availability Zone A Region Availability Zone B S3
性能提升 高增长带来的潜在瓶颈 挑战 关系型数据库在高 I/O 压力下会破坏游戏的整体表现 EC2 ELB EC2 ElastiCache 自行构建 Memcached/Redis Availability Zone A Availability Zone B S3 Region
全球快速内容分发 以快速且低成本的方式, 更新版本, 推送大量数据及可下载内容至客户端 EC2 ELB EC2 CloudFront CDN Availability Zone A Region Availability Zone B S3
DevSisters AWS 整体架构
令人头疼的 写 操作 挑战 游戏应用的 写 操作相对密集 缓存的效用有限 Key/Value 数据库成为整个系统瓶颈 EC2 ELB EC2 CloudFront CDN S3 Availability Availability Zone Zone A A Region Availability Availability Zone B Zone B Region
分片是好的解决方式吗
DynamoDB: 扩展 NoSQL 数据库 由 AWS 完全管理, 以服务形式提供给用户的高可用 NoSQL 数据库 存储自动扩展 : 数据存储无上限 ELB CloudFront CDN 快速 : 采用 SSD 技术 - average reads < 5ms EC2 EC2 - average write < 10ms 预设吞吐量 : 可配置性能, 为无限扩展设计 容错机制 : 在若干可用区中复制数据 Availability Zone A Region Availability Zone B S3
DynamoDB: 海量中保持低延迟 <10ms Docs, SDK's: http://aws.amazon.com/dynamodb/developer-resources/ Auto Scaling Your DynamoDB: https://github.com/sebdah/dynamicdynamodb
Halfbrick <Fruit Ninja 水果忍者 > 两周之内月活跃用户从 100 万升至 800 万 普通数据库无法支持如此快速的系统压力增长 Halfbrick Studios 使用 AWS 的 DynamoDB 和多个高可用区来支撑 < 水果忍者 > 数以百万计的用户
当用户达到百万量级 当用户达到百万量级, 前面所提起的一些服务都会派上用场 Multi-AZ 多可用区 Elastic Load Balancing 弹性负载均衡 Auto Scaling 自动扩展 Caching off DB 数据库的缓存服务 S3/CloudFront 高效内容存储和分发 Service-oriented architecture (SOA) 面向服务的架构 同时 AWS 有更多服务支持海量级应用 NoSQL DynamoDB, Hadoop EMR, Data Warehouse Redshift
当用户超过百万 User Amazon Route 53 Amazon Cloudfront Elastic Load Balancing Amazon S3 App Instance App Instance App Instance App Instance App Instance App Instance RDS DB Instance Active (Multi-AZ) RDS DB Instance Read Replica ElastiCache RDS DB Instance Standby (Multi-AZ) RDS DB Instance Read Replica ElastiCache DynamoDB Availability Zone Availability Zone
游戏分析
AWS Endpoint 实时数据收集 发送 消费 AWS SDK Put* APIs Availability Zone Availability Zone Availability Zone AWS SDK Get* APIs Kinesis Producer Library Shard 1 Kinesis Client Library + Connector Library AWS Mobile SDK Shard 2 Shard N AWS Lambda LOG4J Amazon Elastic MapReduce Flume Apache Storm Fluentd Apache Spark
AWS LAMBDA 无服务器架构的计算 无需服务器就可以运行代码. 按照代码运行的计算时间来计费. 通过事件触发或直接调用 : 上传文件至 Amazon S3 bucket 更新 Amazon DynamoDB 表中的记录 调用 Amazon API Gateway 终端节点 移动应用后台调用 以及许多 更简单的完成 : 实时的数据流处理 构建可扩展的后端服务 服务间的协同工作 AWS GAMING
在云中托管的 Hadoop 集群 Amazon EMR 可扩展 Hadoop 集群即服务 Hadoop Hive Spark Presto Hbase 等易于使用, 完全托管按需 预留和竞价 HDFS Amazon EBS 和 S3 文件系统 Amazon EMR 端到端安全性
PB 级数据仓库服务 Redshift Redshift 查询比 Hive 快 20 倍 Redshift 性能比任何数据仓库都要好 使用 Redshift, 我们看到了 2 倍以上的查询性能提升 Channel 我们通常用它来处理几十亿级别的数据集 以前几个小时的查询现在只需要几秒 Leader Node 我有说过它超乎寻常的快吗? 我们已经立刻准备用它来替换 Hadoop 我们团队使用完 Redshift 的感受是 : 太 XXX 棒了. 无索引的复杂查询只需要 10 秒
实时数据流处理 & 海量数据存储大数据分析 归档 Lambda 聚合数据预处理数据 Glacier 实时数据流 S3 Hadoop 数据挖掘 Amazon Kinesis Workers 实时趋势分析表仪表盘 Redshift 商务智能 BI 游戏玩家的数量虚拟货币的使用量热门道具
电子竞技营收
Twitch 游戏行业的社交化视频直播平台的领导者 帮助构建强大的用户社 通过玩家进行传播 这款游戏是否值得去玩? 怎么能够玩的更好? 100M unique viewers / month 106 minutes / person / day 2M peak concurrent viewers
交互流程 2 1 3 Broadcaster Game Audience
Twitch 的集成 Twitch ChatPlay 允许玩家通过聊天的方式影响游戏 Twitch JoinIn 主播可以邀请观众直接参与游戏
一款完全免费的 AAA 级游戏引擎并且深度集成 AWS and Twitch 同时开放全部源码
Amazon Lumberyard 引擎 基于成熟的 CryEngine 构建引擎 基于 Double Helix Games 的框架系统 集成 AWS 的云服务 Full integration with 与 Twitch 深度集成 使用完全免费!
Amazon Lumberyard 跨平台部署 PC PlayStation 4, Xbox One Android, ios Virtual Reality
Complex outdoor environments with lighting
High Definition Rendering in real-time for
Meet Rin Rendered real-time in Lumberyard
Amazon Lumberyard 编辑器 IDE that allows live Visual Editing 提供 Gems 支持模块化开发 提供 2D & UI 设计器 Entity & Component framework Visual scripting via Flow Graph
Cloud Canvas 集成在 Lumberyard 中, 可直接访问 AWS 资源的工具 Storage, Database, Compute, Identity, Queuing, Notification 已集成在 FlowGraph 中可以轻松的使用 Virtual Scripting Lumberyard 会帮助处理所有的与 AWS 的后端交互行为
Cloud Canvas Details AWS 基础元素 for Cloud Canvas DynamoDB, S3, SNS, Cognito, SQS, Lambda Script 或 FlowGraph 进行调用 整合 AWS C++ SDK Amazon Lambda Amazon DynamoDB Amazon SNS Amazon Cognito Amazon SQS Amazon S3
开启你的 云游 之旅!
Thank You!