关于 legacy-modernizer
面向遗留系统现代化工作的技能,帮助团队在不中断业务的情况下逐步迁移,而非整体重写。内容涵盖流量切换、系统隔离和数据同步等迁移模式。
主要功能
- 01规划渐进式迁移路线
- 02应用 Strangler Fig 与抽象替换模式
- 03设计反腐层以隔离领域模型
- 04使用 CDC 同步迁移数据
- 05评估改造优先级并规划回退
适用场景
- 01将单体系统逐步拆分为微服务
- 02在新旧系统间保持数据同步
- 03替换遗留 API 并维持兼容
- 04管理迁移期间的双写与流量切换
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ 404kidwiz/ claude-supercode-skills --skill legacy-modernizer安装后在 Claude Code 中输入/legacy-modernizer确认已加载。
详细介绍
遗留系统现代化
目的
提供逐步实现遗留系统现代化的专业知识,无需彻底重写。专注于绞杀者模式、变更数据捕获(CDC)和防腐层等迁移模式,在保持业务连续性的同时安全地演进系统。
适用场景
- 规划从单体架构迁移到微服务
- 实施绞杀者模式
- 设计新旧系统之间的防腐层
- 设置变更数据捕获,以实现数据同步
- 逐步实现遗留数据库现代化
- 在保持兼容性的同时替换遗留 API
- 评估遗留代码库,确定现代化优先级
- 管理迁移期间的双写场景
快速入门
在以下情况下调用此技能:
- 将遗留单体系统迁移到现代架构
- 实施绞杀者模式或抽象分支模式
- 设计防腐层
- 设置 CDC,实现系统间的数据同步
- 规划渐进式现代化路线图
请勿在以下情况下调用:
- 全新微服务设计 → 使用
/microservices-architect - 不涉及迁移的一般重构 → 使用
/refactoring-specialist - 不涉及迁移的数据库优化 → 使用
/database-optimizer - 不涉及遗留系统的 API 设计 → 使用
/api-designer
决策框架
Migration Strategy?
├── Replace Incrementally
│ └── Strangler Fig: Route traffic to new service gradually
├── Abstract and Replace
│ └── Branch by Abstraction: Interface → implement new → switch
├── Data Sync Required
│ └── CDC with Debezium/similar for real-time sync
└── Protect New from Old
└── Anti-Corruption Layer: Translate between domains
核心工作流
1. 实施绞杀者模式
- 确定要提取的有界上下文
- 在遗留系统前创建门面/代理
- 构建实现相同接口的新服务
- 将部分流量路由到新服务
- 逐步提高流量占比
- 完成迁移后停用遗留组件
2. 设置防腐层
- 为新系统定义清晰的领域模型
- 确定与遗留系统的集成点
- 在模型之间构建转换层
- 为遗留 API/数据实现适配器
- 添加转换失败监控
- 记录映射规则
3. CDC 数据迁移
- 设置 CDC 工具(Debezium、AWS DMS)
- 在遗留数据库上配置变更捕获
- 构建使用者,将变更应用到新系统
- 通过转换处理架构差异
- 实施验证与协调机制
- 规划切换和回退策略
最佳实践
- 逐步迁移,避免一次性彻底重写
- 在迁移期间保持功能对等
- 使用功能标志控制流量路由
- 在迁移期间实施全面监控
- 在切换前保持遗留系统与新系统同步
- 记录所有集成点和依赖关系
反模式
| 反模式 | 问题 | 正确做法 |
|---|---|---|
| 一次性彻底重写 | 风险高、周期长 | 渐进式迁移 |
| 没有防腐层 | 新系统受到遗留系统的污染 | 使用 ACL 隔离 |
| 不使用 CDC 进行双写 | 数据不一致 | 使用 CDC 进行同步 |
| 一次性迁移所有内容 | 复杂度过高 | 按业务价值确定优先级 |
| 没有回滚计划 | 迁移失败时无法脱身 | 始终规划回退方案 |
评论
支持 Markdown