本文是之前文章重构总结的后续文章,本文介绍代码重构完成后,重构服务平滑替换旧服务的流程。
代码开发完毕,此时线网上旧的代码依然在正常运行,此时我们不能一下子将新服务替换旧的服务。我们通常要经过以下几个流程:
改造旧服务,使其兼容新服务模型
在重构后的服务中,我们可能会对已有的数据库、交互接口、中间件等进行变更。为了保证后续新老服务的平滑升级,在确认新服务的模型后,还需要对旧服务进行开发,让其兼容新服务的模型,可能包括但不限于数据库迁移、中间件升级新增、接口变化等等。经过测试后,发布线网环境。
新服务测试环境测试
在测试环境里,对所有测试用例进行测试,完成所有基本功能和压力测试。
这里需要同时对新老服务进行单元测试,保证相同的功能接口的输出一致。
新服务使用线网的数据进行测试
在线网独立部署测试环境,测试使用的数据必须是从真实环境复制下来,部署独立的数据库,缓存等服务,避免影响生产环境。
再做一次对所有测试用例进行测试,完成所有基本功能和压力测试
这里开始做集成测试,完全模拟用户的操作行为,对服务进行测试。此时测试人员主要是内部人员
通过tcpcopy引流生产环境请求到测试环境
以上的主要测试的对象是测试人员,可能无法覆盖所有的场景。此时如果有我们真实的客户使用我们的新系统,如果发现问题马上反馈给我们进行修正,那最好。但是这个