项目背景:
客户先后收购两家贷款平台,各自拥有独立的佣金处理系统。两套系统上游系统不统一、数据模型重叠、佣金计算规则差异巨大、报表逻辑不一致。无集中日志管理和告警系统,手动部署(文件替换) ,充满 Vulnerability 报警,每月需 2 名工程师 14×7 待命支持。任何计算错误都可能造成对用户的错误付款,引发公司声誉损失。
核心难点:
- 上游系统不统一,但上游数据存在 overlap
- 佣金领域模型差异大,计算规则差异巨大
- 报表逻辑不一致,无法直接对比
- 随意改动可能影响实际用户付款,造成声誉损失
- 需平滑迁移,前后数据对比确保零差错
旧系统技术栈:
- MS Access / VBA + .NET Framework 4.5.2 + Teleric UI
- 无集中日志/告警
- 手动本地服务器部署
- 充满安全漏洞
- 排查问题极其困难
- 月均2人14×7支持
我的角色:
Engineering Manager & Tech Lead
迁移策略:
- 领域模型重构:与业务分析师重新梳理佣金领域知识,引入防腐层(ACL)和新领域模型,实现业务引流与新旧系统并行运行。
- 绞杀者模式:拆分老旧模块,通过 Strangler Fig Pattern 逐模块在线替换,不影响现有业务处理。
- 通用规则引擎:设计并开发可配置佣金计算规则引擎,以灵活声明式配置替代硬编码,避免未来代码级修改。
- 报表对比工具:开发自动化报表对比工具,确保老系统和新系统报表数据一致性,增强利益相关方对迁移的信心。
- 质量保障:集成业务场景的单元测试和集成测试,确保重构/重写不破坏原有业务功能,同步生成业务说明文档作为领域知识库。
量化结果:
- 运维成本降低 43%($107K → $61K USD/月)
- 零生产事故:1年内完成6+模块迁移,全程无故障
- 部署时间:手动2小时 → 自动化15分钟
- 业务结算时间:30小时 → 5小时/月
- 实时告警:Splunk + PagerDuty 线上问题第一时间发现
- 获客户"优秀项目奖"及"年度技术杰出个人奖"
个人收获:
- 具备独立分析中型遗留系统业务、技术架构、代码逻辑的能力
- 具备独立设计遗留系统现代化迁移方案的完整方法论
- 具备核心重难点模块开发与关键技术决策能力
- 具备带领工程团队实施遗留系统现代化交付的管理能力