作为世界上用户最多、技术最成熟的公有云服务,亚马逊的AWS显然是全世界开发者所优先考虑的平台,随着这项服务即将在中国落地,亚马逊也开始在中国市场开始它们在商业化动作,这次,AWS首先盯上了国内近500亿规模的手游市场——AWS中国从年初开始,就频繁的举办和游戏相关的主题活动,向中国的游戏公司“布道”,也不断对外进行AWS与成功游戏产品合作的案例宣传。例如PingWest之前报道过的FunPlus,就是一个利用AWS服务和6位工程师,实现了全球1700多台虚拟服务器部署和运维的游戏公司;我们还报道过世界上最赚钱的游戏公司——SuperCell,是如何基于AWS来处理每天TB级数据处理请求的。
而在几天前亚马逊AWS游戏行业研讨会上,亚马逊将它们的这些案例做了一次系统的梳理,其跨国企业及市场营销拓展部主管林家伟分享了AWS在一款游戏的初创期、成长期、成熟期,衰退期这四个阶段,分别能为游戏公司解决什么样的问题。
初创期
林家伟首先举了个例子,Supercell现在已经成为2013年的手游明星,但他们的第一款游戏Gunshine却并不成功。与Supercell一样,在游戏还在初创期时,游戏公司就不可避免需要大量的试错、而且这些尝试本身必须需要是迅速和低成本的,这样游戏公司才能腾出更多的人力物力去进行游戏创新。
这就是为什么越来越多的开发者开始选择云计算服务:游戏客户不需购买额外的硬件资源,而能直接通过AWS快速部署游戏网络——比如游戏开发者可以选择位于离终端用户最近的区域部署服务器,并根据需求,选择服务器的数量,而不用做其他的冗余的设计。著名的跨国游戏公司育碧,就曾利用AWS在8周内连续推出10款游戏。
在AWS上部署好服务器之后,你可以选择自己熟悉的OS应用环境、可以是Linux或者是Windows,以及更多软件开发工具包写入代码,进行游戏部署。AWS能够自动化地对多台服务器进行流量入口分配,保证每台服务器的负载均衡。如果开发者有DNS服务的需求,可以使用Amazon Route 53服务。而在数据库上,AWS提供了两种选择——游戏开发者既可以使用亚马逊自有的数据库RDS(Amazon Relational Database Service),也能在EC2上自建数据库。所有这些的服务的部署只需要几分钟的时间。整个过程中,AWS都会自动处理有关容量预配置、负载均衡、Auto-scaling 和应用程序运行状况监控的部署细节。
在游戏测试期间,AWS也能根据需求快速的调整游戏策略,它的好处是——游戏的运营人员不需要半夜起来去做服务器所在地的调试设置,而是直接通过亚马逊的管理控制台界面(支持中文)做服务器的部署。对于现在许多已经出海的游戏公司而言,他们能直接通过AWS服务去管理欧洲等海外市场地区服务器,控制台还支持移动端设备进行设置。
增长期
游戏在增长期时所面对的最大问题,就是难以估量的用户爆发量,给服务器带来的压力,开发者一方面需要提升服务器的稳定性减少宕机,另一方面又得考虑成本问题——如果用户增长没有达到预期,那么限制的服务器就是在浪费成本。
林家伟在这里分享的例子是Rovio公司的《愤怒的小鸟》,这款风靡世界的游戏达到过20亿人次的下载,拥有2.5亿月活跃用户,它们的服务就是AWS平台。它们把不同游戏放在不同可用区域,一方面可以做负载平衡,另外,当一个区域受影响的时候,不至于游戏崩溃。而亚马逊数据库服务RDS,支持作多地区部署。在A可用区域数据,会在B可用区域做即时的数据库备份。一旦A部分出现问题,客户不需要修改程序,而是自动切换到B可用区域上来,作为主要的数据库,减少对终端影响。
应对DUA(日活跃用户数)的快速变化,亚马逊推出的Auto Scaling服务。举个例子,在一天中的不同时段,游戏服务器所面对的压力是不同的——比如许多游戏会在中午12点领体力、签到等活动,流量就会迅速攀升。Auto Scaling会根据流量变化,在1分钟的时间内自动增加服务器数量,而在夜晚用户流量回落时,也AWS会自动减少服务数量,帮客户节省资源。这项服务在不同时段区间所启动的服务器量可以让游戏公司根据自己的需要自行设定。它之前只能用API控制,现在也能直接在用户界面控制。
游戏用户在快速增长时,遇到的另一个问题可能是服务器性能上的瓶颈,比如每秒读写的速率问题。亚马逊提供了Provisioned IOPS,提供游戏开发商明确要求的读写性能。这个要求可以很高,甚至可以EBS块连接起来,达到3万量级的IOPS。但对于许多内容,只是被用户读,而不需要写入,游戏客户只需要用ElastiCache 服务,做读写分流,就能降低对数据库请求压力。
索尼旗下的顽皮狗游戏公司,曾对AWS服务做过架构调整。它们把之前关系型数据库中的数据,放在了Amazon S3中。S3能根据用户的存储数量的按需付费。它的好处是,由于并不是所有的玩家都会长期游戏,有些用户玩了一两个月后,很久才回去玩,这些沉淀数据对与延迟要求不高,存储在S3就能降低对数据库的压力,等需要用到数据时,再从S3调入。
在游戏用户快速成长的时候,需要快速做产品迭代,解决游戏中的问题和推出更多的内容迎合玩家需求。而亚马逊CDN,能帮助游戏用户快速把游戏升级包分发出去。
当游戏运行到海量数据时,游戏用户可能会需要亚马逊DynamoDB动态数据库服务。使用它的通过时忽视数据库软硬件服务所带类的所有问题。用户只需设定每秒必须请求的数量,亚马逊能直接帮你配置的到分配到的硬件数量,并能够根据需求调整。而这数据存储在固态硬盘上,能够快速读写调用。在安全性上,这些数据会跨过多个可用区域,自动复制备份。配合DynamoDB同步复制架构,任何单个节点出现的问题,都不会影响到数据库的稳定性。
成熟期
一个游戏进入成熟期后,游戏公司就需要根据一个相对稳定的状况来进行运营上的成本控制。亚马逊EC2提供了三种预留实例(Reserved Instance),能根据用户的使用频率,对应不同的价格,在保证要部署的区域有足够的服务器资源的情况下,节省主机的租赁成本。
(Funplus如何调配预留实例,降低游戏运营成本的)
结束期
这个时期一般游戏运营会用较少的服务器,保持游戏正常运行,同时保持低开销。客户可以用很少的heavy utiliztion RI保持服务器的正常使用;也可以完全撤出对所有的服务器使用。
注:题图来自网络
0 条评论
请「登录」后评论