104 行
3.2 KiB
Markdown
104 行
3.2 KiB
Markdown
# 规范-多环境与灾难恢复
|
||
|
||
> **位置**: `docs/开发规范/规范-多环境与灾难恢复.md`
|
||
> **版本**: v1.0
|
||
> **日期**: 2026-07-08
|
||
> **关联**: AGENTS.md、TDD-00(技术栈方案)、TDD-03(开服自动化)
|
||
|
||
---
|
||
|
||
## 1. 环境定义
|
||
|
||
| 环境 | 用途 | 数据 | 暴露范围 |
|
||
|------|------|------|----------|
|
||
| **dev** | 开发调试 | 本地/测试数据 | 开发机/局域网 |
|
||
| **staging** | 预发布测试 | 生产脱敏副本 | 内网 + VPN |
|
||
| **prod** | 生产环境 | 真实玩家数据 | 公网 |
|
||
|
||
### 1.1 环境配置分离
|
||
|
||
```
|
||
docker-compose.dev.yml → 开发环境(热重载、调试端口开放、日志详细)
|
||
docker-compose.staging.yml → 预发布(数据隔离、全功能测试、性能监控)
|
||
docker-compose.prod.yml → 生产环境(最小化暴露、高可用、限流严格)
|
||
```
|
||
|
||
- 生产配置(密码/密钥)**禁止提交到 git**,走环境变量或密钥管理服务(AWS Secrets Manager / HashiCorp Vault)
|
||
- Staging 数据定期从生产脱敏同步(用于真实压力测试)
|
||
|
||
---
|
||
|
||
## 2. 部署策略
|
||
|
||
### 2.1 蓝绿部署
|
||
|
||
```
|
||
[流量 100%] → 蓝环境(当前版本 v1.2.3)
|
||
↓ 发版
|
||
[流量 0%] → 绿环境(新版本 v1.3.0)← 验证通过
|
||
↓ 切换
|
||
[流量 100%] → 绿环境(v1.3.0)
|
||
[流量 0%] → 蓝环境(待命,可秒级回切)
|
||
```
|
||
|
||
| 规则 | 说明 |
|
||
|------|------|
|
||
| 蓝绿双活 | 生产环境两套实例,发版时切换流量 |
|
||
| 验证窗口 | 切流量前运行冒烟测试(5 分钟) |
|
||
| 秒级回切 | 发现问题立即切回旧版本 |
|
||
| 会话保持 | 切换时在线玩家不中断(Nakama 支持) |
|
||
|
||
### 2.2 金丝雀发布(可选)
|
||
|
||
- 先给 5% 玩家发新版,监控 30 分钟无异常后全量
|
||
- 用于高风险更新(如战斗公式调整)
|
||
|
||
---
|
||
|
||
## 3. 灾难恢复
|
||
|
||
### 3.1 回滚机制
|
||
|
||
| 场景 | 回滚方式 | 时间 |
|
||
|------|----------|------|
|
||
| 代码 bug | 蓝绿切流量 | < 30 秒 |
|
||
| 数据库错误 | 执行 migration down 脚本 | < 5 分钟 |
|
||
| 配置错误 | Nacos 热更回滚 | < 10 秒 |
|
||
| 热更问题 | 热更包一键回滚 | < 1 分钟 |
|
||
| 全服宕机 | 切换备用集群 | < 2 分钟 |
|
||
|
||
### 3.2 数据库恢复
|
||
|
||
- **全量备份**: 每日 04:00 自动执行,保留 30 天
|
||
- **增量备份**: 每小时 WAL 归档,保留 7 天
|
||
- **时间点恢复(PITR)**: 可恢复到任意时间点(精度 ±5 分钟)
|
||
- **恢复演练**: 每季度执行一次灾难恢复演练
|
||
|
||
### 3.3 事故处理流程
|
||
|
||
```
|
||
1. 发现事故 → 立即在运维群告警
|
||
2. 判断影响范围 → 决定回滚/热修/降级
|
||
3. 执行恢复 → 验证恢复成功
|
||
4. 写事故复盘 → 存入 docs/事故复盘/YYYY-MM-DD-标题.md
|
||
5. 复盘内容:原因/影响/修复过程/预防措施/Action Items
|
||
```
|
||
|
||
---
|
||
|
||
## 4. 高可用要求
|
||
|
||
| 组件 | 高可用策略 | RTO | RPO |
|
||
|------|-----------|-----|-----|
|
||
| 游戏服 | 多实例 + 负载均衡 | < 2min | 0 |
|
||
| 数据库 | 主从 + 自动故障转移 | < 5min | < 1min |
|
||
| 缓存 | Valkey Cluster | < 1min | < 1min |
|
||
| 配置中心 | Nacos 集群 | < 1min | 0 |
|
||
| CDN | 多厂商备份 | < 5min | 0 |
|
||
|
||
---
|
||
|
||
## 5. 版本记录
|
||
|
||
- **v1.0**(2026-07-08): 初始版本,覆盖环境定义、蓝绿部署、灾难恢复、高可用
|