Legacy Modernizer 是一个面向遗留系统现代化改造的技能,其定位是提供增量式迁移的专业能力,而非一次性整体重写,目标是在系统演进过程中维持业务连续性。
用途方面,该技能用于处理单体或遗留系统向现代架构迁移的各类任务,涵盖从规划到实施的多个环节。它强调以渐进方式完成迁移,降低改造风险。
主要能力围绕几种迁移模式展开:Strangler Fig(绞杀者模式)用于将流量逐步路由到新服务;Change Data Capture(CDC)用于在新旧系统之间实时同步数据;Anti-Corruption Layer(防腐层)用于隔离新旧领域模型,避免遗留系统污染新系统。此外还涉及 Branch by Abstraction、双写场景管理、遗留数据库增量现代化、遗留 API 兼容替换以及遗留代码库的现代化优先级评估。
使用方式上,该技能通过决策框架引导选择迁移策略:如果选择增量替换,则采用 Strangler Fig 逐步引流;如果选择抽象替换,则采用 Branch by Abstraction,先定义接口、再实现新逻辑、最后切换;如果需要数据同步,则使用 Debezium 或类似工具进行 CDC 实时同步;如果需要保护新系统免受旧系统影响,则建立防腐层在领域之间进行转换。核心工作流包括三类:一是 Strangler Fig 实施,即识别限界上下文、在遗留系统前创建外观/代理、构建实现相同接口的新服务、将部分流量路由到新服务、逐步提高流量比例、完全迁移后退役遗留组件;二是防腐层搭建,即定义新系统的干净领域模型、识别与遗留系统的集成点、在模型之间构建转换层、为遗留 API/数据实现适配器、为转换失败添加监控、记录映射规则;三是 CDC 数据迁移,即设置 CDC 工具(如 Debezium、AWS DMS)、在遗留数据库上配置变更捕获、构建消费者将变更应用到新系统、处理模式差异并做转换、实施验证与对账、规划切换与回退策略。
适用场景包括:从单体迁移到微服务的规划;实现 Strangler Fig 模式;在新旧系统之间设计防腐层;设置 CDC 进行数据同步;增量现代化遗留数据库;在保持兼容性的同时替换遗留 API;评估遗留代码库的现代化优先级;管理过渡期间的双写场景。
限制方面,该技能不适用于没有遗留问题的全新微服务设计、没有迁移需求的一般重构、没有迁移需求的数据库优化,以及不涉及遗留问题的 API 设计。资料中还给出了最佳实践与反模式:最佳实践主张增量迁移、过渡期保持功能对等、使用功能开关控制流量路由、迁移期间实施全面监控、切换前保持新旧系统同步、记录所有集成点和依赖;反模式则指出大爆炸式重写风险高且周期长,缺少防腐层会使新系统被遗留系统污染,无 CDC 的双写会导致数据不一致,一次性迁移全部会带来过高复杂度,缺少回滚计划会在迁移失败时陷入困境。