金融 SaaS - 产品已在运行
正在收钱的计算引擎,边跑边重写。
一款已经在收订阅费的 SaaS,核心计算引擎既无测试也无类型,每次改动都靠人工核对。我们在产品不停机的前提下重写了它,要求与旧引擎输出完全一致,并把它放到 Azure 上,配好环境隔离和带回滚的部署。
- 背景
- 金融 SaaS - 产品已在运行
- 周期
- 分阶段重写,最后一次性切换
- 交付内容
- 带测试的计算核心重写、Azure 上的基础设施即代码、部署与回滚流水线,以及相互隔离的环境。
3
相互隔离的环境:开发、预发布与生产
0
与旧引擎之间允许存在的差异
每个数字的出处见下文。
01
起点是什么样
产品早已上市,订阅收入也在跑;出问题的不是想法,而是围绕计算的那层工程。核心既没有测试也没有类型标注,每次改动靠人工核对,部署要登录到机器上操作。在金融产品里,这直接翻译成一句话:动引擎让人害怕,而让人害怕的东西没人愿意动。
02
思路
重写不是从新代码开始,而是先给旧代码上保险:我们收集真实计算用例,做成一套要求输出完全一致的测试集,这就是整个迁移的合同。有了这张网,我们用带类型的语言重写引擎,把计算领域和交付层拆开,每次改动都做代码评审;新旧两套系统并行运行,直到测试集里的每个用例结果都一致。同时推进平台:Azure 上的基础设施即代码、环境隔离,以及部署与回滚流水线。
03
最终跑起来的东西
同一个产品,算出同样的数字:这本来就是要求,而测试集让这件事可以被验证。真正变了的是现在能做什么:动引擎时有一张网,它比用户先发现问题;上线走流水线,可回滚,不必登录任何一台机器。
交付构件
- 与旧引擎对比的测试集
- 基础设施即代码与环境隔离
- 部署与回滚流水线
本案例已做匿名处理。我们在 NDA 之下工作:不公开客户名称、标识,也不公开任何可用于识别客户的信息。技术细节可在电话沟通中详谈。
下一步
聊聊你的项目?
30 分钟里,我们一起过一遍:你想建什么、现在跑着什么、数据和集成的情况,以及用户真正进来之后还缺什么才撑得住。项目是你自己的还是你客户的,都一样,这通电话没有区别。
30 分钟免费评估,不设任何前提。如有需要,可先签 NDA。下一个工作日内回复。