写点什么

中国工商银行基于生产流量的创新探索及实践

  • 2023-10-30
    北京
  • 本文字数:3180 字

    阅读完需:约 10 分钟

大小:1.61M时长:09:23
中国工商银行基于生产流量的创新探索及实践

作者 | 中国工商银行金融科技研究院云计算实验室


随着互联网金融的高速发展,金融产品和服务模式不断创新,业务规模呈现爆炸式增长态势,新老业务迭代加速,在业务迭代升级或系统重构时,如何确保业务架构调整后的功能连续性,是常规测试工具面临的难题。相较于传统测试数据,生产流量具有多样性的特征,利用生产流量进行功能性验证能够最大程度提升验证效果,保障架构转型过程的安全性和稳定性。在这样的背景下,流量录制回放技术应运而生。


流量录制回放的行业现状


由于传统的测试数据缺乏真实性和多样性,测试案例覆盖度往往无法满足实际的需求,为此互联网头部企业提出通过流量录制回放工具弥补传统自动化测试系统的不足,并以此衍生出了多种方案,其中较为有代表性的工具和产品有 GoReplay、TcpCopy、Jvm-Sandbox-Repeater、阿里云引擎回归测试平台等。这些工具都是由用户层、流量采集、数据持久化模块所组成(如图 1 所示),其中服务端提供了流量录制规则配置和数据分析的能力,用户根据自身需求分析录制场景和录制规则,并基于录制工具开展生产流量录制;采集端则根据业务提供的录制规则进行数据收集和聚合并转发给存储节点进行持久化;回放端主要提供了实时回放、用例沉淀、压测模型转换、链路分析、依赖分析等能力。此外,持久化的流量数据可根据业务需求进行差异化定制,并应用于在线巡检、变更影响面评估、智能用例推荐、强弱依赖识别、业务模型评估、覆盖率分析等场景,从而形成围绕流量的运维生态。



图 1 业界流量录制回放业务架构


中国工商银行在流量录制回放领域的探索


随着工商银行分布式转型工作深入推进,开放平台交易量爆发式增长,分布式架构错综复杂的调用链给运维体系带来巨大挑战。工商银行借鉴行业先进经验,打造了流量录制回放平台,从六个方面对流量录制回放技术进行探索和实践。


字节码增强方式录制,多维度可定制化任务管理


针对工商银行内部技术框架的多样性,相较于其他录制方式,字节码增强方式因其无侵入特性,具有更高的包容性,可以支持以较低的成本对应用服务进行拦截,进而实现服务请求响应报文、链路特征、交易耗时等信息的录制。


平台提供了应用、集群、容器、服务、交易时间等多种维度的录制能力(如图 2 所示),用户可根据自身诉求定制录制规则,以任务的形式灵活的控制录制时间段、设置灰度模式、采集链路资源等,实现多维度流量灵活录制。精准的录制任务投放,不仅降低了录制链路的处理压力,还能帮助用户有效控制录制工具的影响范围,降低性能损耗,同时保障应用节点安全稳定。



图 2 字节码增强录制与定制化任务管理


梳理核心链路,构建流量录放模型


核心链路的梳理是整个流量录放工作的重中之重,能否将核心链路梳理好,直接决定其能否保证录制链路和数据的完整性以及能否达到录放的预期效果。在分布式架构下,工商银行利用链路追踪监控技术,通过流量染色和拓扑分析机制,形成面向业务场景的全链路拓扑结构,业务系统再根据梳理出来的目标链路拓扑进行梳理以及性能容量评估,最终得出流量录放模型,以最大程度还原生产交易场景。


  1. 录制链路梳理:业务系统通过链路拓扑分析,根据自身需求,梳理需要录制的资源信息以及上下游依赖,并以此可衍生出录制任务的维度和配置。

  2. 性能容量评估:为保证生产录制过程不会影响日常交易,生产录制前,业务系统必须在测试环境进行性能容量评估,为录制工具预留一定的资源。


建立流量跨域自动化传输机制


