以“工匠”的精神对待每一个版本

工匠们喜欢不断雕琢自己的产品,不断改善自己的工艺,享受着产品在双手中升华的过程。工匠们对细节有很高要求,追求完美和极致,对精品有着执着的坚持和追求,把品质从99%提高到99.99%,其利虽微,却长久造福于世。

“工匠”精神具有精益求精、严谨、一丝不苟、耐心、专注、坚持、专业、敬业。

游戏每一次版本更新对于玩家来说都是非常值得期待的,版本准备、版本验证、版本更新、版本更新后的每一刻,不只是体现游戏开发、策划者的独具匠心,版本如何顺利发布给玩家,并且助力玩家完成更新,都凝聚着游戏业务运维人的”工匠“精神。

日常版本

QQ炫舞、DNF分别为MUG、ACT类游戏,前者一个月一个版本,后者可以达到一月八个版本。

QQ炫舞每个月的版本只有一个,所以经常会伴随着架构调整、新的系统接入、功能、活动开放,以及运维侧遗留下来的环境类变更。因此长时间的发布准备,详细的checklist是每次发布前的例行工作。

由于版本发布还伴随了较多的变更,在老的流程下单次停机时长高达6小时,较影响玩家体验。

为了压缩每次的停机时长,运维侧会把很多工作都挪到发布准备时间,保证运维的发布操作时间控制在0.5小时之内;同时测试同事会加大灰度发布的测试覆盖度,全服发布只需过基本功能即可,在此基础上继续增加测试人力;通过如上的一些努力,保障每月一次的发布控制在3小时左右。

DNF为动作类的MMOG游戏,需要不断更新版本内容以吸引玩家,由于游戏逻辑处理的不同,导致外挂较多。

在不断更新游戏内容及反外挂对抗功能的背景下,DNF的版本频率达到了惊人的每月八次。任何一次的运维失误、或响应不及时都会影响到最终外网版本的发布,为保障每次版本高效、高质的更新测试服、体验服、及外网。

运维侧与韩方规范化了版本交付流程,通过这个规范实现标准的版本更新,与版本质量跟踪app;同时将标准化的版本更新作业交付一线同事操作,以减少运维人力。

DNF版本更新app如下图,填好参数后一键执行更新:

运维会对发布到现网的版本质量进行跟踪、监控,以便能及时发现现网问题并处理;同时可以根据带宽使用、在线恢复趋势等数据制定更好的发布策略,以优化发布成本,提升玩家的体验。

如下为版本发布前后状态对比(停服前30分钟、起服后30分钟、60分钟3个点):在线趋势(主要指标)

其他趋势指标

  • 程序负载
  • 程序稳定性
  • 掉线量
  • 支付
  • 下载
  • 突发

通过上面可以看出,不同的业务版本侧重点会有不同,运维侧要做的就是保持与开发商、项目同事的紧密沟通,共同优化版本更新中遇到的问题(停机时长、更新频率)。

大版本支撑

QQ炫舞为国内代理游戏,其大版本主要集中在功能的横向扩展上,如不断推出海滩社区、舞厅社区、KTV、视频秀等功能,不断丰富游戏的玩法。

这些版本需要进行架构调整、新的api接入;运维侧需要进行机型选型、容量压力评估、物理架构的调整、监控跟进等等。

以炫舞视频秀版本为例,阐述运维在大版本做的支撑:

方案选型:炫舞是第一个做视频秀的端游,没有其他游戏可参考。当时是参考了内部几个流媒体产品,最终确定视频技术+流媒体CDN的方式实现。

架构优化:多点部署主播接入点,从源头保障视频流的传输质量。推动CDNProxy等关键模块热备实现,并分物理机部署,在机器故障时保证关键功能可用。

成本:小流量模块使用虚拟机。

体验监控:监控方面,运维在产品前期就推动开发在客户端、服务端进行了详细的日志记录。如tqos日志实时监控玩家、主播端的质量;服务端的oss log实时分析玩家异常行为。通过监控->优化的闭环不断推动玩家体验提升,大幅提升了视频秀稳定性,且投诉下降20%左右。

DNF主要在玩法的横向与纵向扩展上,如新的职业、转职、觉醒内容的添加,游戏决斗场改编、地下城改编,等级提升等方面。且大版本的内容基本是从韩服版本直接拷贝过来进行修改。相当于服务端的程序基本是全新的,无论从性能,稳定性,以及bug数量都会对运营带来很大的挑战。同时超大的客户端更新、黑盒的db工具变更也会对运维带来不少挑战。一般会经过十几个版本的迭代测试才会上到现网。

