一、背景
项目后端服务开始一直使用Apollo配置中心(携程开发)进行配置管理,由于公司自研了配置中心B,为了后续方便管理和降本增效,后端服务使用的配置需要由Apollo配置中心切换到自研配置中心B。后续不再使用Apollo配置。
替换前架构:
替换后架构:
二、需求
1、使用B配置中心替换A配置中心,功能上B配置中心替换后与替换前完全保持一致。
2、性能上B配置中心替换后相比替换前不下降。
三、功能实现
Apollo配置中心使用.properties格式配置,B配置中心使用.yaml格式配置。
所以实现方式为:将xxx.properties格式文件内容转化为xxx.yaml格式文件内容。
举个例子
xxx.properties格式样例
person.pet.name = 金毛犬
person.pet.weight = 13.14person.interests = [篮球,足球,排球]
xxx.yaml格式样例
person.pet.name: 金毛犬
person.pet.weight: 13.14person.interests: |[篮球,足球,排球]
四、测试设计
功能上质量保障思路:
维度1:配置diff
- B配置中心的每项配置与Apollo配置中心每项配置逐一进行diff,差异符合预期,不新增配置,不减少配置,不篡改配置,与替换前保持一致。
维度2:B配置中心更新机制测试
- 热更新机制:确认修改哪些配置,不用重启服务,变更(新增,删除,修改)之后可以立即生效。
- 非热更新机制:确认修改哪些配置,需要重启服务才能生效。
维度3:BE功能效果验证
- 后端服务接口核心功能回归验证,核心功能与之前保持一致。
- B配置中心的每项配置对应的功能验证生效
- 存量回归测试用例通过。
性能上质量保障思路:
- 使用压测工具跑一下性能数据,QPS性能指标相比配置中心替换前不下降。
五、测试发现问题
-
问题1:diff发现,新增配置内容。
-
描述:diff发现,B配置中心相比Apollo配置中心,新增3项配置。
-
原因:Dev将下个版本未经测试内容合入当前发布版本。
-
解决办法:Dev撤回新增的3项配置
################################# -
问题2:"="乱码不一致问题
-
描述:Apollo上显示"=“,然而在B配置中心显示”\u003d"
- 原因:编辑器使用不一致,导致乱码
- 解决办法:B配置中心修改为"="
六、复盘
- Dev需要加强自测
- 测试过程中,需要耐心,仔细,全面,多维度保障产品质量。
水平有限,难免不足,欢迎分享交流!