背景:老系统要跑,新需求还在来
系统于 2024 年初正式运行,服务于水利行业人才培养,包含培训、考试、颁证等功能。系统承载真实业务,不能停机重写;但历史代码、慢查询、安全漏洞和并发问题又必须处理。
作为研发组长,目标不是“推倒重来”,而是在业务连续的前提下完成架构升级和质量治理。
核心难点
- 遗留系统:代码可读性差,历史 bug 多,改动容易引发连锁问题。
- 安全:已知漏洞多,权限和数据暴露风险需要系统治理。
- 并发:报名、考试等时点流量集中,系统容易卡顿。
- 慢查询:数据量增长后,列表和统计查询明显变慢。
方案:稳、准、可回退
1. 两次架构升级
先梳理核心链路和数据边界,分阶段升级:第一阶段解耦单体中的高频模块,第二阶段引入更清晰的分层和缓存策略。每次升级都保留回退路径,按业务窗口灰度。
2. 安全加固
统一鉴权、参数校验、越权检查、敏感信息脱敏和依赖升级;对历史接口做安全扫描和回归,修复已知漏洞,建立上线前的安全检查清单。
3. 性能治理
慢查询逐条分析,补索引、改分页、减少不必要的联表;热点数据加缓存,报名和考试入口做限流与排队;对大报表改为异步导出,避免阻塞主流程。
4. 研发规范
统一代码结构、日志格式和发布流程,补充关键路径的自动化测试;把“能跑”提升到“可读、可测、可回滚”。
结果
2 次架构升级从遗留系统到可演进架构
漏洞 -95%安全加固后的已知漏洞下降
培训-考试-颁证一体化业务闭环
完成两次架构升级后,系统已知漏洞下降约 95%,整体安全性和并发能力明显提升;慢查询得到治理,页面流畅度改善。遗留 bug 被逐步清理,研发规范也开始落地。
复盘
遗留系统改造的关键是节奏:先稳住业务,再小步替换;先解决高频痛点,再谈架构理想。每一次改动都要能回退,团队才敢持续改。