为了避免流量录制回传过程中出现敏感信息泄露,工商银行提供了配置化的脱敏能力,可以基于用户配置实现针对性脱敏,建立生产录制流量跨域回传测试环境的常态化运行机制(如图 3 所示)。针对小批量录制数据,平台支持用户在线下载并手工导入测试环境。针对海量数据报文,平台支持后台自动生成批量文件、传输并导入测试环境,该方式具备数据分段传输、断点续传、完整性检查等功能特性。


为解决环境间数据差异性问题,平台提供了多维度的自定义替换功能,用户可根据场景特色进行配置,以提升回放成功率,最终形成一套流量录制、脱敏、传输、替换的全自动化流程。



图 3 自动化脱敏传输与替换


具备高适配、高并发的回放能力


传统的流量回放模式主要将流量无序的压入应用容器,该方式无法保障服务调用先后顺序,可能引发事务不一致风险。工商银行基于生产采集的服务接口信息,实现了报文组装和服务接口模拟调用,根据流量录制时序进行回放,支持用户灵活设置录制数据段、回放速率等个性化回放配置,形成从流量录制到回放的一站式演练能力。


针对部分下游强依赖场景,工商银行支持根据其入口流量透传的链路信息查找对应的子调用响应并返回,降低下游依赖性的同时提高了回放的成功率和场景适配性。


形成多维度结果比对分析机制


为提升流量回放结果的可观测性,平台提供基于定制化规则的多维度比对分析能力,实现录制响应报文与回放响应报文的差异化感知。基于 ClickHouse 的实时分析架构,可支撑百亿级交易的实时比对聚合,及时反馈回放任务运行效果,进而形成程序架构质量评价。多维度的结果筛选和分析能力(如图 4 所示),可有效协助业务人员敏捷分析异常原因,并及时做出调整。用户针对异常的流量可施行二次回放,直至回放成功率达到 100%,保证业务迁移前后功能的一致性。



图 4 结果比对分析


场景化应用


工商银行目前已初步形成一站式的常态化演练机制,在灾备带压演练、仿真切流验证、测试环境回归测试等场景提供了关键的技术支撑,最终保障生产业务安全。截至目前,平台已完成二十余个应用系统的接入使用,其中测试环境已得到规模化应用,灾备环境和仿真环境也已顺利支撑个人结算、信用卡产品等重点应用的验证工作。


带压灾备演练


在应用架构转型背景下,为确保灾备环境的承载能力,工商银行利用生产真实流量在灾备云实施回放,检验应用核心交易和服务在灾备云环境的性能和功能情况。带压灾备演练主要操作流程如下:


应用根据自身交易场景,梳理录制灰度集群、服务、时间段、关联交易等录制链路信息。运维支持人员根据应用梳理的生产操作手册,提前完成数据库数据同步以及生产报文录制,待流量录制完成后将其回传到灾备环境。为保证灾备环境回放真实性,运维支持人员以倍速回放灰度流量的方式模拟生产高并发冲击对业务系统性能容量的影响。应用根据回放的比对结果分析回放的业务交易成功率以及系统的整体承载能力(如图 5 所示),并以此作为应用架构转型成功与否的评判标准之一。



图 5 回放结果大屏展示

仿真切流验证


在应用架构转型的背景下,为保证业务核心交易的安全平稳升级,工商银行将生产真实流量准实时回放到生产仿真环境,验证业务切流前后交易的一致性。


与灾备带压演练不同,运维人员完成数据库数据同步后,同时下发录制任务和回放任务,生产录制的流量完成存储后将被准实时回放到仿真环境,应用根据生产交易结果与仿真交易结果的比对分析,判断核心交易逻辑是否与切流前一致。

测试回归验证


为保证回归测试案例的真实性、多样性和覆盖完整性,工商银行将生产真实流量脱敏后回传到测试环境进行回放,模拟生产真实交易进行的场景,以回放比对分析结果作为评判功能迁移或升级前后是否一致的标准。随着生产和测试流量的持续积累,回放案例库可基本覆盖业务代码的所有分支,测试人员通过流量回放实现了应用业务系统的常态化回归测试,大幅提升测试效能。


未来展望


