文/傅孙健中国建设银行财政部科技部
项目背景

当今世界科技进步日新月异,科技已成为衡量一个国家核心竞争力的重要指标,提升核心技术自主创新能力已成为国家战略要求。与此同时,中国的银行业务增长迅速。随着国家核心技术创新战略的稳步推进,摆脱大数据集中模式下银行核心系统的“大型机依赖”,快速推进集中式架构向分布式架构的转变,已成为我国金融业IT系统建设领域亟待解决的关键问题。
中国建设银行作为大型国有银行,在全球拥有超过8亿客户,提供7×24不间断的金融服务。在推进分布式架构转型的过程中,面临诸多问题和挑战:首先,在系统迁移过程中,既要让客户感觉不敏感,又要保持外部服务水平不变,全面承接现有核心银行功能,同时支持新的业务需求;其次,从目前国内的IT实践来看,还没有如此大规模、高度复杂的成熟应用迁移方案可供参考;那么,核心系统的分布式架构改造是一项复杂的大型系统工程,需要跨部门的企业级合作,涵盖各种技术栈的集成和替换。要实现“飞行中换发动机”,对实施流程和跨部门合作提出了很高的要求。最后,与国外基础软硬件产品相比,国内大部分基础软硬件产品还处于爬坡阶段,产品成熟度还需要较长时间的打磨,支撑大型核心系统业务稳定运行的效果还需要时间检验。
建设目标和总体技术方案
为避免IT产品供应链风险引发系统性金融风险,中国建设银行锐意进取,迎难而上,统筹安排,周密部署。2019年启动了基于多技术栈的核心银行系统建设,涵盖了原来运行在主机上的存款、贷款、借记卡、信用卡、客户信息等核心业务领域的所有业务功能。
改造后,多技术栈银行核心系统实现了多技术栈集成运行、分布式部署、建模设计开发、全方位并行验证、业务连续性保障等技术目标。,满足了业务服务完整承接、持续拓展、体验友好、切换顺畅的要求,为促进中国建设银行可持续发展提供了坚实的技术保障。
为全面推进多技术栈银行核心系统建设,建行提出了覆盖应用层、平台层、基础设施层的端到端系统解决方案。首先,提供企业级开发框架和分布式平台技术服务,分离非业务逻辑功能,在平台层实现和提供。然后通过分布式平台对多技术栈技术能力进行统一适配和封装,解决了平台技术服务和底层技术栈升级替换对上层应用的影响,保证了应用专注于业务逻辑开发、开发效率和质量。
基础设施层:云计算平台屏蔽了硬件差异,为应用提供高可靠、安全的多弹性基础设施云服务,支持多技术栈管理和控制。
层:通过搭建企业级分布式平台,统一基于RD框架的应用开发模式,封装分布式、微服务、云原生等主流基础技术、解耦应用对底层技术的直接依赖,支持核心系统分布式架构转换和多技术栈应用。
应用层:强化应用系统的基础能力,适应多技术栈特性带来的技术和业务处理的变化,使核心系统具备在各种技术栈上运行的能力。
应用层设计采用开放和主机集成架构,支持逐步切换,积极稳妥推进分布式架构转型,确保过渡期核心业务和数据完整性。涉及的主要组件包括以下内容。
应用:作为交易网关,实现所有在线服务访问、路由决策、路由分配等。
配置中心:存储路由决策服务配置、索引数据、部署信息等。
服务集成代理:自主开发的服务集成代理框架,实现了微服务安排和一致性保证功能,支持不同单元采用不同的技术栈。
微服务:单元部署,对应数据分片,支持不同单元采用不同的技术栈。
图1基于多技术栈的银行核心系统总体技术方案
主要创新点
在项目建设过程中,建行遵循“大胆创新、科学严谨、稳步推进、顺利投产”的建设理念,创造性地解决了困扰跨技术栈应用迁移的10余项技术难题。该项目的主要创新点如下。
1.实现核心系统多技术栈融合运营。
通过项目的分层设计、自主开发的分布式平台和多技术栈集成部署,实现了核心系统在商用技术栈、互联网技术栈和国产技术栈的集成部署。每个技术栈都能支撑核心系统的稳定运行,形成从商用技术栈到国产技术栈的平滑演进路径。

