什么时候需要这份清单
当产品准备进入第二个区域,或者现有区域的延迟、合规、成本出现问题时,用这份清单逐项核对。它不是“必须全部做到”,而是“每一项都要有明确结论”。
清单按决策顺序排列:先定区域与形态,再定数据与流量,最后定发布与运维。顺序颠倒会导致返工,例如先买机器再发现数据不能出境。
一、区域与形态
| 检查项 | 判断依据 | 验收方法 |
|---|---|---|
| 区域数量 | 玩家分布密度、延迟预算、合规要求 | 用真实延迟数据画分布图 |
| 每区域形态 | 全功能 / 仅接入 / 仅数据 | 在架构图上标注每个区域承担什么 |
| 赛区还是区域 | 是否需要跨区匹配、社交是否全球 | 列出跨区链路清单 |
| 可用区数量 | 故障域要求、成本 | 模拟单可用区故障 |
| 边缘加速 | 静态资源、登录入口 | 测量首包与登录耗时 |
| 回源路径 | CDN 到源站、跨区调用 | 画数据流图并标注延迟预算 |
| 成本上限 | 固定成本与单位经济 | 用附录 A 的容量表估算 |
判据:如果新增一个区域的固定成本无法被该区域的收入或体验收益覆盖,就不应该新增区域,而应该用延迟预算换成本。
二、延迟与流量
| 检查项 | 判断依据 | 验收方法 |
|---|---|---|
| 端到端预算 | 接入、区域间、存储各占多少 | 分三段测量 |
| 区域选择 | 客户端测速、DNS、登录下发 | 断网/弱网下的兜底 |
| 跨区调用白名单 | 哪些调用允许跨区 | 逐条列出并设超时 |
| 超时预算 | 跨区调用必须短于本地 | 注入延迟验证降级 |
| 路由失效 | DNS 故障、测速失败 | 强制走默认区域 |
| 流量切换 | 区域故障时切到哪 | 演练切换与回切 |
延迟预算要写进接口契约,而不是只写在架构文档里。没有超时的跨区调用,等于把两个区域的可用性绑在一起。
三、数据与合规
| 检查项 | 判断依据 | 验收方法 |
|---|---|---|
| 数据分类 | 账号、支付、行为、日志 | 对照附录 B 的分类表 |
| 驻留要求 | 每类数据允许存放的区域 | 数据流图逐条核对 |
| 跨境机制 | 脱敏、授权、白名单 | 抽样验证传输内容 |
| 账号归属 | 全球账号还是区域账号 | 跨区登录测试 |
| 删除传导 | 删除请求覆盖所有区域 | 真实删除请求残留检测 |
| 备份位置 | 备份是否跨区 | 检查备份存储区域 |
| 密钥管理 | 区域独立密钥 | 轮换与权限审计 |
四、容量与弹性
| 检查项 | 判断依据 | 验收方法 |
|---|---|---|
| 区域容量表 | 按附录 A 填写 | 每个区域单独一张 |
| 余量结构 | N+1、故障域、活动、发布 | 对应故障演练 |
| 扩容速度 | 冷启动与暖池 | 测量从触发到可用的时间 |
| 跨区扩容 | 能否借用其他区域容量 | 演练一次跨区调度 |
| 缩容策略 | 低峰排空 | 观察玩家影响 |
| 容量共享 | 哪些资源可跨产品共享 | 配额与隔离检查 |
五、发布与运维
| 检查项 | 判断依据 | 验收方法 |
|---|---|---|
| 发布顺序 | 先小区域后大区域 | 发布计划表 |
| 混版本窗口 | 最长对局、最长离线 | 兼容性测试 |
| 回滚路径 | 数据是否兼容旧版本 | 回滚演练 |
| 灰度维度 | 区域、渠道、玩家比例 | 放量与观察指标 |
| 监控覆盖 | 每区域独立指标 | 断网时告警是否仍可达 |
| 值班与升级 | 跨时区值班 | 演练一次夜间故障 |
| 日志汇聚 | 区域日志如何汇总 | 查询一条跨区链路 |
全球化之后,最容易被忽略的是运维时区。当事故发生在当地凌晨,而值班团队在另一个时区,故障发现与恢复时间会显著变长。值班表要按玩家分布设计,而不是按总部作息设计。
六、三款产品的部署形态对照
| 产品 | 形态 | 区域策略 | 主要代价 |
|---|---|---|---|
| 《裂隙战场》 | 多赛区 + 跨区匹配 | 按延迟划分赛区,活动期临时扩区 | 赛区越多,低峰利用率越低 |
| 《群岛纪元》 | 全球单世界 + 区域接入 | 世界状态集中,接入与日志区域化 | 跨区读写延迟与合规复杂度 |
| 《泡泡工坊》 | 单区域多可用区 | 一个主区域,边缘加速静态资源 | 远距离玩家延迟较高,但成本最低 |
三种形态没有优劣,只有约束匹配。判断标准是:产品的核心体验是否真的依赖低延迟;如果不依赖,多区域就是成本负担。
七、上线前的十个问题
- 新增区域能服务哪些玩家?他们的延迟改善了多少?
- 这个区域的固定成本,需要多少收入或留存提升才能覆盖?
- 哪些数据必须留在本区域?哪些可以汇总?
- 跨区调用有哪些?每条的超时与降级是什么?
- 区域故障时,玩家会被切到哪里?切换需要多久?
- 扩容从触发到可用需要多久?触发线留了足够提前量吗?
- 发布先发哪个区域?出问题如何只回滚一个区域?
- 监控与告警在每个区域都可用吗?值班覆盖当地凌晨吗?
- 删除请求如何到达这个区域?备份怎么处理?
- 如果一年后要关掉这个区域,玩家和数据怎么迁走?
最后一个问题经常被忽略。区域退出策略应该在进入时就写好,否则关服会变成一场事故。
八、常见错误
| 错误 | 后果 | 纠正 |
|---|---|---|
| 先部署再评估合规 | 可能整体返工 | 数据分类先行 |
| 所有区域全功能部署 | 固定成本高、利用率低 | 按需拆分接入/数据/玩法 |
| 跨区调用不设超时 | 故障跨区扩散 | 每条跨区链路设预算 |
| 假设全球玩家延迟相同 | 体验两极分化 | 按区域分别定预算 |
| 发布全球同时进行 | 一次事故影响所有玩家 | 分批、先小后大 |
| 监控只在主区域 | 区域故障不可见 | 每区域独立采集 |
| 没有区域退出方案 | 关服成本与风险高 | 进入时写退出计划 |
| 忽略当地支付与账号渠道 | 转化率低 | 本地化清单逐项确认 |
九、一页纸模板
产品:____ 目标区域:____ 上线日期:____
区域形态:全功能 ____ / 仅接入 ____ / 仅数据 ____
延迟预算:接入 ____ ms 区域间 ____ ms 存储 ____ ms
数据驻留:账号 ____ 支付 ____ 行为 ____ 日志 ____
跨境机制:____ 删除传导:____
容量:峰值 ____ 余量结构:____ 扩容耗时 ____ 秒
发布:顺序 ____ 灰度维度 ____ 回滚路径 ____
监控:区域指标 ____ 值班覆盖 ____ 告警通道 ____
成本:固定成本 ____ 单位经济 ____ 覆盖所需规模 ____
退出方案:数据迁移 ____ 玩家通知 ____ 截止日期 ____
全球化不是把服务器搬到更多地方,而是让每个新增区域都有明确的收益、明确的代价和明确的退出方式。清单填完,如果有一项答不上来,就先不要开这个区域。
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。