1 痛点和研究背景
目前随着分布式核心下移和小型机下线的趋势,主流系统架构已逐步演变为CCE+TDSQL。而在这一演进过程中也陆续暴露出来一些痛点难点问题,需要我们着力解决。为此,我们聚焦于分布式架构下需求、架构、数据这三个方面的痛点问题探索解决途径和措施展开了研究。第一,需求缺失的问题,分布式核心下移和小型机下线涉及的系统体量大、业务逻辑复杂,需求说明书持续迭代的情况下说明书内容已逐渐滞后缺失,易导致测试遗漏的出现。第二,架构痛点,分布式事务一致性逻辑复杂,目前主要基于手工测试,依赖于开发人员修改程序构造异常事务场景,导致测试费时费力;多微服务间的参数配置存在关联关系,微服务个数较多时,参数配置检查工作偏重复性体力劳动;分布式架构,某项功能的实现往往涉及多重微服务的关联调用,缺少有效的全链路监控方案。第三,数据痛点,数据迁移测试、并行运行期间主机到开放数据的kafka同步功能的验证成为一大测试重点,目前主要依靠数据抽查、SQL脚本执行的手工测试方法,存在效率较低、覆盖率不足的问题。
本研究通过探索需求不完备测试解决方案、分布式事务一致性测试、参数配置检查、可观测性技术、数据移植/同步验证五个专题来解决上述问题。通过自研工具和运用成熟工具,减少手工测试工作量,降低对测试人员技能的依赖;提炼分布式微服务架构新测试方法,提升测试质量和效率。
2 技术方案和创新成果
下面详细介绍五个专题的技术方案和创新点,展示部分自研工具的应用效果。
“需求不完备测试解决方案”专题,通过自研两类工具提升测试结果的正确性和测试覆盖的充分性。图1思维导图展示了详细的技术方案。我们一是通过自研报表/账务测试工具,实现全量新旧系统测试结果比对;日志回放测试提升工具,实现新旧报文字段不一致的映射、返回结果不一致的检查,提升测试质量。二是自研未覆盖代码提取工具,提取未覆盖的代码分支,补充测试数据,提升代码覆盖率。
自研了财务/报表测试工具,图2是报表/账务测试工具展示,实现了两个文件的精确对比和模糊对比功能。
图1 “需求不完备测试解决方案”专题技术方案
图2 报表/账务测试工具展示
“分布式事务一致性测试”专题,基于混沌工具制造事务异常场景,替代开发人员修改程序,丰富测试场景,提升测试质量和效率。提炼熔断、限流的通用测试方法。研究CCE+TDSQL技术栈下,多种基础软件(Gap-Nginx、ZooKeeper、Redis等)的混沌工程故障实验,提升系统稳定性。图3思维导图展示了详细的技术方案。
图3 “分布式事务一致性测试”专题技术方案
创新实践了基于CCE架构的混沌测试基础故障场景实验,探究了Gap-Nginx异常场景系统的健壮性;实践基于CCE架构的熔断、限流的测试场景。
“参数配置检查”专题,创新自研了redistools工具,实现自动检查关键参数配置,减少重复性体力工作,降低人为统计误差,并给出优化建议。图4思维导图展示了详细的技术方案,主要提取YAML文件、Redis数据库、配置文件、DCC中心的测试参数,与预投产参数比较。
图4 “参数配置检查”专题技术方案
“可观测性技术”专题,依托Skywalking开源可观测平台,通过非代码侵入的方式,采集监控信息,实现可视化系统拓扑关系、交易调用链路追踪、精准识别故障位置等功能,弥补现有测试方法对调用链监控的缺失。探索可观测技术在性能测试、混沌工程中的应用,提升测试质量。图5是可观测性平台架构图。
图5 可观测性平台架构图
通过引入了分布式可观测工具Skywalking,完成环境资源申请、搭建与部署;选取复杂调用链交易,在测试环境进行并发压力测试,对比部署Skywalking前后交易的性能表现,分析探针对JVM堆内存使用的影响。图6和图7分别是拓扑图生成和调用链路追踪结果的效果展示。
图6 拓扑图生成效果展示
图7 调用链路追踪结果效果展示
“数据移植、同步验证”专题,在分布式核心建设过程中,总结提炼数据移植、数据同步功能测试关注点,开发数据移植和数据同步验证工具,释放测试人力,提高测试效率。数据移植验证工具通过对源数据和目标数据的数据量、字段取值等信息进行一致性验证。数据同步验证工具,实现主机数据库脚本生成及执行,开放数据库结果验证,同步结果报告生成功能。图8和图9分别是数据移植验证工具、数据同步验证工具详细的技术实现方案展示。
图8 数据移植验证工具技术实现方案展示
图9 数据同步验证工具技术实现方案展示
3 应用前景
应用场景适用于分布式核心系统建设、小型机下线、服务器上云、系统重构类项目。
分布式核心系统建设,架构从主机DB2迁移升级为CCE+TDSQL。针对研究研究成果正在实践的项目应用了需求不完备、分布式事务一致性、参数配置检查、可观测性技术、数据移植/同步验证5个研究的成果。
小型机下线,架构从CICS+Sybase升级为CCE+TDSQL。针对研究研究成果的实践应用了需求不完备、分布式事务一致性、参数配置检查、可观测性技术、数据移植/同步验证5个研究的成果。
服务器上云,架构从WAS+Oracle升级为CCE+TDSQL。针对研究研究成果正在实践的项目应用了分布式事务一致性、参数配置检查、可观测性技术、数据移植/同步验证4个研究的成果。
系统重构,架构特点为多微服务、多链路系统。可应用参数配置检查、可观测性技术、数据移植、同步验证4个研究的成果。
以上为编者基于分布式微服务架构的测试技术研究与实践,欢迎大家交流互促。
作者:童薇、蔡晓峰、刘建伟