写点什么

腾讯游戏服务亿级用户,300 款在线产品的运维建设 —— 实战篇

  • 2015-08-07
  • 本文字数:2025 字

    阅读完需:约 7 分钟

引言

随着 IAAS、PAAS 的不断演化,传统运维的工作不断被“云”所代替,在“云”时代的运维,服务才是未来、核心竞争力,本篇以实战经验为主,介绍覆盖全部游戏类型,业务数量达 300 款以上的腾讯游戏运维服务如何落地,并向智能运维服务方向迈进。

服务建设的关键转变:站在业务的角度看运维

运维团队从自身出发看问题,往往容易陷入到我需要什么工具,需要学习怎样的开源技术解决我目前的问题,这个在运维初期进行标准化,自动化建设的时候,非常关键。但是到了运维服务阶段,我们需要关注我们所负责的业务(产品)关心的是什么,以业务驱动技术的优化和探索。

接下来以游戏运维工作中最常见的游戏合服、游戏登录、版本发布三个业务场景来分享游戏运维服务建设从那里开始。

游戏合服:随着游戏世界中玩家的自然流失,游戏热度将会逐渐减低,严重的会影响游戏内的玩法和用户体验,通过合服,寻找两个或多个热度较低但是非常匹配的服进行合并,使玩家可以在一个相对比较健康的游戏环境中得到较好的体验增加玩家之间的交互,同时从技术的角度也可降低业务侧的服务器成本。

游戏登录:游戏登录较普通的 WEB 登录差别较大,需要经过客户端升级、文件校验、帐号认证、选区和正式进入游戏等多个步骤。整个登录过程涉及到包括 CDN、版本服务(客户端版本控制)、帐号后台、目录服务(大区管理)、游戏后台 server、游戏客户端和网络环境在内的多个模块,任何一个环节出现异常都可能会导致登录失败。

版本发布:版本是游戏的主线,传统游戏运维,重点关注发布、BUG、故障处理的阶段,往往运维较大的精力也会放在发布期间的效率和质量优化。而从游戏业务本身出发,需要以版本为主线,从版本转测开始,关注版本发布前的版本质量以及版本准备过程中对发布时长的优化,在版本发布环节,注重发布质量,发布策略,发布效果,用户影响时长等多方面完成版本的发布动作,在发布完成后,需持续实时跟踪版本稳定性,从在线的恢复速度反馈运维发布能力。

服务建设痛点挖掘:数据驱动、闭环服务

整个运维服务建设中,一直遵循通过数据驱动,采集各个业务环节的数据,通过数据反馈业务场景问题,并且通过闭环服务使得服务形成自循环优化,借此不断提升游戏运维核心竞争力。结合游戏业务实际场景,如何做到。

游戏合服:

  • 首先需从多业务指标维度中进行筛选合服因子,比如开服时间、封印等级、战力指数等等,如加上服务器,因子指数翻倍,并且需要综合考虑玩家的地域、网络因素;
  • 具备历史追踪,经验复用,规避失败合服决策;
  • 跟踪实施步骤耗时,并且多个合服需求同时处理,通过自动化降低人工操作,规避风险。

游戏合服服务框架:

游戏登录:

  • 登录体验的衡量,由于涉及模块繁多,玩家的客户端环境也复杂多变,每时每刻都会有登录失败的玩家存在,如何不被这些个案迷惑,整体地衡量登录体验是否正常就成为一个非常重要的问题。我们在采集每一个步骤的登录状态及耗时的基础上,成功率和耗时两个指标来评估玩家的登录体验,同时结合登录异常的分布情况(如某段时间在某个纬度中集中出现某类登录异常)得出综合的登录体验健康度分数,当集中的登录异常出现时能够及时发现,而不是被平均的登录成功率指标所掩盖。

  • 登录体验异常的原因定位,服务器故障或网络波动的引起的故障,系统可以直接进行判断,但更多的时候是单用户(没有直接的共性联系)的异常,这时就需要通过多纬度的对比(比如玩家所在省份、运营商、大区甚至跨业务的对比)来进行问题原因的定位。 游戏登录服务框架:

版本发布:

  • 版本质量衡量体系建设,采用维度异常分数衡量法,与现有大部分云平台或电脑管家类健康度衡量方式,即实时采集各维度发生异常为质量影响体现,版本衡量维度分布以及关联(数据为实时采集):
    • 优化分服务体现:
    • 在线恢复时长:

服务建设技术实践:持续集成、复用轮子

