变更、升级、备份与恢复
运维变更分为配置变更、凭证变更、流量变更、应用发布和数据恢复。风险不只来自代码发布;批量修改 Group 或账号同样可能全量中断。
变更记录
每次记录:目标、范围、操作者、时间、旧值、新值、验证请求、监控窗口、回退步骤和审批人。
风险分级
| 变更 | 风险 | 要求 |
|---|---|---|
| 单测试账号备注 | 低 | 保存后检查 |
| 单账号凭证/并发/Proxy | 中 | 摘流、测试、灰度恢复 |
| Group 模型/倍率/授权 | 高 | 导出、测试 Group、费用验收 |
| 批量账号/全局价格 | 高 | 分批、双人复核、可回退 |
| JWT/TOTP/DB/Redis | 极高 | 维护窗口、完整备份、恢复方案 |
| 应用升级/迁移 | 极高 | 预发布、数据库备份、版本回退评估 |
发布流程
- 阅读版本说明和 migrations。
- 在备份副本或预发布验证。
- 固定镜像 tag/digest,不使用不可追踪的 latest。
- 创建 PostgreSQL 逻辑备份和配置备份。
- 低峰发布,观察启动迁移和 job heartbeat。
- 验证登录、模型列表、非流式、流式、usage 和费用。
- 观察至少一个告警窗口。
数据库迁移通常是向前的;回退二进制不等于回退数据库。详细命令见升级、备份与迁移。
备份范围
- PostgreSQL:用户、账号凭证、Group、余额、用量、订单和配置。
.env/YAML:固定 Secret、端点和运行参数。- 反向代理和证书配置。
- 必要的本地媒体/上传目录。
- Redis 是否备份取决于你能接受丢失的运行时状态;数据库备份不能替代 Redis HA。
备份含上游 API Key/OAuth 和用户数据,必须加密、限制访问并异地保存。
恢复演练
恢复到隔离环境后验证:schema migration 状态、管理员登录、用户/Key/Group/Account 数量、历史用量、一个测试上游请求、JWT/TOTP Secret 一致性以及后台任务启动。
灾难恢复顺序
text
隔离故障写入
→ 保存日志和时间点
→ 决定恢复点/RPO
→ 新数据库或新主机恢复
→ 使用原固定 Secret 启动
→ 内网验收
→ 切流/DNS
→ 业务与计费核对不要直接在唯一生产库上试恢复命令。恢复后也不要立即开放全部流量,先用测试 Key 做合成验证。