那么如何设计架构、如何评价架构设计、以什么为标准来决定设计,就是一个问题,接下来说说我对评价标准的看法。
服务器组架构(Server Cluster Architecture)的主要评价标准包括:
稳定提供游戏服务,是服务器系统确保用户体验的最基本要求。稳定性主要与应用服务器的软件质量相关。稳定性处于第一位的原因是稳定性是用户体验的基石,稳定性不过关的话,其他一切都无从谈起。
服务器组的运行时效率主要体现在服务器系统的承载能力上。对于同类型的游戏来说,同样一组服务器硬件运行A游戏可以承载5000人,但是运行B游戏只能运行2000人,这就是效率差异。
可缩放性在一定程度上可以理解为:增加服务器硬件是否可以相应的提高系统的负载能力或者是否能提高用户体验。承载能力和用户体验都是系统表现的一部分。但是不管对于什么样的系统,系统硬件数量/能力和系统实际运行表现基本上都不可能是线型关系。就是说Scalability总是只能在一定范围内做评价,例如:某系统可以在0-100k在线玩家的情况下提供流畅的游戏。
从游戏开发及运营的角度来考虑,主要评价标准还要包括:
服务器的架构设计不止要考虑系统运行时的效率,开发时的工作效率也要考虑。例如:不同的系统服务(Service)或应用服务器(Application Server)之间是否会过度耦合(Over Coupling)?如果这种情况出现,也常常会导致开发人员工作的耦合,在日常的开发中,工作效率就难以保证。想象一下要Debug某个模块时候需要手动的在不同的远程服务器上更新开启3、5个不同的服务器程序。这种小任务重复做一年、二年累积起来就是很大的资源浪费,包括人力和硬件,甚至团队士气。
尽量使用最便宜、最少量的硬件、最小的带宽、最少的维护人员,尽量达到最好的运行时表现;这直接影响游戏的运营收入、利润率,间接影响游戏的成败、公司的成败;
简单性要体现在服务器组(Server Cluster)的部署、和维护方面。如果一个游戏服务器组有20台硬件,那么备份数据、更新、重启这种简单的事情都会不再简单。一般游戏服务商每周都只做两小时停机维护,20组服务器的话,一次需要多少人做这个维护工作?40组呢?
实 际上考虑到网络游戏服务的持续性,可扩展性也很重要,再丰富的游戏内容也无法持续吸引玩家几年,一般的做法就是周期性的持续提供游戏更新。在网游服务器架 构设计上考虑内容上的可扩充性,也是有必要的,通过技术细节的改进总可以得到或多或少的改进,但是在架构设计阶段就考虑到可扩展性才是聪明的做法。