服务效果通过数据衡量,接下来更多考虑如何能够利用底层的标准化以及各类自动化工具,为顶层的服务提供支持,特别是利用好 IAAS、PAAS 提供的各类支撑能力。

  • 业务运维团队将业务逻辑导入服务引擎通过此驱动整个服务运作,其中自动化调用蓝鲸标准化场景工具进行实施;
  • 海量数据的处理,数据量级达到数十亿的规模,通过采集数据的标准化,并借助 Strom、Solr(蓝鲸实时计算平台)等实时分析、检索平台,实现秒级的数据采集、分析、入库和检索,分钟级运算;
  • 根据服务效果驱动技术的演进,采纳各类开源技术(下载加速、P2P、负载均衡、反域名劫持、CDN 加速等等)并组合应用;

游戏合服业务案例截图:

游戏登录业务案例截图:

版本发布业务案例截图:

以上仅为腾讯游戏运维服务三个场景下的实践分享,在此抛砖引玉,希望能够跟业界进行更多的讨论和实践,特别是进一步组合更多服务策略迈向“智能”运维服务。


感谢赵锐龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-08-07 08:102146

评论

发布
暂无评论
发现更多内容

webpack模块化的原理

Geek_02d948

webpack

Nodejs+Redis实现简易消息队列

coder2028

node.js

javascript 高级编程 之 Array 用法总结

hellocoder2029

JavaScript

开源代码安全 | 西门子为保护代码安全采取了什么措施?

龙智—DevSecOps解决方案

SCA SCA工具 开源代码安全

【LeetCode】只出现一次的数字Java题解

Albert

算法 LeetCode 11月月更

云栖盘点:2022 云网络产业干货分享

云布道师

云网络 云栖大会

安装户外LED显示屏安装注意事项

Dylan

LED显示屏 户外LED显示屏 led显示屏厂家

webpack配置优化,让你的构建速度飞起

Geek_02d948

webpack

javascript尾递归优化

hellocoder2029

JavaScript

云栖盘点 | 一文 get 云原生峰会的最全发布

云布道师

云原生 云栖大会

docker如何在容器外执行容器内命令

A-刘晨阳

Docker Linux 运维 11月月更

linux(centos)中部署docker(步骤超全,含带一些发展史和一些概念)

A-刘晨阳

Docker Linux 运维 11月月更

​GOPS演讲 | 如何构建现代运营与支持体系,实现团队的高效协同

龙智—DevSecOps解决方案

gops ITSM ITSM解决方案 GOPS全球运维大会

JavaScript刷LeetCode拿offer-js版字典

Geek_07a724

JavaScript LeetCode

干货|分析PostgreSql单表60w数据却占用55g空间

查拉图斯特拉说

数据库 postgresql db 11月月更

js作用域、作用域链和它的一些优化

hellocoder2029

JavaScript

Vue虚拟dom是如何被创建的

yyds2026

Vue

webpack热更新原理(面试大概率会问)

Geek_02d948

webpack

在线研讨会报名 | 如何通过自动化测试实现降本、增效与提质

龙智—DevSecOps解决方案

自动化测试 研讨会

成为web前端工程师培训和自学选择

小谷哥

让数据流动起来,RocketMQ Connect 技术架构解析

阿里巴巴云原生

阿里云 RocketMQ 云原生

Nodejs:ESModule和commonjs,傻傻分不清

coder2028

node.js

Nodejs相关ORM框架分析

coder2028

node.js

技术指南 | 如何集成Perforce版本控制系统Helix Core (P4V) 与软件生命周期管理工具Helix ALM

龙智—DevSecOps解决方案

版本控制 软件开发生命周期 版本管理 ALM

用Vue.js开发企业管理后台,我做到了

博文视点Broadview

params传参与body传参区别

源字节1号

软件开发 前端开发 后端开发 小程序开发

HarmonyOS 3开启新一轮升级,3年前的nova 6也能更新!

Geek_2d6073

AR Engine光照估计能力,让虚拟物体在现实世界更具真实感

HarmonyOS SDK

AR HMS Core

Go语言入门16—锁

良猿

Go golang 后端 11月月更

你知道IPC二级和IPC三级有什么区别吗?两者对PCB产品的影响又是什么呢?

华秋PCB

PCB ipc PCB设计

DAO社区治理代币投票挖矿系统开发合约定制

开发微hkkf5566

腾讯游戏服务亿级用户,300 款在线产品的运维建设 —— 实战篇_服务革新_KemHong_InfoQ精选文章