未来,工商银行流量录制回放平台将进一步与链路监控、服务限流、混沌工程等其他运维工具相结合,完善运维工具链和分布式监控运维体系,拓展工具使用场景,提升流量录放的价值和意义,为金融业务场景稳定性提供有力支撑。


好文推荐


智谱 AI“超 25 亿融资”的背后


是时候彻底放弃“高分低能”的 Leetcode了:AI 时代的面试需要大变革!


B 站广州研发工作室解散;外媒曝光苹果中国区丑闻;OpenAI 被曝已叫停新大模型项目 | Q资讯


“MySQL 之父”的 MariaDB 要完蛋了?叫停两款核心产品并裁员 28%,分析师:该行为无异于自毁长城


2023-10-30 11:104065

评论

发布
暂无评论
发现更多内容

软件测试/测试开发丨Bug生命周期

测试人

软件测试 测试开发

SecGPT:全球首个网络安全开源大模型

云起无垠

软件测试/测试开发|如何解决pip下载速度慢的问题

霍格沃兹测试开发学社

大模型热的冷思考

用友BIP

企业服务大模型

软件测试/测试开发丨Bug概念,定义,判定标准,严重程度,优先级

测试人

软件测试 测试开发

我们不可能永远都在救火 ——Scrum中技术债务“偿还”指南

敏捷开发

项目管理 Scrum 敏捷开发 自动化测试 技术债务

“Ladies In Tech 闪闪发光的她”分论坛圆满举办

开放原子开源基金会

开源

PON网络应用场景

小齐写代码

Flink CDC 3.0 正式发布,详细解读新一代实时数据集成框架

Apache Flink

大数据 flink 实时计算

基于Flink SQL 和 Paimon 构建流式湖仓新方案

Apache Flink

大数据 flink 实时计算

六步走向无忧,华为云数据库高可用的秘密武器

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟

【资源汇总】TiDB-TiCDC 源码解读系列最全资源!!!

TiDB 社区干货传送门

【新手升级必看】从 TiDB v6.5升级到 v7.5 的实践步骤

TiDB 社区干货传送门

版本升级

可视化技术:数据可视化17个常用图表

2D3D前端可视化开发

大数据 数据分析 数据可视化 数据可视化工具 可视化大屏

软件测试/测试开发|如何使用因果图法设计测试用例?

霍格沃兹测试开发学社

杭州悦数成立「悦数图技术陆家嘴数据智能研究院」入驻上海「双城辉映」平台

悦数图数据库

图数据库

如何使用不同的纹理贴图制作逼真的 3D 图形?

3D建模设计

3D渲染 材质纹理贴图 3D材质编辑

软件测试/测试开发|如何使用场景法设计测试用例?

霍格沃兹测试开发学社

半岛铁盒推出22.5W超级快充充电宝:双线快充,超能补量

科技热闻

什么是多边形网格以及如何编辑它?

3D建模设计

3D渲染 材质纹理贴图 3D材质编辑

业务全面重塑,“人”要如何重塑?

用友BIP

人才管理

记三次升级 TiDB 集群到 v6.1.5 遇到的案例分析过程&升级收益

TiDB 社区干货传送门

版本升级 管理与运维 6.x 实践

TiDB v7.5.0 vs Oceanbase v4.2.1.1 : online ddl 吐血验证测试

TiDB 社区干货传送门

文心一言专业版年卡来啦!

飞桨PaddlePaddle

人工智能 文心一言

数字时代B2B订货平台,助力渠道业绩持续增长

赛博威科技

赛博威 经销商管理 订货平台

TiDB在银行业核心系统POC测试应用压测参考手册

TiDB 社区干货传送门

性能调优 性能测评 数据库架构设计 应用适配 OLTP 场景实践

软件测试/测试开发丨常用测试策略与测试手段

测试人

软件测试 测试开发

技术写作与内容研究:主题得分、关键词搜索量、社区和论坛策略

小万哥

程序人生 后端开发 技术写作 关键词搜索 社区和论坛

中国工商银行基于生产流量的创新探索及实践_云计算_工商银行云计算实验室_InfoQ精选文章