1. 背景
华清飞扬新游是一款非正经异能学院冒险卡牌养成游戏,游戏服务基于腾讯云 CLB、WAF、TKE、MongoDB、Redis 等产品构建。在新游业务即将上线之际,华清飞扬联合腾讯云售后服务专家团队,通过云顾问产品实现了云上架构的可视化并进行了核心业务的可用性混沌演练,助力系统稳定性提升。
2. 面临挑战
华清飞扬对产品的稳定性有着高要求。随着游戏业务的不断扩展,系统复杂度不断上升,生产故障逐步多样化。这些故障随时可能导致游戏中断、数据丢失和性能下降,对玩家体验造成严重负面影响,进而导致游戏运营遭受经济损失。华清飞扬用云过程中面临如下挑战:
云架构管理的问题与需求
华清飞扬在云上运维排障时,需要有清晰的架构图作为支撑。然而,当前的云上架构信息分散在运维各自的经验库中,缺乏统一的专业平台来整合和展示这些信息。用户期望能够通过平台,实现各环节角色信息的对齐,并直观地展示云产品的可用性和容量隐患风险,以便进行高效的治理。
验证容器集群稳定性的挑战
华清飞扬基于腾讯云 TKE 构建了游戏应用的容器集群,承载着游戏的核心业务,因此对容器集群的稳定性有着高要求。然而,现网容器集群存在多种故障场景,用户无法通过真实故障来验证容器集群及其应用的表现,因此迫切希望通过混沌演练来验证架构的稳定性和可靠性。
3. 解决方案
3.1 使用云顾问-云架构进行架构可视化管理
通过云顾问-云架构提供的架构可视化功能,进行业务架构图绘制,将客户的业务系统架构线上化,一目了然地清晰呈现各个业务子模块之间的关系。并且通过云资源与架构图中各个节点资源的精准绑定,使客户清晰地掌握每一个节点的实际资源部署状况,洞察各云产品间的依赖关系,从而确保资源管理的高效性。与此同时,客户还可以利用云顾问-云巡检对业务架构中的可用性隐患进行一键扫描和治理,为后续的混沌演练提供支撑条件。新游业务-云架构图如下所示:
![](https://qcloudimg.tencent-cloud.cn/image/document/b9f7a3951f6c6ac51ff0cc1810c2ec6f.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/b9f7a3951f6c6ac51ff0cc1810c2ec6f.png)
3.2 使用云顾问-混沌演练进行故障演练
通过云顾问-混沌演练提供的故障注入演练功能,主动向系统引入软硬件异常状态或扰动,制造故障场景,并根据系统在各种压力下的行为表现来验证系统可用性,并进一步制定优化策略。
3.2.1 确定演练目标
1. 检验业务的弹性能力:验证在故障时,游戏主程是否能在预期2分钟内,基于容器的弹性能力,快速恢复主程业务,确保整个游戏服持续提供服务。
2. 云产品故障快速恢复能力:检验业务架构在发生故障时是否能在15分钟内实现资源切换和故障恢复,以满足玩家对高稳定性的要求。
3. 检验业务监控的有效性:如资源监控、业务指标监控的覆盖度是否全面;检验业务告警触达的及时性、应急预案的有效性以及相关人员的应急处理能力。
3.2.2 制定演练计划
云顾问-混沌演练计划全流程如下图所示:
![](https://qcloudimg.tencent-cloud.cn/image/document/a38fcc79b1cdef5975a040141f3bfcae.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/a38fcc79b1cdef5975a040141f3bfcae.png)
3.2.3 演练场景编排
本次混沌演练主要针对华清飞扬核心业务进行故障场景演练。在此次演练之前,华清飞扬业务运维团队联合腾讯云售后服务专家,精心挑选涵盖应用层和数据层的故障演练方案。该方案包括多产品的故障场景,旨在通过故障场景的组合演练,全面掌握系统的稳定性和可靠性情况,为业务的持续稳定运行提供坚实保障。故障演练场景方案如下表所示:
应用层 | 模拟 TKE 环境下的 CPU 利用率高、内存利用率高、Node 关机、网络丢包、进程停止、进程杀死、网络乱序、网络延迟等故障演练场景。 |
数据层 | 涉及 MySQL、Redis、MongoDB 等核心数据库,如验证主节点故障后,服务是否能自动切换,恢复时长是否符合预期等。 |
4. 方案实践
本次基于云顾问进行云架构可视化管理及混沌演练,云顾问-云架构功能提供基于可视化云架构的架构管理、架构巡检、架构节点容量监测及混沌演练等功能;云顾问-混沌演练功能支持用户快捷创建演练任务,对接入层、逻辑层、数据层等百余种故障场景动作进行灵活编排,并提供大规模实例的并行故障注入和监控观测功能,结合云架构良好的可视化界面,确保用户能更直观地操作演练流程,精准控制爆炸半径,保障业务安全。混沌演练具体实施如下:
4.1 创建混沌演练任务
根据演练方案,在云顾问-混沌演练上提前创建演练任务,主要完成演练对象实例范围选取、故障场景动作的编排、添加业务稳态监控指标等。如下图所示:
![](https://qcloudimg.tencent-cloud.cn/image/document/eaaae656b45ffd05edd0abe8ebe2275a.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/eaaae656b45ffd05edd0abe8ebe2275a.png)
目前产品提供100余种故障原子动作,支持用户在一次演练任务中对故障原子动作进行灵活的串行、并行组合编排,满足用户多样化的演练需求。
![](https://qcloudimg.tencent-cloud.cn/image/document/a12ba70708beac0114cc7cf1e4667d87.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/a12ba70708beac0114cc7cf1e4667d87.png)
4.2 执行故障注入
在故障动作执行过程中,可以切换至“可视化视图”,实时查看故障动作执行状态(成功/失败/执行中)和注入效果,演练进度一目了然。故障注入与恢复如下图所示:
![](https://qcloudimg.tencent-cloud.cn/image/document/25f057ab6e0a3e468cec94ae894f7f37.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/25f057ab6e0a3e468cec94ae894f7f37.png)
4.3 效果观测
在使用云顾问进行混沌演练的过程中,业务团队需要同步业务受损与恢复情况,同时运维团队需观察多类监控告警情况,以此判断演练效果。演练效果可能来自 IaaS 层的基础云资源监控指标,例如 CPU 利用率等,也可能是 QPS、延迟、在线用户人数等业务指标。例如,在进行 “Node 关机” 故障场景模拟时,演练效果的观测过程如下所示:
执行故障注入后:Node 节点关机后,Pod 重启时间较长,无法按预期的时间成功拉起 Pod。如下图所示:
![](https://qcloudimg.tencent-cloud.cn/image/document/2ed1531a6f2fd9df53d6effb92d44af4.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/2ed1531a6f2fd9df53d6effb92d44af4.png)
问题分析:此过程中发现游戏业务无法正常启动,经业务团队核查是游戏主程无法为其他组件服务正确分配 ID,导致整个游戏无法正常进入。
![](https://qcloudimg.tencent-cloud.cn/image/document/26dc3a87f45607243b6931ba2386f8cf.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/26dc3a87f45607243b6931ba2386f8cf.png)
问题记录和改进方案:最终通过手动方式恢复游戏主程业务,核心游戏服恢复,同时业务团队也意识到游戏主程业务处理需进一步优化,来规避此风险。
5. 客户收益
华清飞扬通过本次业务稳定性提升实践,对核心业务系统的可用性进行了验证,客户主要取得了以下收益:
1. 云架构风险一站式治理
云架构可视化:实现云资源与业务架构的清晰呈现,并可经由资源快捷绑定便捷的通过节点精准定位云资源,促进团队间的协作与信息共享。
一站式风险治理:利用云巡检和监测功能,有效识别云上架构和业务中的潜在风险,业务健康度提升约20%,同时简化一站式风险治理操作流程,提升操作效率。
2. 云上业务系统可用性提升
业务可用性评估:通过故障演练发现问题,使业务团队提升问题处理能力,增强了对业务服务的信心。
主动发现潜在隐患问题:业务团队通过演练发现了潜在的可用性隐患问题,并提前治理,有效规避了现网风险。
验证系统可观测能力:验证了系统监控指标及告警触达的及时性和有效性。
完善故障应急预案:业务团队对混沌演练流程的掌握程度提高,提升了组织人员在面对紧急情况时的处理能力。