下面以DNF创新世纪版本为例,介绍运维支撑方案。

版本迭代:创新世纪版本约经过20个子版本,50次的测试环境更新才上线到现网。这期间更新效率、质量都需要得到保证。因此DNF运维开发了测试环境更新app,将更新全流程打通以提升效率;并将更新内容入库,保障更新的准确性。

超大客户端更新

“DNF2013年发布的超大更新包,导致CDN带宽翻倍,直接垮掉”。有了这次惨痛的教训之后,DNF是这样更新超大包的。

  • 预下载
  • 拆分包,资源包拆分并且提前分发
  • 提升p2p率
  • 阉割版完整包提前外放
  • 网吧预推送,网吧用户预下载无法触达,进行网吧预推送。

版本停机时长

DNF大版本改动内容很多,因此在服务端更新、db变更、测试上都需要花大量的时间,导致停服时间很长,从收入、口碑产品都有直接影响。一般大版本的db变更、测试时间会占到总时间的80%。我们在保障质量、压缩时间方面做了如下调整:

  • checklist评审,涉及完整性、回退方案、效率等方面。
  • DB变更提前在小型区、大型区、合服区的DR上进行测试,保证每个区都能正常执行。
  • DB变更执行多并发,并利用tmysql在线加字段等特性节省变更时长。
  • DB变更按数据量大小分两批同时执行,小数据量的大区即可先开区测试,待测试完成后,大数据量的大区也以起服并测试,这样会充分利用测试时间。

下图是14年大版本在优化前后的时间对比:

原文发布于微信公众号 - 腾讯大讲堂(TX_DJT)

原文发表时间:2014-12-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏钱塘大数据

【干货】冲击年薪百万,11 大编程语言薪资排行榜

有这样一个问题,使用空格和使用 Tab 的程序员谁挣得更多? 你别说,还真有人做了统计: ? 图1:根据 2017 年 Developer Survey 调查 ...

45411
来自专栏贺嘉的专栏

新增线下、APP 、公众号多处入口,小程序会再火起来么?(内有福利)

从本次小程序开放的6大能力来看,比开放个人开发者注册,更为重要的开放了公众号,APP,线下三类小程序入口,对于开发者而言意味着用更多方式触达海量用户。

2.5K0
来自专栏软件测试经验与教训

张老师聊面试(二)

小梅,毕业一年,从实习到现在都在一家外包单位工作,做的是手机测试和定制软件的测试,由于工作单调,且没有成长空间,因此考虑换一份工作。但几次面试都不太顺利。

1021
来自专栏ThoughtWorks

Defects的启示 | 洞见

在过去的几个月,我做了一些实践,通过整理、讨论和分析项目上的Defects情况,来探索质量管理中的待改进点。最终发现,Defects实际上给质量管理带来了很多的...

1264
来自专栏云计算D1net

云备份与云存储你该了解的6个方面

2010年之前,绝大多数公司都认为公共云尚未完全成熟,还 不放心将其作为企业数据的主要存储、备份地,但2010年之后,随着巨头们的加速布局,以及大数据的大热,“...

3537
来自专栏云计算D1net

亚马逊Web服务超级用户论战DBaaS

高级亚马逊Web服务用户更喜欢自我管理运行在亚马逊弹性计算云上的数据库,而不是数据库即服务产品,至少现在看是这样的。 上周,AWS超级用户在线活动群组...

3045
来自专栏JAVA高级架构

京东架构专家分享京东架构之路

京东咚咚架构演进 咚咚是什么?咚咚之于京东相当于旺旺之于淘宝,它们都是服务于买家和卖家的沟通。 自从京东开始为第三方卖家提供入驻平台服务后,咚咚也就随之诞生了。...

5019
来自专栏Java架构师学习

Java开发技术大揭底——让你认知自己技术上的缺陷,成为架构师一、分布式架构体系二、微服务架构三、阅读源码、分析源码四、工具的使用五、性能优化

一、分布式架构体系 分布式怎么来的。传统的电信、银行业,当业务量大了之后,普通服务器CPU/IO/网络到了100%,请求太慢怎么办?最直接的做法,升级硬件,反正...

3049
来自专栏成猿之路

考计算机二级,用这个软件,证书顺利到手!

1523
来自专栏ThoughtWorks

在医疗健康领域引入软件开发安全实践

BSI简介 “Build Security in DNA”简称BSI,是在开发过程中内置安全的软件开发实践。 顾名思义,BSI是要将各种安全措施从早期就纳入到软...

2774

扫码关注云+社区

领取腾讯云代金券