双11大型互动游戏“喵果总动员” 质量保障方案总结

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
性能测试 PTS,5000VUM额度
简介: 推荐语:互动游戏是一个系统化工程,在笔者的“喵果总动员”质量方案中,可以看到为保障用户体验,我们在各个难点的解决方案, 例如:用线上压测能力支持业务及时调整各服务容量、通过强化学习覆盖游戏行业的测试路径覆盖难题、利用系统异常注入发现corner case等, 都为互动游戏的系统性质量保障提供了方法。——大淘宝技术质量工程师 搏天


背景介绍

2022年淘宝双11的互动游戏推出款游戏:单人割草升级、多人组队PK、在线猜题闯关,兼顾了不同用户对休闲娱乐和竞技对抗的差异化诉求。

image.png

 玩法核心策略


  1. 单人割草升级:魔性有趣的核心玩法吸引用户,创造记忆点;操作简单易上手,降低用户学习门槛。
  2. 多人组队PK:复刻盖楼狂欢,增加竞技的刺激感。
  3. 在线猜题闯关:每天定时开启价格竞猜玩法,营造大促氛围,打造话题爆点。


核心挑战


 相较于往年大促的变化


  • 猜价格玩法流量集中,严格时序,用户有异常退出、提前结束比赛的风险


猜价格每天12点、18点准时发车,用户需要提前停留在页面参与,因此会有集中的流量流入,预计千万量级用户参与。猜价格玩法要求严格时序,依次进行查看题目、提交答案、查看排名、使用复活卡等操作,过程中因用户网络超时或者切后台等原因导致用户没有在规定时间内完成对应操作,导致无法完成比赛。


  • IGF游戏化架构重构了PK模型,引入的数据一致性风险


虽然PK玩法相较于过去两年没有明显的变化,但是技术架构的重构依然引入一些新的数据一致性风险和问题:

  1. 新的序列化协议数据压缩方案:序列化性能、对于某些特定的数据类型是否支撑,数据是否存在丢失的问题
  2. 新的玩家-战队-房间存储模型设计:今年核心数据首次选择了存储在RDB中,数据迁移过程中的异常重试,并发锁、幂等重试的逻辑需要重新设计,重点保障。
  3. RDB核心用户资产数据存储的稳定性:数据大小/QPS对存储的性能的影响,RDB对核心资产数据的监控和对账能力保障,数据丢失后的回补能力。


  • 实时类互动对端性能要求更高


从端性能问题导致的影响来看,crash,渲染不出来等问题会直接影响到用户行为链路的中断,卡顿会导致用户关键操作的决策、失真,掉电过快等问题会导致用户对游戏品质的质疑从而流失。


从问题发生的概率来讲,这次整个地图渲染的实体更多,端计算存储量增多,更加对端性能提出了更高的要求。


  • 割草玩法前端计算和存储,引入的场景覆盖、安全性等新问题


本次单人割草玩法,战斗逻辑写在客户端。战斗逻辑是包括技能逻辑、普攻、属性、伤害、移动、AI、检测、碰撞等等的一系列内容。这块在互动是全新的技术尝试,以往所有的逻辑都是在服务端处理。所以端计算数据存储稳定性&逻辑一致性的验证比以往的要求更高,例如数据丢失后的回档问题。


另外就是安全性问题,以往所有逻辑和数值都是在服务端,如果想作弊,就必须攻击服务器,而攻击服务器的难度比更改自己客户端数据的难度高得多,而且更容易被追踪,被追踪到了还会有极高的法律风险。而帧同步因为所有数据全部在客户端,所以解析客户端的数据之后,就可以轻松达到自己想要的效果,例如 moba 类游戏的全图挂,吃鸡游戏的透视挂,都是没办法防止的,而更改数据达到胜利的作弊方式(例如更改自己的英雄攻击力)可以通过服务器比对同局其他人的战斗结果来预防。


 风险评估表


