在线游戏(主要指手游和页游)具有鲜明的行业特点。首先,游戏开发门槛较低,导致游戏数量急剧增长,玩家忠诚度迅速降低,稳定可靠的游戏服务能力成为游戏开发与运营商的立身之本。其次,大多数游戏厂商独立运维的实力较小,随着业务的井喷式发展,对动态快速扩展硬件资源的需求与日俱增。第三,对于相对热门的游戏而言,一般都拥有海量玩家,亟需高并发、高负载的应对措施与方案。第四,游戏开发技术发展迅速,硬件日新月异,游戏画质与可玩性明显改善,低响应延迟是游戏体验的基本需求。最后,同业竞争激烈,安全成为游戏,尤其是热门游戏的命门。
在这种背景下,在线游戏行业面临三个主要挑战:1)需要IT系统提供稳定、安全、可靠的游戏服务能力,保证业务的高可用性;2)需要灵活、高可扩展性的游戏架构设计,适应业务发展的突发峰值访问;3)海量用户高并发场景下的低延迟响应要求,以提供流畅的游戏体验。
应对好这三个挑战,将为游戏厂商的成功提供坚实的基础与支撑。本文将从手游的角度讨论合理的在线游戏后端平台架构,并将引入手游行业的知名游戏大掌门应用云计算的架构,帮助优化已有的系统部署。
手游传统架构与云计算架构对比
传统手游架构
在传统手游构设计中,有几个可以改进的地方。游戏运行服务中,应用部署在固定的服务器上,当业务迅速变化时,无法及时动态调整资源来满足;单台云服务器上部署了游戏应用的多个模块,不符合松耦合的部署原则,且容易造成IO争抢,影响读写性能;在玩家游戏的高峰时段,游戏更新服务容易因数据分发延迟,形成瓶颈,影响用户体验;游戏更新服务中存在单点配置,一旦其中的一台服务器宕机,可能导致玩家无法更新而不能继续游戏;对架构全局缺少专门的监控与报警机制,存在安全隐患。
大掌门游戏架构图
与传统系统部署架构相比,大掌门应用云计算的架构有以下特点:
1)实现应用的松耦合,将Web/应用服务器与缓存、数据库服务等模块解耦,并物理隔离部署,这样能够实现功能模块的水平扩展,同时也避免了云服务器上IO争抢带来的性能降低问题。如上图所示,WebServer、CacheServer及DBServer均各自分层,WebServer组成一个集群,通过负载均衡SLB对外提供服务。当业务量迅速变化时,可以通过API自动动态向上或向下扩展集群中的云服务器数目。DBServer搭建主备集群,并定期冷备数据到本地或OSS存储。用户也可不必自己搭建缓存和数据库服务,而直接采用阿里云OCS和RDS,这样可以简化系统架构、降低运维成本,并有更高的可靠性。
2)在关键路径上,部署主备集群,通过负载均衡服务SLB分发并对外提供服务,避免单点故障带来的游戏不可用。游戏更新和运行服务均体现了这一点。
3)游戏更新服务可基于阿里云CDN提供静态文件分发的低延迟,若游戏中有大量临时文件,包括地图、静态数据分发等,也可以考虑通过CDN来保证游戏体验。
4)在应用部署的云服务器上,免费开通云盾及云监控,保障游戏不受恶意攻击及病毒、木马等入侵,为游戏稳定运行提供保障。
综上所述,面对游戏行业特点与挑战,基于云服务的架构部署方式完全可以解决传统架构存在的问题与隐患。阿里云的云服务器、RDS等产品的高可扩展性能力帮助用户实现动态资源配置,以应对业务的剧烈变化;负载均衡帮助用户应对高峰流量、单点故障,提升业务稳定性;云盾、云监控帮助用户保护网络与数据安全,抵御恶性竞争的攻击;多线BGP网络、CDN帮助用户在海量、高并发场景下维持业务的快速响应。
基于以上的优势,做游戏就用云计算开始成为行业标配,比如大掌门、疯狂猜图、小浣熊、游易网络、跃兔、边锋等都是云计算的受益者,他们也将在2013阿里云开发者大会上详细展示如何完成"云中游戏"的。