业务诉求
这是一款主打全球市场的 SLG 手游,玩法要求全球玩家在同一个世界里互动,不能按区域分服。这意味着无论玩家在东南亚、欧洲还是北美,都要访问同一套逻辑服。
两个硬约束:一是跨洲玩家的操作延迟必须可接受(策略类游戏对延迟要求不如 FPS 严苛,但超过 150ms 体验明显下降);二是游戏行业的毛利压力大,服务器成本必须压到极致。
全球同服架构
接入加速
边缘网关
逻辑主区
数据层
分析层
关键设计:网关部署在离玩家近的区域做协议卸载与连接保持,跨洲段走 AWS 骨干网而不是公网,这一步就把延迟降了约 40%。
成本怎么降 47%
游戏服务器的负载特征很适合 Spot:战斗服是短生命周期的,玩家匹配进来打完一局就销毁,中断影响可控。我们把战斗服 85% 放在 Spot 上,配合优雅退出与快速重调度。
逻辑服有状态,不能全放 Spot,采用 60% Spot + 40% 按需的混部,并用 Karpenter 自动挑当前最便宜的可用规格。同时把能跑 ARM 的服务迁到 Graviton,又省了一层。
- 战斗服 85% Spot:跨 8 种实例类型 + 3 个可用区分散,中断率低于 0.4%
- 逻辑服 60% Spot:capacity rebalance 提前迁移,玩家无感
- Graviton 覆盖 70% 的无状态服务,单价再降约 20%
- 基线容量用 Compute Savings Plans 覆盖,锁定三年价格
- 非生产环境全部定时启停,夜间与周末自动关闭
- 战斗服 Spot 占比85%
- Spot 中断率< 0.4%
- Graviton 覆盖70%
- 综合降本47%
延迟优化拆解
| 优化项 | 优化前 | 优化后 | 手段 |
|---|---|---|---|
| 东南亚 → 主区 | 142ms | 48ms | 新加坡网关就近接入 |
| 欧洲 → 主区 | 268ms | 89ms | 法兰克福网关 + 骨干网直连 |
| 北美 → 主区 | 196ms | 76ms | 弗吉尼亚网关 + Global Accelerator |
| 南美 → 主区 | 341ms | 118ms | 圣保罗网关 + 协议优化 |
| 资源下载首包 | 1.8s | 0.3s | CloudFront 全球缓存 |
延迟数字为 P95,测试时段覆盖各区域的晚间高峰。
最惊喜的是开服扩容。以前新区开服要提前一天准备机器,现在 Karpenter 四分钟就把容量拉起来。运营想什么时候开服就什么时候开。
技术栈
- Global Accelerator
- EKS
- Karpenter
- EC2 Spot
- Graviton
- DynamoDB Global Tables
- ElastiCache
- MSK
- GameLift
- CloudFront