商业银行大数据性能容量探索和实践

商业银行大数据性能容量探索和实践

摘 要:随着数字化转型的逐步深入,商业银行大数据平台的技术体系愈发庞大,所承载的业务功能也日渐丰富,而各类性能问题给生产环境的平稳运行带来了巨大挑战,并促使大数据场景下的性能测试成为业界面临的难点问题。本文从需求识别、测试方法、监控体系和模型预测等四个方面入手,详细阐述了大数据性能容量评测体系的方法论基础,并进一步分享了大数据性能容量评测平台的建设路径与实践成效。

关键词:需求识别;监控体系建设;模型预测;大数据性能容量评测

数字经济时代,商业银行各类业务需求的不断增加为传统的业务处理模式带来了巨大挑战,而数字化也随之成为银行业实现可持续发展的全新命题,并促使越来越多的商业银行开始构建符合自身发展需求的大数据体系架构。为应对上述转变,工商银行以技术变革引领银行再造,全力打造智慧银行ECOS工程,引入多层次数据开展新业态建设,并积极采用对外赋能等数字化转型举措,始终致力于以科技驱动赋能业务创新和价值创造,实现全方位的金融科技突破创新。历经近20年的迭代优化,工商银行大数据技术体系从最初单机、一体机架构的批量分析场景开始,先后走过了起步、发展、转型、提升等多个阶段,通过对典型场景的不断打磨,逐步演进到基于分布式数据库、融合大数据服务与AI服务的大数据服务云模式,并从“数据辅助决策”平台一步步发展为“数据+智能驱动决策”平台。实践中,大数据技术平台作为海量数据的采集、存储、加工和分析平台,为工商银行业务发展提供了高效的数据支撑。但是,随着大数据平台技术体系的愈发庞大与所承载业务功能的日益丰富,各类性能问题也给生产环境的平稳运行带来较大挑战,而大数据场景下的性能测试也始终是业界面临的一个难点问题。本文结合工商银行大数据技术体系建设,深入探讨了分布式系统架构下“四位一体”(包含需求分析、版本测试、日常监控、模型预测)的性能容量综合评测体系的研究思路与实践路径。

一、大数据性能容量测试的目标与思路

工商银行大数据技术体系主要基于分布式系统建立了包含“一湖两库”(数据湖、数据仓库、集团信息库)在内的大数据服务云,可提供多样化的大数据服务和AI服务。但是,大数据服务云的大范围推广和应用在推动工商银行大数据技术体系不断发展的同时,在新技术架构下的性能表现却存在很大差异,而如何在验收测试前预先界定性能测试范围、识别性能隐患,更是成为产品研发流程中最值得关注的焦点之一。此外,由于分布式系统服务器数量较多,各台服务器、各个资源池、各组件服务以及整个集群层面也全都需要进行性能分析,并对超出阈值的性能指标和进程进行相应处理。为有效应对大数据性能容量测试的新挑战,工商银行针对大数据性能测试面临的痛点问题,建立了需求分析、版本测试、日常监控、模型预测“四位一体”的大数据性能容量评测体系,并通过搭建大数据性能容量测试平台进行统一管理,实现了验收测试前预先界定性能测试范围、明确性能测试方法、完善性能监控策略以及预测性能隐患等目标。

1.测试源头识别性能需求

工商银行大数据服务云通过将分布式系统平台的离线数据分析处理服务封装成大数据服务平台,为上层应用提供了统一的技术标准和开发规范,并可合理分配所需资源和权限,完成特定的业务功能。同时,大数据服务平台是云上应用与集群交互的媒介,借助其统一管控的优势,工商银行开发大数据服务云程序级管理系统,对入云应用的新增修改程序及测试覆盖情况进行统一的管理和监控,实现了从验收测试源头界定性能测试范围、精准识别性能测试需求的目标。

2.动静结合的性能测试方法

在动态测试方面,基于分布式系统资源的灵活调配能力,以及工商银行大数据沙盒的数据快速填补能力,工商银行提出了在分布式环境下构建系统资源、测试数据、配置参数与实际生产比例为1:1的测试环境场景性能评测方法,并形成了一套面向“技术+业务”场景的分布式系统性能容量测试指引。具体而言,测试方法主要包括模拟真实场景测试和新旧版本比对测试两种,两种方法都需要对系统资源、测试数据和配置参数等进行灵活调配,不同之处在于模拟真实场景测试需要创造出和生产实际运行场景完全一致的底层资源和数据环境,适用于对新增或修改的程序进行测试;而新旧版本比对测试只需新旧版本下的资源和数据环境一致即可,适用于对历史版本修改后的定性预估测试。大数据性能容量测试方法设计要点见表1。在静态代码校验领域,工商银行针对基于分布式系统的大数据性能容量测试,根据平台的技术特点和代码规范制定了相应的静态代码校验规则,并将这些规则进一步封装,开发了基于规则的性能容量扫描工具。在对作业进行动态测试前,可以使用该工具对应用层代码做扫描,检查代码中是否存在不合规或低效率语句的情况,从而提前发现性能隐患,有针对性地进行代码整改。

3.完善大数据性能监控体系

根据分布式系统平台的技术特点,工商银行结合自身的大数据服务使用方式制定了相应的设备、集群、资源、服务、进程等监控策略,并统一纳入大数据性能容量测试平台,对超出正常值(主要根据业务作业运行时效指标、服务器或集群使用限制制定)的性能指标进行预警、分析和查杀。分布式平台的性能监控策略可分为应用层、队列层和集群层来分层实施,并通过在平台应用层面开发专门的扫描工具,实现对应用作业运行时间、服务器资源使用情况、队列资源使用情况、集群资源使用情况、表倾斜情况、大表广播以及对超性能阈值进程查杀等情况的监控和预警。

