阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

游族网络运维总监:如何运维千台以上游戏云服务器

169次阅读
没有评论

共计 3392 个字符,预计需要花费 9 分钟才能阅读完成。

偶然在网上看到游族网络运维总监李志勇先生进行的一次分享,作为一个运维人,对其中的运维思想赞叹不已,今天特别发出来给大家做个参考,同时也希望和大家就李先生的这次分享进行探讨,欢迎各位在评论区留言。

本次分享主题为“如何运维千台以上游戏云服务器”。重点是云时代的运维,包括游戏上云部署整体方案、游戏服务器批量运维管理,并对企业选择 RDS 还是自建 MySQL 数据库给出了自己建议。

 游族网络运维总监:如何运维千台以上游戏云服务器 游戏产品架构进化史

 游族网络运维总监:如何运维千台以上游戏云服务器

图一:游戏产品架构进化史

经过近七年的高速发展,公司游戏服务器从 100 台增长到 10000+ 台,游族整体游戏架构也经过了三个阶段的演变:

  • 公司早期广泛使用的第一代架构,当时主流的产品都是以 DB+ 计算 + 前端这样的 3 个角色开发设计并部署,服务器以物理机为主,一个游戏区组需要 2~4 台服务器,不同的机器承担不同的角色。这种架构方案效率低,基本上不可能实现一天开 100 个区组(100 个区组大概需要 400 台服务器);
  • 随着业务量的增长和虚拟化技术广泛使用,游族整体游戏架构更新为第二代架构,全面采用虚拟化技术,把一台高配的物理机器虚拟化成多台符合游戏需求的虚拟机来使用,并实现了 ALL IN ONE 的系统架构。该架构方案运维效率高,适合规模开展游戏运营,但不具备业务高可用特性,一天开 100 个区组成为常态;
  • 为了迎合大区大服、全球同服,游族融合了前两代架构的特点,推出了第三代架构,按角色分拆并形成服务集群模式。集群架构结合了物理机与虚拟化的优势,实现弹性扩容,游戏逻辑以服务进程或集群配置项的形式提供服务。该架构方案运维效率更高,可实现秒级开服同时具备业务高可用特性。

基于第二代架构,游族基于 OpenStack 自己的私有云,最初目标是为了提高服务器利用率、降低成本和实现分钟级开服。运维团队以 OpenStack G 版为蓝本进行调优并修改;整个网络采用的是 VLAN 模式,保证最大限度与现有网络架构保持兼容;存储方面使用本地磁盘作为存储。

通过底层优化后,游族私有云基本上可以满足业务的需求,目前 90% 游戏业务运行在上面,虚机规模持续保持在 10000 台以上,游族私有云平台没有提供 WEB 管理界面,日常所有的操作都是通过命令行和脚本的形式进行操作,但对于虚拟机的增删查改,重新封装了一层简洁的 API 接口实现与游族运维平台的对接。经过评估测验,在高峰时期,整个私有云资源利用率可达到 83%。

 游族网络运维总监:如何运维千台以上游戏云服务器  运维方式的转变

与三代架构相互对应是游族运维的三个阶段:

  • 在第一代架构上,运维基本是手工运维,技术含量并不高,纯粹是采用人与时间堆积进行,运维同学需要登录每一台服务器,顺序执行相关的命令和脚本。独立的版控服务器,通过主动推送的形式进行版本更新;
  • 在第二代架构上,通过自动化工具进行批量运维,团队推出了使用 expect 写的 auto 批量脚本,所有操作只需登录一台集控服务器执行批量并发操作的脚本,独立的版控服务器,通过并行的主动推送;
  • 在第三代架构上,可以实现系统化运维,多个运维系统相互协调配合实现,例如:CMDB、业务树、作业平台等。游戏区组搭建的时间基本上可以忽略(可按需求实现按条件触发或手动触发搭建操作),所有的更新操作在 WEB 管理平台就可完成。

 游族网络运维总监:如何运维千台以上游戏云服务器  游族作业平台 UJOBS

 游族网络运维总监:如何运维千台以上游戏云服务器

图二:UJOBS 架构及其游戏更新流程

系统化运维过程中使用的作业平台(UJOBS)是属于 C / S 的架构,其核心部分由任务调度器和 agent 组成,通过调用 API 接口完成多种形式的指令下发。UJOBS 简单的来说是为服务器管理提供了执行命令的通道,将所有的执行命令和脚本在目标服务器横向执行完,把输出结果记录日志里面,同时可通过 WEB 界面实时查看分析。任务调度器是用来全局策略控制,进行并发量控制。任务列表里面保存任务的完整信息。指令仓库保存常用的命令个脚本和上下文关联的命令组合。

在 UJOBS 平台上,游戏版本更新流程如下:

  1. 版本库的版本变更自动触发构建;
  2. 从版本库拉取变更后的版本文件;
  3.  通过构建操作后,推送目标程序到分布式的全局版控服务器集群;
  4. 在作业平台下发更新操作后,UJOBS 的 agent 取得该次更新的版控服务器地址、变更清单以及版本信息;
  5. 从版控服务器拉取更新文件到本地执行预定的更新脚本。

