在Camel Games,没有专门的DBA。游戏核心业务运行在200多组Amazon Aurora集群上,平均延时稳定保持在10毫秒左右,新业务上线可在几分钟内轻松完成。开发运维团队可以从大量基础的工作中解放出来,充分与业务结合,专注创新。

 

张华 北京壳木软件有限责任公司服务器主管

北京壳木软件有限责任公司(以下简称“Camel Games”)成立于2009年8月,是一家具有世界一流开发、运营水准的手机网游公司。2011年获得了Google Play官方颁发的Top Developer(顶尖开发者), 是中国大陆地区第一家获此殊荣的手机游戏开发团队。2013年,Camel Games被神州泰岳收购,成为创业板上市公司神州泰岳的全资子公司。
Camel Games于2011年底推出的《小小帝国》,是国内游戏团队早期出海的代表作品,也是在海外达到千万月流水的手游产品之一。Camel Games于2016年推出《War and Order》,截至目前,该款游戏全球累积总流水已超过20亿元。

在业界,Camel Games一直强调做“精品游戏”,主要开发的是“重度长生命周期”游戏。目前,Camel Games运营时间最长的游戏已服务全球玩家近八年。从一开始,Camel Games就借助Amazon Elastic Compute Cloud (Amazon EC2)、Amazon Elastic Block Store (Amazon EBS)Amazon CloudFrontAmazon Simple Storage Service (Amazon S3) 等成熟的云服务来扩充服务器容量,为用户提供稳定、高质量的游戏体验。无论玩家位于美国、欧洲、亚洲、南美洲还是大洋洲,都能通过最近的节点高效传输数据,低延迟地获得游戏更新和内容。

从最初在Amazon EC2上搭建MySQL,到2016年新款游戏上线时直接使用Amazon Aurora数据库,AWS云伴随Camel Games的发展一路走来。未来,Camel Games计划将所有游戏业务都迁移至Aurora。

目前,仅面向《War and Order》这款核心游戏,Camel Games就在AWS上部署200组Aurora集群,其中170组供游戏业务使用(采用主从方式),另外70多台实例负责处理日志数据,总数据量约200TB。另外一款颇受玩家追捧的游戏《Age of Z》则通过33组Aurora集群支撑,同样采用主从方式部署。

图1是Camel Games的系统架构图,所使用的AWS服务包括Amazon EC2、Aurora、Amazon EBS、Amazon S3、Elastic Load BalancingAmazon CloudWatch、CloudFront、Amazon Route 53等。

camel game_arch-diag

图1 Camel Games基于AWS的系统架构图

作为一家170人规模的游戏公司,Camel Games仅用2-3名非专职运维人员就管理了500-600台Amazon EC2服务器以及200多组Aurora数据库。“运维管理实践中,我们更多考虑的是如何更好地服务核心业务、辅助决策。”Camel Games服务器主管张华表示,“Camel Games甚至没有专门的DBA,数据库一旦完成正确配置,团队甚至多半年时间都无需关注它”。

由于游戏服务器采用主备形式,当一个实例发生意外故障时,系统可自动做主备切换,最小化停机时间。当正确设置时,应用层无需重启,平台可在30秒左右自动接管服务,无缝实现故障转移。同时,Aurora支持自动备份和时间点恢复,可在极端事件发生时确保数据安全,将业务影响和损失降至最低。

性能表现是游戏玩家最重视的关键体验之一,实际应用中与游戏模型、代码优化程度等高度关联。Aurora提供多种配置选项,Camel Games可根据自身业务实际来高效匹配资源。当游戏版本更新、推广活动等峰值来临时,后台仅需通过简单的“升级+配置”即可轻松搞定,整个过程高度自动化。通过 Aurora,新业务上线只需点击几次鼠标,整个过程不过几分钟。