测试内容 风险等级 测试策略 风险点
单人-割草收能量 功能测试、前端碰撞模型算法测试、故障点测试、兼容性测试 1.草的割取和能量的收取的一致性2.关键地图信息、背包能量、PK道具buff等信息存储在indexDB&localStorage的稳定性保障3.客户端性能的风险:crash,渲染不出来,卡顿、失真4.前端防刷,防止有用户能快速刷满所有能量
单人-升级发红包 功能测试、故障点测试 1.能量和等级一致性保障,升级发红包
兑奖 功能测试、故障点测试 1.红包必得的逻辑保障
IGF序列化协议 功能测试,性能测试 1.序列化后的字节数大小2.序列化和反序列化的效率3.是否支持被序列化对象新旧版本的兼容性问题。4.是否可以直接序列化对象,而不需要额外的辅助类
猜价格-并发度 功能测试、故障点测试、性能测试 1.通过性能压测摸底,合理安排资源和限流,最大程度保障用户体验2.限流情况下的产品/前端表达,引导用户重试 或 补偿3.前端打散请求4.前端防刷,减少无效请求
猜价格-排名算法 功能测试、故障点测试、性能测试 1.排名算法时效性要求高,从方案层面设计未能及时产出结果的保障方案2.通过性能压测摸底,合理设计限流,最大程度保障用户体验
猜价格-选品一致性 方案设计保障、定时巡检 1.从方案层面,保证选品价格不能轻易变更 或者 活动方案不依赖选品实时状态2.保证项目组能第一时间感知选品价格变更、上下架变更
猜价格-异常重连 功能测试、故障点测试 1.方案层面保障用户在任何异常(主动退出、crash等)、任何状态下,都能有重连的机制



质量保障方案


本次双11的测试目标是“大规模用户同时在线下的实时游戏类互动的质量保障”。目标是0故障、0资损、用户游戏体验流畅度,千万用户同时在线。


 目标


核心策略如图所示:

image.png

 目标完成情况


  1. 定义了双11主互动体验的目标,新增回档率等体验指标,分析过程中数据,优化提升体验水位:中断率、可视时间、帧率等,高峰期无大规模体验舆情,主互动发热、卡顿显著改善。舆情15分钟定位。
  2. 无稳定性问题造成的大规模用户舆情和核心链路不可用问题:事前压测数据构造了亿级战队,高峰期千万用户行为模拟;上线前期通过观察流量占比/数据存储大小,发现地图上报接口流量模型不一致的风险;根据当前架构梳理出低成本的线上可压测方案,具备稳定性变更可验证的能力。
  3. 自动生成用例占比76%:冒烟用例场景开发可执行占比67%,异常场景覆盖占比85%



专项建设和结果


 稳定性测试策略——线上压测能力建设


除了事前——让压测方案更加趋近真实、和事中——数据观察,模型修正的方案外,本次双11稳定性测试想要重点建设线上压测的能力。


  • 解决的问题


预期外的流量,作为线上容器&存储的扩容的演练手段压测模型评估不准确的情况下,线上需要变更的验证能力


  • 核心原则


线上容器&存储资源等系统稳定性不受影响

  • 线上压测执行


压测实战最重要的两点是确保压测结果的可靠性以及保证压测对线上性能无影响。

  • 不影响线上稳定性的几个关键点


容器的稳定性

  1. 理想情况:将服务单独部署到相同规格的机器上,从物理层面将压测系统与真实业务系统进行隔离,确保压测对真实业务系统的硬件资源无影响。缺点:成本高
  2. 可行性方案:线上压测的目的不是为了压系统的瓶颈,是为了验证预期流量下的系统表现,因此可以在业务流量低峰期在当前集群进行线上压测,拉起流量还原发生问题时的场景,对容器的压力可控,风险较低。


