MG-02-014 切换计划
状态说明:以当前有效边界为准。供应执行规则与历史实现证据保留;客户身份、售价、结算、全量旧跨仓契约及图像开放计划不代表当前验收范围。
1. 原则
- 不迁移废弃 model-schedule 的代码、数据或任务;
- new-api 只作为配置、协议和 UI 参考;
- 不长期运行两套媒体调度;
- 新系统通过全部 P0 后一次切换新的图像和视频创建流量;
- 切换时不把已经提交的旧 Provider Task 迁移到新系统。
- 当前开发批次只完成新服务器 Docker Compose 验收与切换演练,不执行生产切流; 实际切换需要用户另行确认维护窗口。
2. 迁移内容
需要迁移或重建:
- Channel Base URL 和 Provider 类型;
- Provider Credential,由管理员重新安全录入;
- 当前上游模型清单;
- Public Model 名称和用户接口兼容;
- Supply 能力、价格、真人政策和并发;
- 客户组、用户和新 API Key;
- 对外域名、路径和响应兼容;
- 三个对象存储桶配置。
不自动迁移:
- 旧余额、充值、订单和支付数据;
- 聊天和文本模型配置;
- 旧 Priority、Weight、Group 和 Ability;
- 旧 VideoSupplyRoute;
- 旧运行中 Task;
- 废弃 model-schedule 任何数据。
new-api 中当前停用或自动停用的媒体 Channel 可以导入为 disabled Draft,用于保留 Provider、模型映射和历史状态,但不得自动启用或执行付费测试。
3. 配置导入
可以编写一次性只读导入工具读取 new-api 配置,但输出必须是 disabled Draft:
Channel Draft
Supply Draft
Public Model Draft不得直接启用。管理员逐项补充并验证:
- Credential;
- Provider 模型 ID;
- Request Profile;
- Capability;
- Cost Rule;
- 并发;
- 真人政策;
- 真实测试证据;
- Public Model Binding;
- Degradation Rule。
4. 用户和 Key
当前用户少,首版不要求兼容旧 Key:
- 在新系统重建用户和客户组;
- 创建新 Key;
- 让用户在测试域名验证真实请求;
- 冻结用户、模型和路径矩阵;
- 切换前确认所有用户已经保存新 Key。
如果最终要求保留旧 Key,必须单独设计安全迁移,不能从不可逆哈希恢复明文。
5. 预切换
- 完成全部 P0;
- 生产配置发布并签名;
- 所有 production_ready Supply 真实冒烟;
- 队列和 Worker 容量满足目标;
- 告警可达;
- 对象存储和内容交付通过;
- 域名、TLS、反向代理和回滚配置就绪;
- 旧系统当前异步任务数量已知;
- 建立旧 Task 查询保留期限。
6. 切换
- 短暂停止旧系统新的图像/视频创建;
- 记录旧系统非终态 Task 清单;
- 启动新网关全部生产角色;
- 执行内部健康、模型列表和管理 API 检查;
- 将图像/视频创建路径切到新系统;
- 执行一个同步图像、一个异步视频和一个任务查询冒烟;
- 恢复创建流量;
- 观察错误、队列、容量、成本、重试和降级;
- 旧系统只允许查询切换前 Task,禁止创建新 Task;
- 旧 Task 排空后归档旧媒体服务。
这是一次创建入口切换,不是让两个调度系统同时接收新请求。
7. 回滚
回滚只能改变“新请求进入哪里”,不能丢弃新系统已经提交的异步 Attempt。
触发条件:
- 鉴权或模型权限大面积错误;
- 同步图像持续失败;
- 异步任务无法创建或持续丢失;
- 重复 Provider 提交;
- Provider 成功但结果不可交付;
- Key、Credential 或用户数据泄漏;
- 成本护栏失效;
- 数据库或队列无法恢复。
步骤:
- 停止新系统接收新的媒体创建;
- 保持新系统 Poller/Result Worker 处理已提交 Attempt;
- 如果旧系统配置仍安全,恢复旧创建入口;
- 明确记录回滚边界时间;
- 两边 Task 分别由原系统查询;
- 修复后重新执行完整切换演练。
8. 切换验收
- 新请求只进入一个系统;
- 旧 Task 和新 Task ID 空间可区分;
- 所有用户的新 Key 真实通过;
- 图像同步响应保持兼容;
- 视频两种入口和状态查询兼容;
- 无重复 Provider 提交;
- 使用记录、输出和成本完整;
- Channel/Supply 告警工作;
- 回滚路径可执行;
- 旧系统最终不再提供图像/视频创建。