目前Camel Games运行在AWS上的单个Aurora集群平均业务并发量达几千次/秒,玩家数据读/写,日志数据以写为主。峰值可达两万多次读/秒,写则有三、四千次/秒。据张华介绍,经历最长的一次峰值持续了几个小时,而Aurora数据库延时稳定保持在10毫秒左右,表现令人满意。其中,数据库中最大的表是用户表,达千万量级,读写比例约为5:1。

多年的AWS使用经历,让Camel Games团队积累了丰富的云上业务经验。“运维开发和管理更多是从业务层的角度出发,比如更关注代码的优化程度,如何最大程度地挖掘实例性能。”张华坦言,“通常在业务上新时,例如一个新版本的内容需要配置多大的数据库等类似问题,团队内部有经验公式,只需按照预先的准备直接开新实例,运维管理的角度并不需要特别关注这些事情。包括CloudWatch等运维监控工具,实际上都很少看,系统运行基本上都很稳定。

张华介绍,实际应用中,团队更多的是使用“Performance Insights”功能来监控Aurora集群上的“Top SQL”。根据“TOP SQL”,运维团队可以轻松定位对系统消耗资源较多、明显异常的SQL语句。以此为初始依据,再根据经验做判断和优化,后续效果反馈则可通过CloudWatch第一时间以图形化的方式直观呈现。实际应用中,Camel Games团队认为Aurora的这项特性很实用,尤其对非DBA专业出身的用户非常友好,有助于迅速发现和解决问题。

通过这种方法,特别在新游戏上线时,运维团队可以开展相应监控和优化工作,在代码本身经过迭代的情况下,团队就能对平台的业务支撑能力做到“心中有数”。

Aurora数据库的存储空间可以根据数据量的增加而自动增长的特性令人印象深刻。张华说,有了这个功能,就不需要操心数据库的存储扩容问题。自动增加存储空间时不需要停机,也不会影响性能。

目前,Camel Games的数据库仍集中在一个区域,如何面向全球不同地区用户提供应用加速,将不同区域的访问延时控制在可控范围内并保证数据同步是Camel Games后续考虑的重点方向。面向业务,未来则考虑进一步将Amazon S3和Amazon Athena数据库查询相结合,针对日志数据做大数据分析,更好地辅助运营决策。

对于在AWS上的应用收益,张华总结了几点独特的感受:

一是平台功能丰富,系统稳定。包括大量使用文档和教学内容,非常方便技术人员了解和学习。“AWS的策略更多考虑的是将底层的事情用平台包装,做成一个非常容易使用的产品, Aurora就是其中的代表。伴随Camel Games自身业务的成长和使用需求,AWS总是能在最需要的时候提供可行方案。”

二是使用越深入,平台上积累的竞争优势越多。张华认为,某种程度上,游戏公司的业务特点决定了它容易对云平台形成‘路径依赖’。Aurora是非常优秀的数据库,包含很多使用过程中可挖掘的特色功能。使用越多,感受越深。相比较传统数据库,Aurora大大减少了数据库运维的工作量,让技术人员可以专注于应用开发和业务创新。

三是成本可控,经济效益佳。与花费在游戏运营和推广上的支出相比,Camel Games在云平台上的投入占整体营收的比例较小。实际上,业务本身的稳定性和适用性是决定性因素,Camel Games团队更多会从TCO的角度考虑问题。所谓“开源节流”,开源更重要。从平台本身着手,做成本控制和优化,未来还有很大的进步空间。而在扩展市场时,稳定性显然比单纯关注成本更重要。

Camel Games生于云,长于云,一步一个脚印,与AWS相伴一路走来。在服务全球游戏玩家,培养大量“重度用户”的过程中,Camel Games也在AWS云上积累了丰富的实践经验。共同成长,更多欢笑。

要详细了解 AWS 如何帮助游戏行业的客户,请访问游戏技术详细信息页面。

了解更多关于专为云打造的关系数据库Amazon Aurora, 请访问Aurora 详细信息页面。