上海游族互联运维总监李志勇3月4日在云起社区分享了“如何运维1000多台游戏云主机”。本次分享的重点是云时代的运维,包括游戏部署云服务器的整体方案,游戏网络服务器大规模运维的管理方法,以及自己对公司选择RDS或搭建MySQL数据库的建议。
关于人才共享:
李志勇,2010年加入旅行者互联网,现主管旅行者互联网运营维护,全面负责旅行者互联网运营维护工作。十年运维经验,八年游戏领域经验,致力于游戏虚拟技术和网络维护。
分享文章正文:
游戏商品架构进化史
图1:游戏商品结构的演变历史
经过近七年的快速发展,企业游戏网络服务器从100台增加到10000台,游族整体游戏架构也经历了三个阶段的演进:
企业前期广泛使用的第一代架构,当时流行的商品都是用DB前端开发这样的三个人物角色来设计、开发和部署的。网络服务器以物理机为主,一个游戏区组要有2~4台网络服务器,不同的设备承担不同的角色。这种架构规划方案效率低下,大部分不太可能一天开一百个区(一百个区大概需要400台网络服务器);随着业务量的增加和虚拟技术的广泛应用,游族整体游戏架构已经升级到第二代架构,虚拟技术得到了全方位的应用。将一个顶级的物理设备虚拟化技术变成了几个满足游戏对应用需求的vm虚拟机,完成了一体机的系统软件架构。架构方案运维效率高,适合业务规模的游戏运营,但不具备业务高可用的特点。一天开100个区很正常。为了更好的服从战区统一,与全世界同屏,游族结合了前几代架构的特点,发布了第三代架构,按照人物角色拆分,产生了服务项目集群模式。集群架构结合了物理机和虚拟化技术的优势,完成可扩展的扩展。游戏逻辑以服务项目流程或集群设备的形式呈现服务项目。该架构方案具有较高的运维效率,能够完成二级新业务,具有高业务可用性的特点。
按照二代架构,按照OpenStack自己的私有云存储,最初的总体目标是更好的提高网络服务器的利用率,控制成本,完成分钟级的新服务。运维精英团队以OpenStackG为蓝本调优改;互联网全部采用VLAN模式,保证最大限度兼容当前互联网架构;存储层应该使用本地磁盘作为存储。
从底层推广来看,游族的私有云存储大多可以考虑业务需求。目前90%的游戏业务都在其上运行,虚拟机运行规模始终在10000台以上。游族的私有云存储服务平台不显示WEB管理方法页面,实际 *** 作通常都是根据cmd和脚本进行的。经过评估和测试,所有私有云存储资源的利用率在高峰期可以达到83%。
*** 作和维护方法的变化
与第三代架构相匹配的是游族运维中的三个环节:
在第一代架构上,运维是基于人工运维,技术不高。纯粹的碎片化是由人和时间沉淀进行的。运维学员必须登录每台网络服务器,按顺序执行相关指令和脚本。独立的版本控制网络服务器,按照正向消息推送的方式进行版本升级;在二代架构上,按照自动化技术专用工具进行批量运维。精英团队发布了expect编写的automass脚本。所有实际 *** 作只需要登录一个集中控制网络服务器进行高并发的海量脚本编写,一个单独的版本控制网络服务器会根据并行处理的正面消息进行推送。在第三代架构上,可以完成专业的运维,CMDB、业务树、运营平台等几个运维系统软件相互协调完成。游戏群的构建时间大部分可以忽略(按标准打开游戏群的实际 *** 作或者手动打开游戏群的实际 *** 作可以根据需要完成),升级的所有实际 *** 作都可以在WEB管理系统中进行。
UJobs,一个面向游客的工作平台
图2:UJOBS架构和游戏升级步骤
专业运维全流程应用的作业平台(UJOBS)是C/S架构,其关键部分由线程同步器和代理组成,根据APIsocket发出各种命令。简单来说,UJOBS为虚拟服务器展示了一个运行命令的安全通道,在整体目标网络服务器上制作所有运行的命令和脚本,并在系统日志中记录输出结果。另外还可以根据网页即时查询分析。线程同步器用于全局对策 *** 作和并发 *** 作。任务列表存储日常任务的详细信息。命令仓库存储常用命令,包括脚本制作和上下文命令。
在UJOBS服务平台上,游戏版本升级步骤如下:
当版本库的版本号发生变化时,自动开始构建;从版本号库拉获取已更改的版本号文档;根据实际 *** 作,消息将目标程序推送到分布式系统的全局版本控制集群服务器;运营平台给出升级的实际 *** 作后,UJOBS的代理获取本次升级的版本控制服务器的ip、变更明细、版本信息;从版本控制网络服务器获取升级文件,并在本地制作升级脚本;
此外,在UJOBS实施的全过程中,可以即时查询输出的系统日志。在游戏版本升级中发现异常时,有两种回滚方式:一是在游戏网络服务器上保存版本历史,出现异常时,返回版本历史;第二,覆盖回滚,再次公布老版本回滚。
数据库查询备份和还原
相比游戏版本升级备份数据,数据备份非常重要。在所有一个或非集群的游戏商业场景中,将会有成千上万个MySQL案例。如果要实现基本的MySQL备份数据计划,管理方法的难度系数和成本必须翻倍。因此,旅行者互联网选择Xtrabackup在主数据库上即时备份数据数据库文件,备份数据存储在本地;进行本地备份数据后,在系统备份中选择虚拟服务器进行现场备份数据;数据备份措施:每小时备份数据,30分钟本地备份数据,30分钟远程控制备份数据。这种备份数据模式可能是单一主数据库业务场景下最可靠的备份数据计划方案,但是备份数据的全过程会对主数据库造成伤害(限制io的实际 *** 作),最糟糕的情况下很可能会丢失一个小时的内容(业务接受少量内容丢失)。
在数据修复层面,根据一键恢复的专用工具,只需显示修复的IP、时间范围、业务信息内容(如数据库名称)即可完成数据修复;24小时以内的数据信息根据本地数据(融合二进制日志)修复,24小时以外的数据信息根据外来数据修复。
云迁移流程
如今,游族已经将几款老游戏迁移到了阿里云服务器上。在将ALLINONE架构顺利迁移到云端的整个过程中,第一条规则是,在整个迁移过程中不能长时间停服,只接受所有正常版本升级的停止时间。整个迁移过程分为以下两步:
第一步,准备充足的资源,提前在阿里云服务器申请资源,重置自然环境,连接VPC与现有主机房的互联网,完成内网通信,为数据库同步做好充分准备;
第二步,提前同步数据信息。MySQL在Xtrabackup备份数据线上配备主从关系,数据库同步到阿里云服务器ECS,一段时间后迁移数据信息。
第三步,宣布迁移。所有正常游戏在停止取维护时间(0.5~2小时)后,可以在业务上迁移到阿里云服务器。现阶段,三款游戏产品的迁移已经顺利进行。每个产品提前3~5天准备,1~2小时宣布迁移。1000多台虚拟机在阿里云平台应用。
图3:新游戏中阿里云服务器部署计划
图为ALLINONE架构迁移到阿里云服务器后的游戏部署:游戏逻辑在ECS上运行,业务上应用VPC互联网,服务项目按照搭建的ULB对外开放。互联网游的下一步是在阿里云平台上部署集群模式。游戏逻辑将在ECS集群中运行,后端开发数据存储在RDS集群中。前端开发将根据SLB和第三层交换机确保服务的高可用性。此外,还将连接LOG和互联网大数据测量服务项目MaxComputer,保障互联网大数据服务。
在整个迁移到云的过程中,阿里云服务器的服务支持起到了主导作用。线上线下的沟通和特殊的技术定制保证了整个迁移过程的顺利开展。
如何选择合适的数据库查询?
在游戏迁移的整个过程中,有很多难点,其中一个难点就是要构建MySQL还是RDS。根据游戏迁移的经验,他觉得处理这个问题应该考虑以下三个要素:
1。总案例数:总案例数多,业务运营规模小(无需目的推广),适合搭建MySQL服务项目;总例数少,业务相关性会集中,数据库查询负载高,需要进行有目的的开发,以促进RDS服务项目的恰当应用;
2。数据信息大小:信息的大小会立即危及数据库的查询特性和系统的数据备份。信息量越大,必须对数据库查询进行越精益的管理,数据备份的难度系数也越大。在这种情况下,提出RDS服务,但可以改为建立;
3。成本计算:从案例规格和型号来看,RDS搭建MySQL会比ECS贵,但是如果必须采用RDS的一些特性(比如网络信息安全可靠性),成本就不容易放在主体部分。
另外,大信息量的MySQL的构建可以选择一起守时的方式,这种方式已经在旅者之网女神联盟(手游)的集群架构方案中得到应用。备份数据系统软件、UJOBS、业务网关ip等独特解决方案。由精英团队打造的游族运维保证了其业务量在该领域处于领先水平。
QA阶段:
1.现阶段游族的运维人员总数是多少?
答:当初优族互联的运维精英团队有20多人。经过技术优化,现阶段精英团队总数约为10人。从原来的几十个产品到现在的几十个产品,运维业务量翻倍,所有运维精英团队人员减少一半。精英团队不断将技术转化为生产主力,这是一个不断提升的全过程。
2.从运维新手到主管的成长阶段?
答:首先,我对运维领域一直保持着很高的兴趣。从战斗平台Touch游戏的运维开始,我就想把时间和金钱花在游戏的运维上。我花了两天三夜解决了运维中遇到的常见故障。自然是从最底层的运维人员做起,团队合作被释放,一个逐渐成长的过程。在精英团队中,学习和培训应该放在第一位,每个运维人员都必须不断学习和培训,提高工作能力。
3.除了MySQL还有其他类型的DB吗?像NoSQL这样的数据库查询是如何管理和部署的?
回答:游族互联网上绝大多数产品都是MySQL,少数产品是Mongodb。因为数量少,所以暂时都是手工制作。文件缓存业务使用Redis,但不存储重要的数据信息。Redis的备份数据由备份数据系统软件管理。所有手机软件部署都按照标准化的业务模板进行管理。
4.在新规划中,互联网大数据测量服务项目MaxComputer的应用领域是什么?
答:在游族以前的架构中,游戏系统日志都是分开存储的,容易丢失。在新架构中,根据日志服务项目,将游戏系统日志收集到互联网大数据测量服务项目MaxComputer中,方便适用于事后游戏和运维数据的统计分析。
5.数据库查询的一部分是具有多个事例的单个DB吗?有没有开放分布式系统DB的框架?
回答:在allinone架构下,一个MySQL案例中只运营一个业务;在集群架构下,在单个DB的情况下,会有几个业务进行 *** 作,分布式系统的DB架构是相对必要的。
6.优族的私有云存储用的是OpenStack,有很多组件。之后又是如何与云计算平台对接的?
答:现阶段,针对游客的OpenStack应用仅限于主机房,短时间内不容易匹配到社区的版本号。主机房的改动和应用非常简单,所有OpenStack很少定制和改动,非常强调架构的应用。
7.如何在国际连接点和中国连接点之间创建高可靠的链接?
答:这个链接应用的基础资源是Alibaba.com遍布全球的物联网平台。阿里云服务器把自己的资源给应用VPC的客户,在全球范围内完成高可靠链接的创建。
视频回顾详细地址:
http://click.aliyun.com/m/4089/
幻灯片图片下载链接:https://OSS.aliyuncs.com/yqfiles/a4fa09BC8a0a2a559df4b93839437a88.pdf
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)