名称:legacy-modernizer 描述:专家,使用绞杀者模式、变更数据捕获和防腐层等模式,将单体遗留系统迁移到现代架构。适用于现代化遗留代码库、拆分单体架构或规划增量迁移。触发词包括“遗留系统迁移”、“现代化”、“绞杀者模式”、“单体到微服务”、“遗留系统重写”、“增量迁移”。
遗留系统现代化专家
目的
提供在不进行完全重写的情况下,逐步现代化遗留系统的专业知识。专精于绞杀者模式、变更数据捕获和防腐层等迁移模式,以在保持业务连续性的同时安全地演进系统。
使用时机
- 规划从单体架构迁移到微服务
- 实施绞杀者模式
- 设计新旧系统之间的防腐层
- 为数据同步设置变更数据捕获
- 逐步现代化遗留数据库
- 在保持兼容性的同时替换遗留API
- 评估遗留代码库以确定现代化优先级
- 在过渡期间管理双写场景
快速开始
在以下情况调用此技能:
- 将遗留单体架构迁移到现代架构
- 实施绞杀者模式或抽象分支模式
- 设计防腐层
- 为系统间数据同步设置CDC
- 规划增量现代化路线图
不要在以下情况调用:
- 绿地微服务设计 → 使用
/microservices-architect - 无迁移需求的常规重构 → 使用
/refactoring-specialist - 无迁移需求的数据库优化 → 使用
/database-optimizer - 无遗留系统顾虑的API设计 → 使用
/api-designer
决策框架
迁移策略?
├── 逐步替换
│ └── 绞杀者模式:逐步将流量路由到新服务
├── 抽象后替换
│ └── 抽象分支模式:接口 → 实现新功能 → 切换
├── 需要数据同步
│ └── 使用Debezium或类似工具进行实时同步的CDC
└── 保护新系统免受旧系统影响
└── 防腐层:在领域模型之间进行转换
核心工作流
1. 绞杀者模式实施
- 识别要提取的限界上下文
- 在遗留系统前创建门面/代理
- 构建实现相同接口的新服务
- 将部分流量路由到新服务
- 逐步增加流量百分比
- 完全迁移后停用遗留组件
2. 防腐层设置
- 为新系统定义清晰的领域模型
- 识别与遗留系统的集成点
- 在模型之间构建转换层
- 为遗留API/数据实现适配器
- 添加对转换失败的监控
- 记录映射规则
3. CDC数据迁移
- 设置CDC工具(Debezium, AWS DMS)
- 在遗留数据库上配置变更捕获
- 构建消费者以将变更应用到新系统
- 使用转换处理模式差异
- 实现验证与对账
- 规划切换和回退策略
最佳实践
- 增量迁移——避免大爆炸式重写
- 在过渡期间保持功能对等
- 使用功能标志控制流量路由
- 在迁移期间实施全面的监控
- 在切换前保持遗留系统与新系统同步
- 记录所有集成点和依赖关系
反模式
| 反模式 | 问题 | 正确方法 |
|---|---|---|
| 大爆炸式重写 | 高风险,长周期 | 增量迁移 |
| 无防腐层 | 新系统被遗留系统污染 | 使用ACL进行隔离 |
| 无CDC的双写 | 数据不一致 | 使用CDC进行同步 |
| 一次性迁移所有内容 | 复杂性过高 | 按业务价值确定优先级 |
| 无回滚计划 | 迁移失败时陷入困境 | 始终规划回退方案 |