近年来,随着我国信息技术基础设施的建设快速发展,各行业领域的自主可控软硬件产品如百花齐放班涌现,但其产品特征、行业应用领域、适用场景以及评测标准参差不齐,如何甄别适合的产品、如何评估验证该产品是否满足自身业务需求、如何实现产品应用后的平滑过渡或替代等问题是现阶段金融科技创新的难点。立足现状,贵阳农商银行以银行核心业务系统的数据库应用试点作为突破口,构建出一套基于交易回放控制的镜像架构平台,以全面提升银行系统验证的准确性、一致性、时效性等,进一步缩短银行系统建设周期、版本迭代周期和产品更换周期,通过研发与试点融合应用验证,切实推动银行业科技创新发展。
贵阳农商银行信息科技部 总经理 徐黔
验证现状与验证难点
(资料图片仅供参考)
新产品大规模商用前的系统性验证一直是其迈向生产系统运行的重要组成部分,是保证应用系统正常工作的前提,是预警潜在威胁的排雷兵,是降低系统运行风险的重要程序。系统的开发、测试、操作、维护等取决于开发人员、测试相关人员的技能水平和过程流程的规范性,智者千虑必有一失,再资深的技术人员和再完善的规范性流程也难以避免软件应用Bug发生。随着银行业务的快速发展,新功能新需求的快速迭代,新版本的更新周期持续缩短,如何快速验证系统一致性是我们面临的难题,主要表现如下。
1.兼容问题,难以暴露。近几年,随着信创项目的试点深入,数字化转型提质加速,各行业领域信创替代产品琳琅满目、品类繁多。如何选择一个合适的产品就必须有的放矢,比如在产品的适配可用性和兼容性问题上,我们往往需要花费较大的人力财力和时间成本去测试、回归与发现,在产品应用系统层兼容方面的问题更为复杂且难以穷举发现,解决隐蔽性较深的问题须有不撞南墙不回头的决心,但可能造成摸索试探验证时间较长或者最后临近投产时才发现系统的不可用,试点应用相对较大的代价是银行开展科技创新应用过程中最大的阻力。
2.考虑不全,设计疏漏。系统设计的合理性往往只能通过大量的实践与应用来证明,单从经验或设计文档出发很难判断一个系统的缜密程度。若唐突升级或更换生产系统运行的软硬件产品,很可能直接造成不可估量的业务连续性风险或系统性金融风险。站在系统提供方或服务方角度,他们可能对自身产品或系统满怀信心,但站在银行经营机构方角度,面对各式各样的信创产品,有国外引进自研的、有独立设计研发的、有买断式的等等,盲目的选择与尝试只会事倍功半。
3.性能不足,力不胜任。不管是系统升级还是产品替代,任何产品源代码调整或参数调整都可能对其性能产生直接影响,尤其针对一些复杂性较高模块的逻辑修改,亦或是底层中间件及数据库参数等变更,性能表现可能有天壤之别。即便是系统上线投产前可进行大规模的性能测试,但测试像是个无底洞,每次变更都需要重复覆盖性的测试,需投入大量的人力物力,非长久之计。
工欲善其事必先利其器——镜像架构平台
1.平台由来,初露锋芒。贵阳农商银行积极响应国家自主可控软件替代工程的号召,分别从数据安全、数据质量、数据可控等行业应用短板方面研判分析,深知数据库只有经受银行核心业务的高并发实时交易的验证,方能打开自主可控数据库在金融行业领域商用的钥匙,故而选取了以银行核心业务系统的数据库应用试点作为突破口,为银行业核心数据安全、自主可控数据库应用探索实践,提供切实有效的典型案例参考。为此,贵阳农商银行在政府支持下专门启动了银行核心业务系统的分布式数据库验证与替代项目,并在几年的试点应用过程中,通过不断的技术迭代、总结分析、架构重构与尝试和专家技术论证等,逐步探索出一套基于交易回放控制的镜像架构平台,用于在生产环境同步跟踪验证数据库的可用性,既不会对生产运行系统造成业务连续性中断,又可有效监测和验证数据库适配应用效果。经过几年的试点应用,该平台不断改进和升级,已不仅仅是作为数据库是否可行的验证工具,还是一套通用的基础技术架构平台。在基础平台适配、组件适配、中间件适配、数据库适配、新功能验证、自动化测试等场景均可有所作为。
图 镜像架构
2.合理架构,解耦独立。镜像平台的架构是通过交易回放控制系统作为“大脑”中枢,把原生系统的业务数据异步剥离出来,并通过自研的交易回放控制系统对原生数据进行加工、转换、重组,再根据不同场景的测试点,搭配不同的镜像参数配置,将处理过的数据回放至镜像系统以完成交易回放。最后通过对比引擎比对原生系统与镜像系统的交易结果,以结果为导向去验证是否满足场景需求,即在不影响原生系统运行的基础上进行验证。该模式不同于沙盒系统,因镜像平台是独立的环境,且镜像中的操作不影响原生环境,同时镜像平台又与原生环境存在关联,镜像平台中的操作都是从原生环境中完全加工拷贝过来的,而运行结果还会根据需要与原生环境结果数据进行比对,从而达到验证目的。镜像平台的基础架构如上图所示。
该架构使得贵阳农商银行对各种业务创新场景的测试或验证实现快速响应,为系统的版本迭代和系统替换提供了重要指导方法。
3.数据支撑,立竿见影。贵阳农商银行镜像架构平台自投入以来,在克隆模式下可基本回放了原生系统的全部交易,有效支撑原生系统99%的TPS,且同步延迟在3秒以内,架构资源消耗较小,共发现问题800多个,保障了原生系统的安全稳定运行,避免了直接使用替代产品带来的未知风险,对同业替代项目具有很好的借鉴意义。
技术攻关,关键技术成果分享
在镜像平台的设计开发和技术迭代过程中,逐步演化出交易回放控制技术、滞后采集技术、时间片调度技术、分组并发技术等四项关键技术,以贵阳农商银行新核心自主可控分布式数据库试点项目为例,对四项关键技术的简述如下。
1.交易回放控制技术。镜像平台通过连接两套独立的核心应用,两套核心应用的数据源又分别连接两套异构的数据库(分别称为参照库和验证库),运用交易回放控制系统作为中枢驱动,采集参照库的原始交易与原始结果,经过数据加工,重新自动回放新交易在验证库所在的核心应用里执行。通过对比重新执行的结果,从交易层面验证两套异构库运行结果是否一致,并且通过每日从参照库与验证库中抽取关键技术指标进行核对,多维度准确、全面、及时反映验证库是否可以替代参照库的可行性。
2.交易回放延迟采集技术。架构是由两套独立的应用分别连接两套异构数据库,为保证交易执行结果具备一致性、可比性,交易不能直接通过队列的形式分发到两套独立应用(若因数据库行锁等原因出现结果执行不一致时,没有唯一参考系,交易结果不具备可比性,达不到验证效果),架构通过从原生系统采集处理成功的交易转发到镜像系统执行,做到应用独立而交易不独立,原生系统成功的交易镜像系统理论必然成功,而原生系统失败的交易可能因为时序等原因在镜像系统里执行成功(这样也会导致结果不具参考性,所以失败的交易未进行采集),因此镜像系统回放的交易必须等待原生系统先执行完成。特别是处理代发代扣等耗时交易时,要避免镜像系统后发先至、先发后至等问题。所以滞后采集技术就成为架构时序一致的重要环节。
3.交易回放时间片调度技术。为保证镜像系统跟跑效率,同时验证多并发下交易结果一致性,镜像系统执行交易时需要模拟原生系统的并发量。这个过程很像地铁进站时人群从四面八方过来,原生系统通过多个闸机(即并发处理)进站后排队等待形成有先后顺序的一列。而镜像系统回放交易时需要重新模拟进站时的场景,把已经排好队的人群再次进站,且进站后排队的先后顺序需要和之前的一致。这里面存在两个矛盾点,即排队顺序和进站速度。若要保持顺序完全一致就只能开一个闸机(即不开启并发),这就会导致进站速度缓慢;若要保持速度一致就需开多个闸机,但此时无法控制多个闸机进站后的排队顺序。对应到镜像平台,在镜像系统回放交易时就要避免后发生的交易已经调用而其依赖的前序交易还未执行的时序问题,这要求交易发生的先后顺序要和原生系统发生的一样;另一方面原生系统本身是并发的,若镜像系统不开启并发则会导致回放速度滞后,交易会产生大量积压而导致架构瘫痪。为了平衡这两个矛盾点,镜像平台采用时间片调度技术把交易划分成一个个时间片批次,每次并发处理时只处理该时间片的交易,待第一个时间片的交易全部处理完后才进入第二个时间片,这样通过该技术兼顾了交易时序与处理效率的问题。
4.交易回放分组并发技术。在时间片调度技术的基础上,单个时间片里的交易不再考虑先后顺序(基于在单个时间片里不会有多个人操作同一个账户的设定),而根据关键字段进行分组,这样镜像系统就可以开启并发。贵阳农商银行的示列中,通过对核心业务系统所有交易的通用字段运用特定算法进行运算,使不同机构、不同的柜员发起的交易进入不同的线程组队列,对单个时间片的交易进行分组,处理交易时即可根据分组情况开启并发。通过分组并发技术,保证了镜像系统的执行效率,镜像系统最大可能地复原了原生系统的交易执行情况,使得架构具备可执行性。
验证优势,促进银行科技创新发展
1.降低成本,避免重复造车。镜像平台架构提供了一套通用有效的验证解决方案。无论是针对操作系统、服务器、数据库还是中间件的验证替代,更或是针对同一产品的新旧功能点,都可以通过镜像平台在不影响原有系统的前提下对新系统进行生产验证,做到一套架构多处应用,从根本上推动银行科技的创新发展。
2.反向验证,换位优化迭代。传统验证主要针对新系统、新功能的一致性验证,都是以旧验新,但对于比较年久的、比较底层的模块大家都是望而却步。秉承只要系统不挂绝不改的原则,这就会导致技术故步自封,新功能不敢大胆尝试。而通过平台技术验证,在不影响原生系统的基础上,针对性地更改某个点,一点一滴地回溯验证老系统功能模块,换个思维角度反向优化老产品的功能,充分发挥银行科技创新能力。
3.真实交易,结果更具说服力。相比于传统的从生产环境抽取历史数据进行交易回放或“造数”进行交易回放等手段,采用镜像平台可以进行实时回放。通过上述的四项关键技术,镜像平台可以在镜像系统复刻原生系统实际发生的所有场景,如交易的波峰波谷、短时间的高并发场景等,有助于更好地验证新技术在银行业实际生产环境将要面临的各种挑战,保证银行科技创新有据可依。
4.风险隔离,科技创新共赢。在金融业信息科技领域,信息技术应用重在稳而不在新,金融安全稳定是银行业信息科技的风险底线。在信息科技创新的过程中,首当其冲的是创新可能产生的风险,科技创新是一把双刃剑,使用得当将促进业务发展、科技持续创新,使用不当将可能引发系统性金融风险。通过镜像平台可有效降低直接应用新技术、新功能等带来的未知风险,新事件的可行性可得以提前验证,通过镜像平台验证再迭代到生产环境,可有效提升信息系统支撑效率,可有效实现科技创新尝试与风险缓释保障的双赢。
回放控制验证价值
基于镜像平台架构验证新模式,我们也在加大研发力度,努力构建一个行业应用模板与典范,将其应用并融入到科技创新的各个环节中,真正让技术的创新结果更有说服力、更有影响力、更有驱动力。顺应科技创新时代潮流,抓住机遇迎接挑战,必须坚持以科技创新为驱动力,以监管指导为底线,以风险控制为前提,全面把握金融科技领域技术的发展特征,推动金融行业创新型科技发展,构建从科技赋能到科技引领的金融新气象,为金融科技数字化的高质量发展、为自主可控软件的蓬勃发展尽绵薄之力。
(栏目编辑:杨昆桦)