写点什么

腾讯游戏服务亿级用户,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:102277

评论

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

大数据开发技术应该怎么学习入门才好

@零度

大数据

Redis架构实战:高并发情况下并发扣减库存

编程江湖

java编程

mPaaS 月度小报|魔方卡片(Cube)公测,十个卡片模板任意使用

蚂蚁集团移动开发平台 mPaaS

小程序 消息推送 移动开发 API网关 cube

百度智能客服斩获 “金音奖—中国最佳客户联络中心技术与解决方案奖”

百度大脑

人工智能 智能客服

什么是云计算?云计算特点是什么?

行云管家

云计算 公有云 混合云 云资源

打造基于 PostgreSQL/openGauss 的分布式数据库解决方案

SphereEx

数据库 开源 分布式数据库 ShardingSphere SphereEx

CIO如何制定低代码/无代码战略

BeeWorks

同态加密实现数据隐私计算,能让你的小秘密更加秘密

华为云开发者联盟

数据 加密 同态加密 联邦计算 数据隐私计算

复杂场景,从OpenTSDB迁移到TDengine的最佳实践

TDengine

数据库 tdengine

青藤解密:72%客户容器规模>100个,[镜像安全]谁来保护?

青藤云安全

镜像安全

滚雪球学Python系列,真能学会Python!

梦想橡皮擦

内容合集 签约计划第二季

模运算和与运算的一点儿简单思考

LSJ

位运算 二进制

MySQL「 Every derived table must have its own alias」1248 错误修复法

蒋川

数据库 MySQL 运维 MySQL 数据库

如何在 Flutter 中设置背景图像【Flutter专题15】

坚果

flutter 28天写作 签约计划第二季 12月日更

【Java】代码重构时,为什么禁止在方法内对对象类型的入参赋值

恒生LIGHT云社区

Java 代码规范 java代码规范

架构实战营 模块七作业

felix

「架构实战营」

【AI最前线】精准优质-资讯|分享|热议第42期

百度大脑

软件工程师年满 40 岁,下一步怎么走?|本周话题

InfoQ写作社区官方

生涯规划 个人成长 职业规划 话题讨论

等保工作五大误区汇总,让你更懂等保!

行云管家

网络安全 等保 等级保护

前端避坑指南丨辛辛苦苦开发的APP竟然被判定为简单网页打包?

YonBuilder低代码开发平台

大前端 APP开发 APICloud 跨端开发

清空数组的几个方式

编程江湖

大前端

莫要寻找可能不存在的答案

FunTester

学习 解决方案 自学 FunTester 思路

模仿UP主,用Python实现一个弹幕控制的直播间!

Zhendong

Python

HBase 和 Hive 的差别是什么,各自适用在什么场景中

编程江湖

大数据

面对行业难题,华为云邀请物联网全行业拿出“亮剑”精神

华为云开发者联盟

IoT 华为云 LiteOS HarmonyOS IoT边缘

详解工作流框架Activiti的服务架构和组件

华为云开发者联盟

工作流 工作流引擎 BPM Activiti BPMN

开始读 Go 源码了

AlwaysBeta

golang 源码 源码阅读 源码剖析 Go web

JVM中的对象及引用

Ayue、

技术专题合集

做一款互联网内容平台,到底要懂多少AI?

百度开发者中心

AI

Go语言学习查缺补漏ing Day2

恒生LIGHT云社区

Go 编程语言

火山引擎+焱融 YRCloudFile,驱动数据存储新增长

焱融科技

云计算 分布式 云原生 高性能 文件存储

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