同时在 UJOBS 执行的过程中可实时查看输出的日志。当游戏版本更新出现异常,有两种回滚方式:第一种,游戏服务器上保留历史版本,异常时回退到历史版本;第二种,覆盖回滚,将老版本再次发布进行回滚。

 游族网络运维总监:如何运维千台以上游戏云服务器  数据库备份与恢复

相对于游戏版本更新备份而言,数据库备份更为重要。ALLINONE 模式或者非集群模式的游戏业务场景下,会存在多达好几千个 MySQL 实例,若是要按常规的 MySQL 备份方案来实施,管理难度和成本都要翻好倍。因此游族网络采用 Xtrabackup 在主库上直接备份数据文件方式,备份文件暂存本地;本地备份完成后在备份系统选举一台远程服务器进行异地备份;备份策略每小时一次备份,半小时本地备份半小时远程备份。该备份方法在单主库业务场景下可能是最靠谱的数据备份方案,但备份过程对主库会有影响、(限制 IO 操作),最坏情况下可能出现 1 小时的数据丢失(业务接受少量的数据丢失)。

在数据恢复方面,通过一键恢复工具,只需要提供恢复的 IP、时间段和业务信息(如库名)即可实现数据恢复;24 小时内的数据通过本地的数据恢复(结合二进制日志),超过 24 小时的数据通过异地数据恢复。

 游族网络运维总监:如何运维千台以上游戏云服务器  云上迁移历程

现在游族已经将几款老游戏迁移到阿里云上。在将 ALLINONE 架构平滑迁移到云上的过程中,首先要求就是迁移过程不能长时间停服,只能接受正常的版本更新的停服时间。整个迁移过程分为以下几步:

  • 第一步提前准备资源,在阿里云提前申请好资源,初始化环境并把 VPC 与自有机房的网络打通,实现内网互通为数据同步做好准备;
  • 第二步提前同步数据,使用 Xtrabackup 备份在线把 MySQL 配置成主从同步模式,将数据同步到阿里云 ECS,在一段时间后完成数据迁移。
  • 第三步正式迁移,正常的游戏停服维护时间(0.5~2 小时)就可完成业务上阿里云的迁移。目前已经平滑完成 3 款游戏产品的迁移,每款产品准备时间 3~5 天,正式迁移用时 1~2 小时,在阿里云平台使用的虚机超过 1000 台。

 游族网络运维总监:如何运维千台以上游戏云服务器

图三:新游戏上阿里云部署方案

上图为 ALLINONE 架构迁移在阿里云后的游戏部署:游戏逻辑运行在 ECS 上,业务中使用 VPC 网络,通过自建的 ULB 对外提供服务。游族网络下一步计划将集群模式部署在阿里云平台上,游戏逻辑将在 ECS 集群运行,后端数据存储在 RDS 集群中,前端通过 SLB 和负载均衡保证业务高可用,同时会接入 LOG 和大数据计算服务 MaxComputer 确保大数据业务。

在迁移到云的过程中,阿里云的技术支持起到了关键作用,线上线下及时沟通,以及特定技术的定制,保证了整个迁移过程的顺利进行。

 游族网络运维总监:如何运维千台以上游戏云服务器  如何去选择合适的数据库?

在游戏迁移过程中,遇到了很多困难,其中一点是选择自建 MySQL 还是 RDS。根据游戏迁移经验,解决该问题,他认为应从以下三个因素进行考虑:

  1. 实例数量:实例数量多且业务规模小(无需进行针对性的优化)适合自建 MySQL 服务;实例数量不多业务相对会比较集中,数据库负载较高需要针对性的进行优化适合使用 RDS 服务;
  2. 数据大小:数据量的大小会直接影响到数据库性能和数据备份的机制,数据量越大越需要对数据库进行精细化管理,数据的备份难度也越大,这种情况下建议使用 RDS 服务,反之可自建;
  3. 成本核算:从实例规格来看 RDS 会比 ECS 自建 MySQL 要贵,但若是必须用到 RDS 的某些特性(如:数据安全和稳定性)时成本也就不会放在首要位置了。

与此同时,大数据量的自建 MySQL 可以采用延时同步的方法,此方法已在游族网络的女神联盟(手游)的集群架构方案中在使用。游族运维团队独创的数据备份系统、UJOBS、业务网关等独具特色解决方案确保了其业务量在行业内处于领先地位。

———— 金三银四课程特惠 ————

马哥教育精英线下 Linux 班郑州校区开班倒计时,优惠四重享,赠送高达 4000 元的学习大礼包:

第一重:4 月 30 日前报名,立减 400 元,名额有限抢完为止;

第二重:4 月 30 日前报名,赠送马哥教育内部 Linux 知识精讲教材一本( 价值 666 元 );

第三重:4 月 30 日前报名,赠送马哥教育实体服务器使用资格( 价值 1666 元 );

第四重:4 月 30 日前报名,赠送马哥教育云学堂学习权限 1 个( 价值 1999 元 );

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-12-03发表,共计3392字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中