老系统迁移方案怎么做提示词(绞杀者模式、双写、数据校验、灰度切流与回滚)

要把老系统替换成新系统(重写、换数据库、单体拆服务、换云厂商)又不能停服时用:让 AI 设计逐步替换的迁移路线,包括流量路由、数据同步、新旧结果比对、按比例切流和每一步的回滚方案,避免「一刀切」上线翻车。

NNathaniel bigo··原创首发·AI 辅助撰写
通用大模型 对话模型通用
你是一名主导过多次不停服迁移的架构师。请为下面的迁移设计详细方案。

- 迁移内容:[迁移内容](例:把老 PHP 订单系统迁到新的 Java 服务)
- 老系统现状:[架构、数据量、调用方]
- 新系统现状:[已完成的部分、未完成的部分]
- 业务约束:[业务约束](例:不能停服、大促期间冻结变更、必须保留历史数据)
- 可接受的风险:[可接受的风险](例:允许个别用户短时间看到旧数据、绝不能丢订单)

请按以下结构输出:
1. 迁移策略:说明为什么采用逐步替换(绞杀者模式)而不是一次性切换;如果我的情况其实更适合一次性切换(例如系统很小),直接说明。
2. 拆分迁移单元:把老系统的功能按依赖关系和风险切成若干块,给出迁移顺序(通常先迁读多写少、依赖少的功能),每块的完成标准。
3. 流量路由:在哪一层做路由(网关、反向代理、应用内开关),怎么做到按功能、按用户比例、按白名单切换。
4. 数据迁移与同步:
   - 存量数据迁移方式与校验方法(行数、金额汇总、抽样比对);
   - 迁移期间增量数据的同步方向(老写新读 → 双写 → 新写老读 → 只写新),每个阶段谁是数据的权威来源;
   - 双写失败时的处理(以哪边为准、如何补偿)。
5. 结果比对:在不影响用户的情况下,让新系统「影子运行」,比较新老系统对同一请求的结果,差异如何记录和分析。
6. 切流计划:每一步放量的比例、观察时长、观察指标、继续放量和回滚的判断条件。
7. 回滚方案:每个阶段分别怎么回滚、回滚后数据怎么处理;明确「越过这个点之后回滚代价变大」的节点。
8. 收尾:什么时候可以下线老系统、要清理的代码和数据。

输出一份阶段表:阶段 | 内容 | 前置条件 | 回滚方式 | 预计风险。

高亮处换成你自己的内容:[迁移内容]、[架构、数据量、调用方]、[已完成的部分、未完成的部分]、[业务约束]、[可接受的风险]

ChatGPT Plus 充值

已被复制 0 次

使用说明

怎么填变量:[可接受的风险] 写得越具体越好,它直接决定要不要双写、要不要影子比对。「绝不能丢订单」和「允许统计数据有几分钟延迟」需要完全不同的投入。[业务约束] 里的冻结期要写上,迁移计划要避开。

常见坑:

  • 双写阶段没有明确「谁是权威来源」,两边数据不一致时不知道该信哪边。每个阶段都要写清楚。
  • 没有做新老结果比对就直接切流,新系统在一些边缘场景(历史脏数据、特殊字符、时区)上的差异,上线后才被用户发现。
  • 切到 100% 后马上下线老系统,出了问题无路可退。老系统应该保持可用一段时间。

追问技巧:追问「在第 3 阶段双写期间,如果新系统的数据库宕机半小时,会发生什么、恢复后怎么补数据」,逐个阶段推演故障场景。

示例输出

示例,仅供参考(阶段表节选)
阶段内容前置条件回滚方式风险
1订单查询走新服务(只读,数据由老库同步)同步延迟小于 1 秒,比对差异率小于 0.01%网关路由切回老系统低
2新建订单双写,老系统为权威来源阶段 1 稳定运行 1 周关闭新系统写入中
3新系统为权威来源,老系统只接收同步双写比对 2 周无差异切回老系统为权威,补齐期间数据高(越过此点回滚代价变大)
4停止同步,老系统只读保留 30 天阶段 3 稳定 2 周恢复同步低

同款作品

用这条提示词做出来的作品;原作者会因此获得积分

做同款

还没有同款,来做第一个。

Nathaniel 的更多内容

同主题

同模型

0 条评论

登录 后参与评论

还没有评论,来抢沙发~