游戏停服维护更新一直是在线游戏的难题,这个过程会面临维护当天日新增减少等问题。目前,网易游戏在《一梦江湖》等几款大型游戏中实现了不停服维护,节省了用户时间、大幅度提高了运维效率。
如何做到不停服维护?不停服维护在运维上会带来哪些改变和升级?作为 SRE 该如何应对?1月20日,网易游戏高级运维经理Richard在2019网易游戏开发者峰会上,为大家分享了网易游戏半年来的积累的一些经验。
以下是分享实录:
我在这里要和大家分享的是游戏不停服维护运维实践。游戏维护是我工作以来一直无法回避的一个话题,游戏会面临维护当天日新增减少,维护当天日流水减少的问题。
以前游戏项目人员会从两方面出发:第一,挑选维护的时间;第二,缩短维护时间。项目人员需要在很不清醒的时间内(如凌晨四点)快速地完成操作,故障率就很容易升高。
业界有两种较为通用的不间断维护方案,一种是灰度更新,另一种是红蓝更新。但为什么一直以来我们没有用这两种方案,一是因为服务端的开发进度,二是因为在运维上存在资源利用率不足,成本有限,集群又过大的问题。
经过思考,维护时其实用户在线总数是不变的,也就是虽然需要两套环境,但计算资源总量不变。用一套的资源实现两个服务端。我们先尝试了在一个服务器上进程多开的方案。不过,实施起来还是有问题,很难将各种计费、周边分布端口、网络开关服都结合起来,与实际的运维体系也不匹配。
对比研究后,我们想通过docker虚拟化资源,宿主超卖的形式实现资源环境的隔离,宿主配置两套 dock