数据隔离的安全性

  1. DB的数据隔离:DB数据隔离一般有两种方式:通过新建影子表或新建一套db来保证压测数据与真实业务数据隔离,确保压测数据不会污染线上数据。
    新建db的时间成本和资金成本很高,本次互动玩法DB只存储个人-战队-房间的索引关系和流水,单行的数据量较小。经过压测验证,读写的高峰发生在匹配和结算的定时任务时,系统可以通过限制任务的执行的速度,使DB性能处于安全水位之下。用户自然流量对于DB的读写的峰值按照200%的流量模型评估在QPS、TPS、接口成功率、RT评估均无性能风险,因此可以采用影子表作为数据隔离策略。
    在压测系统水位时以影子表作为数据隔离策略,需要注意的是影子表与真实的线上表存在于一个db中,压测对db整体性能存在影响,可以选择用户访问量低谷时间段内进行压测来能保证压测不影响线上用户且保证压测结果的可靠性。
  2. RDB的数据隔离:RDB是本次核心数据的存储,RDB没有DB影子表的隔离能力,可以通过申请新的RDB实例进行物理隔离,底层IGF框架通过配置进行压测流量的路由。
  3. LDB的数据隔离:LDB支持影子链路存储的隔离能力,业务层无需改造
  4. 本地缓存隔离:记录时需要带上影子标记,和正常流量进行区分


中间件隔离

  1. 压测服务使用单独的版本号,可以将压测服务与真实业务服务隔离,确保线上流量不会打进压测系统;
  2. 通过修改压测应用groupId实现定时任务的分组隔离,保证线上任务不会调用压测机器执行等等。


  • 保证压测结果可靠性的几个关键点


压测接口要满足压测需求:

在对存在上下游依赖的业务链路压测时,会将该业务链中的功能接口组装成几个压测接口,该压测接口应体现真实业务链路的上下游依赖。


业务逻辑改动要仿真业务场景:

在不改变业务请求对系统性能产生的影响时,开发同学可能会修改部分业务逻辑进行压测。比如:真实业务链路的非幂等性导致同一用户在同一状态下只能进入该业务链路一次,这种场景对压测造成的最直观影响是需要生成极大量入参来满足压测需求。为解决该问题,开发同学可能会将压测的业务链路修改为幂等业务链,此时便需要注意当前修改不能改变请求对系统稳定性的影响。


qps配比要仿真业务场景:

在同一场景下,不同接口的qps配比是否能够反映真实业务场景是判断压测结果是否可靠的重要依据。qps配比需要基于能够衡量真实业务访问量的统计结果来制定。


入参满足业务仿真的需求:

如果入参的取值对系统稳定性影响较大(比如:不同的入参对cpu计算量或者io访问时长影响较大;相同的入参并发请求时,对io阻塞影响较重;等等。),需要调研真实业务场景的入参并发间隔、入参离散程度来设计压测入参。


影子数据满足业务仿真的需求:

若通过分析发现,db数据不是本次压测需求的瓶颈或关键点,可以忽略此条建议。不过最好还是在压测前将线上数据同步到影子表,做到高度仿真,RDB同理。


  • 关键问题


数据准备

线上真实数据同步到新的RDB实例,目的是能做到数据存储大小的仿真。


备份恢复方案概览

类别 实施方案 说明 是否采纳
数据备份 自动或手动备份 云数据库Redis支持数据持久化,会按照默认的策略自动备份数据(基于 RDB ),您可以根据业务需求修改自动备份策略,也可以手动发起临时的备份。
下载备份文件 云数据库Redis的备份文件会免费保留7天,如果需要更长时间的备份存档(例如监管或信息安全需要),您可以将备份文件下载到本地进行存储。 备份文件过大,无法本地存储
使用redis-shake备份Redis实例 通过Redis-shake的dump模式,您可以将Redis实例中的数据备份为RDB文件并存储至本地。 备份文件过大,无法本地存储
数据恢复 从备份集恢复至新实例 云数据库Redis支持从指定的备份集创建新实例,新实例中的数据将和该备份集中的数据一致,可用于数据恢复、快速部署业务或数据验证等场景。
通过数据闪回按时间点恢复数据 开启数据闪回功能(基于 AOF )后,在备份文件的保存期内,您可以恢复指定时间点(精确到秒级)的Redis数据,可最大限度地避免误操作带来的数据损失,或者在频繁回档的业务场景快速完成数据切换。说明 该功能仅在企业版(内存型)中支持。
使用redis-shake恢复数据 借助Redis-shake的restore模式,您可以恢复RDB文件到Redis。

