欢乐游戏工作室架构演进与网格化实践总结
背景介绍
欢乐游戏工作室旗下拥有欢乐斗地主、欢乐麻将等国民棋牌游戏,并研发 MMO 大世界、SLG 等多种品类游戏。原有架构为全区全服的分布式微服务架构,包括存储层、中转层、业务层和接入层,支撑百万级在线和千万级 DAU,运行近十年,但面临服务治理能力不足、运维成本高、巨量微服务维护困难、开发框架成熟度低、流量调度能力简陋、组织架构分拆引发问题、不合理的进程部署模型、运维乏力、缺乏服务可观测能力等问题。
架构演进过程
新增无状态服务网格化部署
- 通过 Istio 实现网格化部署,新增无状态服务可快速享受 K8s 和 Istio 的服务部署管理和服务治理能力。
- 利用消息中转服实现存量无状态服务的平滑迁移,采用 gRPC 适配和灰度流量策略。
接入网关改造
- 将接入网关直接部署在网格中,但发现时延略微改善,性能未解决,开发成本高。
- 使用 Envoy 支持私有协议接入,实现性能和时延效果改善明显。
GameSvr 架构改造
- 针对有状态服务 GameSvr,优化部署能力、智能自动伸缩、单局调度,实现服务运维繁琐且低效问题的解决。
存量 Apache CGI 网格化
- 根据流量大小实施不同改造方案,头部流量协程化改造,长尾流量整体 CGI 打包镜像,提升吞吐能力并减少资源开销。
SideCar 性能优化
- 解决 SideCar 内存占用过高问题,通过限制服务可见性、优化一致性 Hash 算法、设置合理的监听端口,内存占用减少 70%。
- 解决 SideCar CPU 开销问题,通过减少协议栈开销、减少编码次数,使用 Aeraki 支持私有协议对接 SideCar,性能提升明显。
核心成效总结
- 服务治理能力与可观测性提升:通过 Istio 实现强大的服务治理能力,支持流量控制、故障注入和安全策略,同时提高可观测性,包括监控、追踪和日志。
- DevOps 能力提升:通过自动化和标准化的服务网格和定制化 Controller,降低人工干预,显著提高 DevOps 效率和研运一体化,实现快速迭代和故障排查。
- 资源成本降低:资源利用率峰值从 15% 左右提升至 55% 左右,资源使用量减少 60%,每年节省数百万元资源成本。
- 架构和技术升级:通过网格化重构业务系统,实现微服务架构和团队技能的全面提升,融入技术社区,实现技术的快速迭代更新。
研究结论
通过细致分析和改造,欢乐游戏工作室成功完成整体架构的平稳平滑上云以及网格化,提升资源利用率,提高研运效率,沉淀游戏各类业务场景上云经验,为复杂游戏业务架构的现代化升级提供了实践参考。