4.机器学习模型预测性能隐患

针对面向大数据程序的性能容量预测,工商银行使用机器学习方法建立了回归模型性能预测工具,并选取所用算法、作业并发数量、作业所在系统、关键字出现次数、作业运行次数、作业编号、作业运行日期等因素作为入模特征,使用lightGBM多分类模型实现了对大数据平台新增修改作业的模型预测。实践中,回归模型性能预测工具不仅可以对作业的运行时间进行预测,还可在作业运行之前排除新作业运行的性能隐患,尤其在数据湖、数据仓库和平台化开发作业的性能预测中更是具有较强的普适性。

二、大数据性能容量测试的解决方案

在“四位一体”解决思路的基础上,工商银行进一步搭建了大数据性能容量测试平台,其核心部分主要由大数据服务云程序级管理系统、静态代码校验系统、性能监控系统和模型预测系统等四部分组成,分别负责识别测试需求、静态代码校验、集群及应用日常监控和作业级性能隐患预测等功能。大数据性能容量测试平台总体框架如图1所示。

1.大数据服务云程序级管理系统

大数据服务云程序级管理系统通过对入云应用的新增修改程序及测试覆盖情况进行统一的管理和监控,实现了从验收测试源头精准界定性能测试范围、识别性能测试需求等目标。同时,该系统采用B/S界面,通过对云上各应用进行程序备份、定时检测和对比等方式实现了程序变动检测,以及通过对新增修改程序增加时间戳、定时检测运行状态,还可对入云应用进行精细化管控。此外,系统通过对接前台页面和邮件系统,可将程序变动情况和测试情况进行实时展示和通知,包括作业信息、修改内容、检测时间、测试覆盖情况等内容。

2.静态代码校验系统

静态代码校验系统通过将既定的静态校验规则封装到开发扫描工具,使得作业在动态测试前即可通过工具扫描出不合规和低效率语句,达到提前发现性能隐患的效果。同时,系统将应用层代码拆分成单个HQL或SQL语句,通过对单个语句的语法校验,还可完成对应用层程序的静态校验,并与大数据服务云进行程序级管理系统对接,实现每日新增修改作业的静态校验功能。此外,系统通过对接前台页面,可将静态校验结果进行实时展示,包括静态校验日期、校验作业信息、违反规则和修改建议等。

3.性能监控系统性能监控系统

根据既定的监控策略,通过部署相应监控程序可对超出正常值的性能指标进行预警、分析和查杀。同时,系统根据预先设定的分布式平台监控策略,通过在相应集群、服务器上部署定时采集程序,还可对接前台页面,将设备、资源、进程等情况加工处理后通过图表方式实时展示给用户,并与预设的监控指标阈值进行对比,对超出阈值的情况进行预警和分析,对达到查杀条件的进程进行查杀和提醒。

4.模型预测系统

模型预测系统使用机器学习方法,可根据作业历史运行规律建立模型对作业运行时长进行预测,进而提前发现性能隐患。实践中,系统使用lightGBM多分类模型,可根据选取的入模参数在部署作业程序的服务器上定时采集相应作业参数信息,并带入机器学习预测模型对作业运行时长进行预测。此外,系统通过对接大数据服务云程序级管理系统,还可对每日新增作业的运行时长进行预测,同时支持用户根据需求设定时长预警阈值,并对超过阈值的作业在前台页面进行展现,作为排除新增作业性能隐患的参考依据。

三、成效与展望

截至目前,大数据性能容量评测体系已成功应用在工商银行大数据性能测试领域,并开展了经典场景案例下的最佳性能测试实践,在完善测试体系、降低测试成本以及提升测试质量等方面效果显著。

1.完善大数据性能测试方法体系

通过从测试源头识别性能需求、采用动静结合的性能测试方法、构建完善的性能监控体系以及引入机器学习性能预测模型,工商银行建立了需求分析、版本测试、日常监控、模型预测“四位一体”的大数据性能容量评测体系,不仅提供了一套完整的大数据性能测试方法,还通过大数据性能容量测试平台实现了统一管理,从而为金融业开展大数据性能容量测试提供了可借鉴的指引和参考。

2.显著降低测试成本,提升测试效率

通过开发大数据性能容量测试平台,工商银行将性能测试静态校验和模型预测结果进行可视化展现,使得程序管理、静态校验、监控查杀和模型预测等工作均能够通过平台自动化完成,并可在动态测试前即发现性能容量隐患,不仅使工作效率提升60%左右,也节省了约30%的测试资源。从成效来看,工商银行建立覆盖需求、开发、测试、生产全流程的大数据性能容量测试流程,完成44个大数据项目的需求分析并开展了针对性测试,发现、解决性能问题50例;在版本测试方面,工商银行通过静态代码校验,发现62个入云应用共计3000余个脚本存在性能隐患,之后通过专项治理优化使计算资源节省了约5%;在监控预警方面,工商银行确定了53个大数据分布式系统性能容量监控指标,部署25项监控规则,实现了对设备、集群、资源、服务、进程的全方位监控;在模型预测方面,工商银行研发完成了基于回归模型的作业级预测工具,预测准确率达97%。

综上所述,工商银行从需求识别、测试方法、监控体系和模型预测等四个方面入手,创新构建了一套完整的大数据性能容量评测体系,并在降低测试成本、提升测试效率方面取得了显著成效。后续,工商银行仍将进一步完善大数据性能容量测试平台功能,将该评测体系推广到开发和生产运行环节中,实现对大数据性能容量的全流程测评管理。

作者:张世瑛 梁晔华 单位:中国工商银行业务研发中心