SuperAPI AI 工具集

framework-migration-legacy-modernize

部署与运维

查看项目

更新于 10-16 10:10

技能介绍

用途

该技能用于编排一次完整的遗留系统现代化改造工作流,采用“绞杀者无花果模式”(strangler fig pattern)。该模式以逐渐包裹并替换宿主的无花果树命名,被视为风险管理式遗留现代化的黄金标准:新功能逐步替换旧组件,允许新旧两套系统在过渡期间共存。工作流通过协调评估、测试、安全、实施等环节的专职智能体,确保每个迁移阶段在推进前完成验证,在最大限度减少干扰的同时提升现代化速度。

适用场景:处理遗留代码现代化工作流任务;需要该工作流的指导、最佳实践或检查清单时。不适用场景:任务与遗留代码现代化工作流无关;需要该范围之外的其它领域或工具。

主要能力与工作流阶段

阶段一:遗留系统评估与风险分析

  1. 全面遗留系统分析:使用 Task 工具,subagent_type="legacy-modernizer",分析位于 $ARGUMENTS 的遗留代码库,记录技术债务清单(过时依赖、废弃 API、安全漏洞、性能瓶颈、架构反模式),生成现代化就绪报告,包含组件复杂度评分(1-10)、依赖映射与数据库耦合分析,识别快速见效项与复杂重构目标。
  2. 依赖与集成映射:使用 subagent_type="architect-review",基于评估报告创建完整依赖图,展示内部模块依赖、外部服务集成、共享数据库模式与跨系统数据流,识别迁移中需要门面模式或适配器层的集成点,标出需要解决的循环依赖与紧耦合。
  3. 业务影响与风险评估:使用 subagent_type="business-analytics::business-analyst",评估各组件现代化的业务影响,创建风险矩阵(业务关键性/收入影响、用户流量模式、数据敏感性、监管要求、回退复杂度),采用加权评分排序:(业务价值 × 0.4) + (技术风险 × 0.3) + (快速见效潜力 × 0.3),并为每个组件定义回滚策略。

阶段二:测试覆盖建立

  1. 遗留代码测试覆盖分析:使用 subagent_type="unit-testing::test-automator",分析现有测试覆盖,找出未测试代码路径、缺失的集成测试与端到端场景;对覆盖率低于 40% 的组件生成表征测试(characterization tests),在不修改功能的前提下捕获当前行为,创建安全重构的测试夹具。
  2. 契约测试实施:使用同一测试自动化代理,为依赖映射中识别的所有集成点实施契约测试,为 API、消息队列交互和数据库模式创建消费者驱动契约,在 CI/CD 流水线中设置契约验证,为响应时间与吞吐量生成性能基线以验证现代化组件维持 SLA。
  3. 测试数据管理策略:使用 subagent_type="data-engineering::data-engineer",为并行系统运行设计测试数据管理策略,创建边界情况数据生成脚本,对敏感信息实施数据脱敏,建立测试数据库刷新流程,并为迁移期间遗留与现代化组件间的数据一致性设置监控。

阶段三:增量迁移实施

  1. 绞杀者模式基础设施搭建:使用 subagent_type="backend-development::backend-architect",实现带 API 网关的绞杀者基础设施用于流量路由,通过环境变量或特性管理服务配置特性开关以渐进式发布,基于 URL 模式、请求头或用户分段设置代理层路由规则,实现熔断与回退机制,创建双系统可观测性仪表盘。
  2. 组件现代化-第一波:使用 subagent_type="python-development::python-pro" 或 "golang-pro"(取决于目标技术栈),对评估中识别的快速见效组件进行现代化:从遗留代码提取业务逻辑,采用现代化模式(依赖注入、SOLID 原则)实现,通过适配器模式确保向后兼容,以事件溯源或双写维持数据一致性,遵循 12 要素应用原则。
  3. 安全加固:使用 subagent_type="security-scanning::security-auditor",审计现代化组件的安全漏洞,实施 OAuth 2.0/JWT 认证、基于角色的访问控制、输入验证与净化、SQL 注入防护、XSS 防护与密钥管理,验证 OWASP Top 10 合规,配置安全响应头并实施速率限制。

阶段四:性能验证与优化

  1. 性能测试与优化:使用 subagent_type="application-performance::performance-engineer",对比遗留与现代化组件进行性能测试,运行模拟生产流量模式的负载测试,测量响应时间、吞吐量与资源利用率,识别性能回退并优化数据库查询索引、缓存策略(Redis/Memcached)、连接池与异步处理,对照 SLA 要求进行验证。
  2. 渐进式发布与监控:使用 subagent_type="deployment-strategies::deployment-engineer",通过特性开关实施渐进式发布,先将 5% 流量导向现代化组件,监控错误率、延迟与业务指标,定义自动回滚触发条件(错误率 >1%、延迟 >基线 2 倍或业务指标下降),制定流量切换运行手册:5% → 25% → 50% → 100%,每阶段设 24 小时观察期。

阶段五:迁移完成与文档

  1. 遗留组件退役:使用 subagent_type="legacy-modernizer",规划被替换遗留组件的安全退役,通过流量分析验证无剩余依赖(0% 流量至少 30 天),归档遗留代码并记录原始功能,更新 CI/CD 流水线移除遗留构建,清理未使用数据库表并移除废弃 API 端点,为保留的遗留组件记录下线时间表。
  2. 文档与知识转移:使用 subagent_type="documentation-generation::docs-architect",创建完整现代化文档,包括架构图(前后对比)、带迁移指南的 API 文档、双系统运行手册、常见问题排查指南与经验总结报告,生成现代化系统的开发者入门指南,记录迁移中的技术决策与权衡。

配置选项

  • --parallel-systems:两套系统无限期同时运行(用于渐进式迁移)
  • --big-bang:验证后全量切换(风险更高、完成更快)
  • --by-feature:按完整功能而非技术组件迁移
  • --database-first:优先现代化数据库,再处理应用层
  • --api-first:在保留遗留后端的同时现代化 API 层

成功标准

  • 所有高优先级组件完成现代化,测试覆盖率 >80%
  • 迁移期间零计划外停机
  • 性能指标维持或改善(P95 延迟在基线 110% 以内)
  • 安全漏洞减少 >90%
  • 技术债务评分改善 >60%
  • 迁移后稳定运行 30 天且无回滚
  • 完整文档支持新开发者在一周内完成入门

使用方式

先澄清目标、约束与所需输入,应用相关最佳实践并验证结果,提供可执行步骤与验证。在涉及具体代码库时,工作流以 $ARGUMENTS 作为目标代码库的占位符。

限制

本技能是针对特定工作流的编排指引,资料未提供可执行代码、独立安装命令或额外平台要求;各项能力依赖相应 subagent_type 智能体的可用性。