参考:https://help.aliyun.com/document_detail/43886.html

链路改造

上线前的压测链路改造保留


压测环境

准备时长:千万账号登录加压测数据上传同步amazon压测平台时间较长,可在流量低峰期操作减少登陆的时间。


 瓦力——基于强化学习引擎的PK全链路场景自动生成


互动瓦力机器人是大淘宝技术互动测试团队于2019年推出的一款用户行为链路仿真平台,底层基于强化学习引擎实现了用例的自动生成,解决了互动业务测“新”的痛点问题,如今已广泛应用于天猫淘宝大促主互动场景和芭芭农场、淘金币等多个日常业务。


之前我们的工作模式更多是在提测后做质量保障工作,包括功能验证、稳定性性能、资损等等,通过提测后问题发现和风险发现,来保障整体的交付质量,往往在最后的提测阶段暴露大量的风险和问题,导致整个项目再最后时间压力最大。从2022年618开始,我们尝试重点解决开发自测和前后端联调阶段,开发不明确自测场景范围以及测试数据/环境无法快速构造,自测用例无法执行的痛点问题。


以本次的“喵糖总动员”的结算场景为例,需要先组成多个战队,离线DTS任务匹配,穿越到PK期,升级/助力,最后才能进入结算,整个链路的测试成本是非常高的。


image.png

借助强化学习用例生成引擎,简化了测试用例前置条件(用例特征)的构造成本,用例特征原子化,在提测前快速生成了60+的冒烟用例,占比全用例的76%,提测通过率100%,提测冒烟时间从过去的3天缩短至1天。


  • 挑战与技术创新点


借助瓦力机器人提升了核心场景的自动生成能力问题和风险前置,提高了联调和冒烟阶段开发自测的效率,提前发现问题19个沉淀了可稳定执行的场景case,变更后可快速回归验证


  • 问题和展望


  1. 继续提升开发联调和自测阶段可执行用例的占比,提升研发自测的幸福感
  2. 简化用例的表达和执行结果的描述,减少用户理解的成本


 大白——业务异常场景自动生成


业务容灾平台-bighero大白,一种不需要编写脚本,通过分析正常流量的核心调用依赖批量生成异常用例,并通过互动机器人,鹰眼标,凤凰和jvm-sandbox构造流量隔离的异常用例执行环境,最后针对异常用例结果进行系统化布防的测试工具;目标是在上线前自动识别出系统的潜在风险,并通过布防等方式将业务损失降到最小。

  • 挑战与技术创新点


  1. IGF框架的引入,放大了同方法多次调用异常精准命中需求,本次基于链路上下文,开发了指定方法index||参数的用例生成&攻防
  2. 满足特殊异常链路的覆盖,自定义异常返回
  3. 异步消息链路的异常测试
  4. hsf接口进行异常用例的自动生成和攻防(将定时任务包成hsf接口进行同逻辑小数据测试)
  5. 避免同接口异常误命中,叠加参数进行攻防对象的流量筛选


  • 落地效果


  1. 自动化产出喵果总动员有效容灾用例:216条
  2. P1P2故障点覆盖率为:82.6%
  • 多人:15个P1P2故障点,12个覆盖,占比80%
  • 开奖:4个P1 P2故障点,4个覆盖,占比100%
  • 单人:4个P1P2故障点,3个覆盖,占比75%


  • 展望


  1. 提升大白-异常测试平台的产品化程度,降低异常测试的使用门槛,简化使用流程
  2. 提高异常场景的覆盖面:MT、并发、奥格、安全等
  3. 提升异常攻防的自动化程度


未来展望

挑战:

大规模用户实时在线游戏已经成为互动游戏发展的必然趋势,同时在线、低时延、3D渲染等新的课题对互动游戏化架构的稳定性保障、体验标准衡量等提出了更高的要求。


短期规划:

  1. 通过完善交付场景用例的生成和执行能力,提供给开发更多的自测验证的场景和手段,提升研发自测阶段的效率,提升交付的质量。
  2. 预研大规模用户实时在线游戏下的架构,梳理相关问题和技术难点,构建相应的质量保障策略和方案。