2.满足跨技术堆栈应用统一每日切割的要求。
自主开发的日切协调器,由分布式批处理平台控制。通过日切准备和日切执行两阶段机制,实现多个独立运营业务单元在业务日同一时间的同一需求,达到集中式架构下统一日切的业务效果。
3.建立准实时强一致性保障机制。
通过自主开发的分布式事务管理器和微服务组合驱动引擎的有效协作,建立了包括进程内一致性和事后一致性的两阶段跨技术栈一致性保障机制。
4.支持多技术栈快速交付业务功能。
基于自主开发的可视化设计开发工具进行设计,形成一套模型。该模型基于不同技术平台的特点和规则,通过实例化自动生成多套不同语言的程序代码。对于数据库表、内部组件和外部服务,划分为多个微服务单元,由服务集成代理组合服务进行跨数据库事务,对外提供完整的服务。解决了多技术栈中业务功能服务的快速交付问题。
5.实现核心系统的高可用性和业务连续性保障。
按照多个可用区域的模式,实现了同一个园区多个机房的部署,应用具备了同城多活动的能力;通过异地数据复制部署容灾环境,保证灾难场景下的业务连续性;自研应用路由实现配置、动态流量分配和并行控制,支持多技术栈环境下基于多因素的流量控制,全面支持银行核心系统批量切换和并网业务处理。
6.形成“架构先行,平滑切换”的工程方法
“架构先行”:在全面分析评估投产风险的基础上,采用两阶段切换策略,先切换事务路径,从集中式架构切换到多技术栈融合式架构,再分支迁移数据。通过完善的试运行安排和双向白名单机制,实现了非下移分行和下移分行的同步试运行,有效分解了首次下移风险。“平滑切换”:探索多维度增量切换模式。在保持交易接口不变的前提下,按照分行级或客户级的粒度进行切换,分布式系统将逐步对外提供单轨服务,实现从集中式到分布式透明到外围的平滑过渡。
图2融合架构下我行核心系统应用架构框图
实施效果
该项目共获得17项专利授权,其中信用卡《金融行业服务器软硬件应用关键技术研究》被列入国家重大专项“核高基”在金融领域的唯一试点项目。
自2021年3月起,在全双机并行验证的基础上,建行信用卡、个贷、客户信息、私人存款、借记卡业务批量单轨道上线运行。运行后,系统运行稳定,不存在业务一致性问题。系统各项运行指标满足业务要求。
1.双机并行验证
全面的分布式系统部署在生产环境中。在不影响真实生产事务的前提下,在分布式系统中准实时模拟真实生产事务。为了测试系统的准确性,建行提出了“三真四比五验证”的核心系统异构并行比对方法。
“三真”:利用真实的生产数据、生产交易和生产环境,实施准实时操作。
“四比较”:比较联机交易输出报文、批处理文件结果文件、每日增量数据库返回、交易生成的会计分录等。在主机和分布式系统之间。
“V验证”:验证目标架构下分布式系统的功能完整性、可靠性、稳定性、高可用性和高性能。

并行验证期间,分布式核心系统日均交易量4.4亿笔,TOP10交易平均处理时间57.99ms,压力测试峰值30000TPS,充分验证了分布式核心系统的稳定性和可靠性。
2.单轨铁路投入运营。
截至2021年底,建行私人存款借记卡已在青海、宁夏两家分行上线运营,2000万账户下线;信用卡业务已在开放分布式平台上全面运营,100万客户在国内技术栈平台上运行,具备支持更多客户迁移到国内技术栈的能力;个人贷款业务已完成,国内业务全面在开放分布式平台上运营;客户的信息已经完成,国内外超过8亿客户运行在开放的分布式平台上。
总结
通过该系统的建设实践,在国内软硬件产品还在逐步成熟,没有成熟方案可供参考的情况下,中国建设银行在大型国有银行中率先完成分布式核心系统架构改造,探索大型商业银行核心系统架构改造的新模式,逐步实现核心系统在多种技术栈下的平滑切换。对金融行业信息技术应用创新具有示范和借鉴意义,促进国内技术创新和产业生态发展。


