精通手游运维的架构体系

  关于手游

  概要

  2015年第一季度,中国网络游戏市场规模达到320.8亿,环比增长8.0%,同比增长24.7%。其中移动游戏占比31.0%。相对于传统的端游,手游的兴起给运维工程师的技术能力和运维理念都带来了巨大的挑战。这是因为手游在技术架构、运维体系方面存在众多特殊的要求。本文首先分析手游运维的特点,然后再从手游的架构、容量规划两大方面给出最佳实践的推荐。

  在手游运维领域,我们经常会听到一些专用名词,在这里我们首先对这些专用名词进行简单说明以期读者能对手游运维有个概念的认识:

  手游开发商:也叫CP,即Content Provider,内容提供商的英文首字母缩写。顾名思义,就是指制作手游产品的研发公司或者团队。例如研发《刀塔传奇》的莉莉丝团队等。

  手游发行商(运营商):即代理手游CP开发出来的手游产品,在部分渠道或者全渠道发行CP手游产品的公司。一般由手游发行商进行手游运维工作的实施。例如盛大游戏、龙图游戏等。

  手游渠道:拥有手机端手游和APP用户,能够进行手游和APP流量分发的公司,即可成为渠道。所有可以获取手游用户的平台都可以称为渠道。例如苹果应用商店、Google应用商店、腾讯应用宝、百度手机助手等。

  下载数:手游客户端被下载的次数。

  激活数:用户下载安装游戏后,打开游戏,但未进行注册前,记录的终端数。

  注册数:用户激活后,进行了自动或者手动注册有ID信息或者账户信息的账户数。

  日活跃登陆数(每日登陆用户数DAU):用户输入完身份信息后,进入到游戏内的账户数。同一日多次登陆的同一个玩家计数为1。

  日最高在线数:每日每个时刻,同时进行手游操作的玩家数量的最高值。

  上述几个指标中,下载数、激活数、注册数是预估手游公测首日可能带来的用户导入量的最重要评估依据。

  日活跃登陆数,特别是公测首日的活跃登陆数,是评估手游发行效果的重要数据。

  日最高在线数的承载能力是进行容量规划时需要满足的服务能力。

  手游和端游运维的异同点

  在推荐手游架构之前,我们需要深入了解手游运维和端游运维的异同点,以此分析为基础,再推导出合理的手游架构。

  手游运维和端游运维的共同点和区别主要体现在下述四个方面:

  操作系统层面:手游运维和端游运维,都需要对底层操作系统有较深的理解。区别是手游运维中使用Linux等开源操作系统的较普遍;端游运维根据不同的开发商可能Microsoft Windows和Linux都占有一定的比例。

  联网方式:在客户端和服务器端通信方式上,端游要求客户端强联网,一般使用在TCP协议之上实现私有协议。这样的好处是可以实现长连接和提高交互性;手游一般采用弱联网方式,使用HTTP协议进行通讯。

  游戏周期:手游生命周期较短,玩家涌入的时间比较集中。因此在架构设计时,需要充分考虑横向扩展的需求。

  游戏是否分区:手游开放公测时,一般不使用分区的方式,即所有玩家直接在一个大区里面进行游戏;而端游往往采用分区制,各个分区的玩家之间无数据交互。手游不分区的运营方式,使得服务器压力集中,对于运维要求更高。例如,如何解决数据库的集中压力问题及游戏服务器的压力分担问题等,都是运维人员需要考虑的。

  最佳实践:推荐的手游架构

  目前的大部分手游在设计客户端和服务器端通信模型时,采用了HTTP协议。

  使用HTTP协议的优点

  使用HTTP协议的通信方式,有以下的优点:

  HTTP协议是成熟的应用层协议,有丰富的客户端和服务器库函数加以复用,相对于完全自主开发基于TCP的通信协议,开发效率更高,可能遇到的bug更少。

  使用HTTP协议更容易利用到现有成熟的周边基础设施,例如通用的负载均衡软件或者硬件等。

  易于实现压缩。HTTP协议本身支持应用程序以外的由Web服务器提供的压缩功能,减少客户端和服务器端的数据传输量。

  利用HTTP的Session和Cookie机制,易于实现会话保持机制。

  易于实现加密。在HTTP层之上,直接使用SSL协议(HTTPS)即可实现关键信息的加密传输。

  推荐的网络架构

  基于上述分析,并结合盛大游戏在运维大型手游过程中的实践经验,我们推荐实施这样的网络手游架构: