“ Ragnarok Online(我们刚刚在韩国地区推出的MMORPG手机游戏)需要不断更新游戏统计信息和玩家状态。如此庞大的写操作负担可以轻松地达到每秒25,000个查询,这超出了传统MySQL的限制。感谢借助Amazon Aurora数据库,我们可以在不更改大量代码的情况下完成此任务,甚至可以将延迟保持在35毫秒以内,以确保我们能够继续扩展用户群。由于Amazon Aurora提供的高性能和可用性,Ragnarok Online达到了 推出时,在韩国免费和收入最高的手机游戏中排名靠前。”
——沈晟 心动网络 CTO
关于心动网络
心动网络有限公司(以下简称“心动网络”)是国内极具知名度的游戏公司,中国互联网百强企业,旗下业务涉及游戏研发运营、动画制作、偶像娱乐等多个产业。旗下拥有多款自主研发及独家代理,且在业内领先的互联网游戏产品,如《盛世三国》、《神仙道》、《开天辟地》、《将神》、《仙侠道》、《横扫千军》、《口水三国》、《天天打波利》、《仙境传说RO:守护永恒的爱》等众多深受玩家追捧喜爱的游戏作品。
面临的挑战
网络的延迟和不稳定
对于游戏玩家来说,网络的稳定性很大程度上影响了用户的体验。因此,心动网络准备在海外发行一款MMORPG手机游戏产品RO Online(仙境传说RO)时,首先考虑到降低播放器的延迟和网络的稳定性,希望能够保证游戏在上线初期面对大量并发的数据交互的情况下,依然可以保持服务运行的稳定。但在海外自建服务器成本巨大,灵活性不足。因此,心动想要通过AWS分布在全球的优秀骨干网络以及基础设施实现其在海外顺利发行其游戏产品的目标。
缺乏云上部署经验
在此前游戏的内测中,心动网络的地端机房已经开始满载运作。由于公司业务扩张,也为了给客户带来更友好的游戏体验,心动网络准备部署相同的服务到AWS Singapore Region 。他们希望从IDC服务器系统迁移3个应用程序的同时不改变游戏架构,可以不断更新游戏统计资料和玩家状态,并对收集的大量客户行为数据以经济高效的方式进行有效处理。
但由于缺乏云上部署的经验,无法制定出满足其需求的架构设计和解决方案。考虑到整体成本效益,也基于伊克罗德曾经与心动网络在部署Seoul服务时的良好合作,心动网络决定此次项目依然与伊克罗德携手完成(该项目包括3个应用程序迁移:RO游戏系统、业务逻辑系统和大数据系统)。
成本巨大,影响创收
心动网络希望在系统部署后可以应对并发在线人数数百万级别带来的流量和数据库压力的同时,也可以控制成本,减少前期的固定投资和后期资源的闲置浪费。另外,平台的运维也需要对相关的技术人员进行培训,学习成本和人力成本都会增加,然而企业更希望专注于核心业务而非运维上。
合作成效
降低播放延迟,提高网络稳定性
伊克罗德利用AWS优秀的骨干网络以及基础设施,让客户把不同的业务拆分开来,即使分布在不同的可用区也可以保证业务的时效性和连续性,实现高可用性能,确保服务运行的稳定。同时,利用Amazon Aurora来支持大量的写入操作,甚至可以将延迟保持在35毫秒以内,以确保企业可以继续扩展用户群。
另外,伊克罗德选择ElastiCache+Aurora来保证数据库的稳定运行,Redis帮助客户数据做临时缓存,通过Aurora强大的并发性能以及多只读副本,保证游戏在上线初期面对大量并发的数据交互的情况下,依然可以保持性能强劲,受到游戏用户的高度认可。Ragnarok Online刚推出时,在韩国免费和收入最高的手机游戏中排名靠前。
快速实现数据库迁移
伊克罗德有专门的数据库迁移团队,针对数据库问题,因客户针对存取数据库的效能有较高的要求,而 Amazon Aurora 效能优于传统的 MySQL 至少 5 倍,所以我们建议客户使用 Amazon Aurora 服务。客户进行压测后,发现Aurora 更能符合他们的期待,最终客户决定从传统 MySQL 数据库迁移到 Aurora。
伊克罗德协助客户在迁移过程中(评估、规划、设计、搬迁及优化)不断与客户进行探讨,直至可以满足安全和成本优化的最佳实践。同时,伊克罗德的技术团队以服务过多家游戏公司的经验,为心动网络提供全天候在线解答和现场支援。伊克罗德推荐利用Aurora代替之前原有的代价过大的MySQL集群,使得客户在不更改大量代码的情况下不断收集、更新并处理游戏数据,伊克罗德在四个月内协助客户完成迁移项目,并达到预期效果。
实现成本最优化
经过伊克罗德的建议,客户使用AWS具有高可用性的服务配置,大排放情况下可以自动缩放平台。自动化运维降低复杂度,减少人力成本,使企业能够将精力集中于主营业务,创造营收。另外心动网络可按使用量付费,并且以经济高效的方式对多种客户行为数据进行处理,使其总体成本降低了约40%。
提高安全性,保证平稳运行
伊克罗德建议客户把生产环境和开发环境建置在不同的子网下,通过 Network ACL 和Security Groups 限制 inbound 流量,设置规则,同时可以使用 IAM 进行权限管理。另外,为所有服务启用监控,实时监控游戏运行状况,快速解决生产时遇到的运维问题,保证服务的平稳运行。