团队介绍

我们是大淘宝技术质量团队,负责保障整个淘宝和天猫主站的业务质量,一直致力于技术驱动,构建业界领先的质量体系。

我们有QCon、QECon、MTSC、GIAC、绿盟、TOP100 Summit等众多行业大会的讲师,有GitHub获得3.2k Star的开源产品JVM-Sandbox作者,最关键的是有对技术极致追求,对生活充满热爱的大家庭,欢迎加入我们,简历投递邮箱:wenbo.shb@alibaba-inc.com。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
2月前
|
数据采集 人工智能 自然语言处理
隐私保卫战全面打响!大模型私有化技术:让企业数据穿上隐形斗篷,效能飙升新高度
【10月更文挑战第17天】近年来,大型语言模型在各行业智能化转型中发挥了重要作用,但数据安全和隐私保护成为重要挑战。私有化大模型通过将模型部署在企业内部,实现数据本地化处理和定制化应用,既防止数据泄露,又提升模型精准度和效率。例如,耸智科技提供的私有化解决方案,帮助企业构建基于专用数据的垂直大模型,确保数据安全并实现个性化调优。私有化大模型不仅提高了数据安全性,还在效能上显著提升,为企业智能化发展提供新机遇。
44 2
|
存储 对象存储 数据安全/隐私保护
借助阿里云,Wyingo如何让海淘之旅如丝绸般顺滑
为了积累高质量私域流量, Wyingo株式会社部署了独立站网店,给客户提供日本产品在线交易。因为业务规模持续发展壮大,网店访问量、交易量随之水涨船高。为了更好地打理店铺,Wyingo株式会社在通过前期的咨询与考察后,采用了阿里云的产品对象存储OSS。
561 0
借助阿里云,Wyingo如何让海淘之旅如丝绸般顺滑
|
存储 SQL 分布式计算
揭秘双11丝滑般剁手之路背后的网络监控技术
本篇将重点介绍Hologres在阿里巴巴网络监控部门成功替换Druid的最佳实践,并助力双11实时网络监控大盘毫秒级响应。
10991 0
揭秘双11丝滑般剁手之路背后的网络监控技术
|
人工智能 供应链 前端开发
5G手机赛场迎来搅局者:价格不是一切,用户需求才是重点!
如果让李佳琦选择一款5G手机带货,他会选择vivoX30。 网红主播并非来者不拒,在直播前他们会进行最关键的工作——选择商品。只有亲身体验过的好商品才更易推荐,而购买后消费者的正向反馈会进一步提高网红的口碑和用户黏性,这就是最红主播的诀窍。 而最新发布的vivoX30,符合带货王的所有要素。
181 0
|
人工智能 运维 监控
阿里云启用五大超级数据中心支撑双11 :“剁手”体验丝般顺滑
今年双11阿里云超级数据中心放大招了,启用全球最大液冷数据中心支撑双11,液冷服务器、机器人巡逻。
49855 0
阿里云启用五大超级数据中心支撑双11 :“剁手”体验丝般顺滑
购物直播系统渗入生活点点滴滴,改变了我们的生活习惯
随着互联网的发展,人们的娱乐方式逐渐多样化,生活的点点滴滴都与互联网相关联,信息的传输的成本也越来越低,移动端用户增多,手机也成为了互联网的主力,购物直播系统的兴起也改变了我们的购物的方式。
购物直播系统渗入生活点点滴滴,改变了我们的生活习惯
|
双11 5G 数据可视化
媲美5G的Wifi网速、“备战”资产一键领……揭秘双11小二背后的保障力量
回溯双11历史,这背后也经历过“小米加步枪”的阶段:作战室从随处是网线,交换机放地上的“一地狼藉”;到如今媲美5G的wifi网速,到现场却看不到一根网线;从当年使用商用AP(无线路由器),让光明顶双11当天断网一分钟,到全部使用阿里自研AP……阿里巴巴企业智能事业部工程师们提供的基础保障也在不断升级。
1442 0
媲美5G的Wifi网速、“备战”资产一键领……揭秘双11小二背后的保障力量