实战 | 基于多技术栈的银行核心系统建设——在保证安全生产前提下稳步推进分布式架构转型
欢迎金融科技工作者积极投稿!
投稿邮箱:newmedia@fcmag.com.cn
——金融电子化
文 / 中国建设银行金融科技部 傅坚 孙代勇
项目背景
当今世界科技进步日新月异,科技已成为衡量一个国家核心竞争力的重要指标,提升核心技术自主创新能力已经上升为国家战略要求。与此同时我国银行业务正在迅猛增长,随着国家核心技术创新战略的稳步推进,摆脱数据大集中模式下的银行核心系统“大型机(主机)依赖症”、快速推动集中式架构向分布式架构转型,已成为当下我国金融行业IT系统建设领域亟待解决的关键课题。
中国建设银行作为国有大型银行,在全球拥有超过8亿客户,提供7×24连续不间断金融服务,在推进分布式架构转型过程中面临诸多问题与挑战:首先是在系统迁移过程中不仅要做到客户无感、对外服务水平不降低,而且还要完整承接现有核心银行业务功能,同步支撑新的业务需求;其次从目前国内IT实践来看,尚未有如此超大规模、高度复杂的应用移植成熟方案可供借鉴;然后是核心系统分布式架构转型是复杂的大型系统工程,需要跨部门企业级合作,涵盖多种技术栈的融合与替换,要实现的是“飞行中换引擎”,对实施工艺与跨部门协作提出了很高要求;最后与国外基础软硬件产品相比,大多数国产基础软硬件还处于爬坡阶段,产品成熟度还需要较长时间打磨,支撑大规模核心系统业务稳定运行的效果需要时间检验。
建设目标与总体技术方案
为避免因IT产品供应链风险引发系统性金融风险,中国建设银行锐意进取、迎难而上、统筹安排、周密部署,2019年启动了基于多技术栈的银行核心系统建设工作,建设范围涵盖存款、贷款、借记卡、信用卡、客户信息等原本运行在大型机上的核心业务领域全量业务功能。
转型后的多技术栈银行核心系统实现了多技术栈融合运行、分布式部署、模型化设计开发、全量并行验证、业务连续性保障等技术目标,满足了业务服务完整承接、持续拓展、体验友好、平滑切换的需求,为推进建设银行可持续发展提供了坚实的技术保障。
为了全面推进多技术栈银行核心系统建设,建设银行提出涵盖应用层、平台层、基础设施层端到端的体系化解决方案。首先提供企业级开发框架及分布式平台技术服务,分离非业务逻辑功能并在平台层统一实现和供给;然后通过分布式平台统一对多技术栈技术能力进行适配与封装,解决平台技术服务和底层技术栈升级、替换对上层应用的影响,保证应用专注业务逻辑开发以及开发效率和质量。
基础设施层:通过云计算平台屏蔽了硬件差异,为应用提供高可靠、高安全的多元弹性基础设施云服务,支持多技术栈管控。
平台层:通过搭建企业级分布式平台,基于研发框架统一应用开发模式,封装分布式、微服务、云原生等主流基础技术,解耦应用对底层技术的直接依赖,支持核心系统分布式架构转型和多技术栈应用。
应用层:强化应用系统基础能力,适应多技术栈特点带来的技术和业务处理变化,使核心系统具备在多种技术栈上运行的能力。
应用层面设计采用开放与主机融合架构,支持渐进式切换,积极稳妥推进分布式架构转型,保证过渡期核心业务与数据完整性,涉及的主要组件包括如下。
应用路由:作为交易网关,实现所有联机服务接入、路由决策、路由分发等。
配置中心:存放路由决策服务配置、索引数据(客户编号、账号等)、部署信息等。
服务集成代理:自研服务集成代理框架,实现微服务编排、一致性保障等功能,支持不同单元采用不同技术栈。
微服务:单元化部署,与数据分片对应,支持不同单元采用不同技术栈。
图1 基于多技术栈的银行核心系统总体技术方案
主要创新点
在项目建设过程中,建设银行遵循“大胆创新、科学严谨、稳步推进、平滑投产”的建设理念,开创性解决了困扰跨技术栈应用移植的10余项技术难题,项目的主要创新点如下。
1.实现核心系统多技术栈的融合运行
项目采用分层设计、自研分布式平台、多技术栈融合部署等手段,实现了核心系统在商用技术栈、互联网技术栈与国产技术栈的融合部署,各技术栈均能支持核心系统稳定运行,形成了一条从商用技术栈到国产技术栈的平滑演进路径。
2.满足跨技术栈应用统一日切的要求
自研日切协调器,由分布式批处理平台控制各个部署单元,通过日切准备、日切执行两阶段机制,实现了多独立运行业务单元对营业日的同一时刻同一性要求,取得了集中式架构下统一日切的业务效果。
3.建立准实时强一致性保障机制
通过自主研发的分布式事务管理器和微服务组合驱动引擎的有效协同,建立了包含事中一致性(对服务组合场景提供了实时的多模式一致性处理方式,实现了跨技术栈单元的一致性保障)、事后一致性(建立了准实时和日终一致性保障处理机制,对事中一致性处理遗留的分布式事务进行进一步处理,最大化减少极端情况下需人工处理的工作量)的两阶段、跨技术栈的一致性保障机制。
4.支持多技术栈快速交付业务功能
基于自主研发的可视化设计开发工具进行设计,形成一套模型。基于模型结合不同技术平台的特性及规则,实例化自动生成多套不同语言程序代码。针对数据库表、内部构件、外部服务拆分成多个微服务单元,由服务集成代理对于跨库事务进行服务组合对外提供完整服务。解决了多技术栈快速交付业务功能服务的难题。
5.实现核心系统高可用和业务连续性保障
按照多可用区方式实现了同园区多机房部署,应用具备同城多活能力;在异地通过数据复制实现灾备环境部署,保障灾难场景下的业务连续性;通过自研应用路由实现配置化、动态化流量调拨和并行控制,支持业务流量在多技术栈环境下基于多要素的流量控制,全面支撑银行核心系统分批切换和并网业务处理。
6.形成“架构先行、平滑切换”的工程方法
“架构先行”:基于对投产风险的全面分析与评估,采用两阶段切换策略,先切换交易路径,从集中式架构向多技术栈融合架构进行切换,再按分行迁移数据,通过稳妥的试营业安排和双向白名单机制设置,实现非下移行和下移行的同步试营业,有效分解首次下移风险。“平滑切换”:探索出一种多维度(按客户、分行、业务与交易)的增量渐进式切换模式,在保持交易接口不变的前提下,按照分行级或客户级(最小)粒度进行切换,由分布式系统逐步对外提供单轨服务,对外围透明实现从集中式到分布式的平滑过渡。
图2 融合架构下银行核心系统应用架构框图
实施效果
本项目累计获得专利授权17项,其中信用卡——《面向金融行业的服务器软硬件应用关键技术研究》纳入国家重大专项“核高基”金融领域唯一试点。
从2021年3月开始,在实现全量双机并行验证基础上,建设银行信用卡、个人贷款、客户信息、对私存款与借记卡业务分批次单轨投产切换,投产后系统运行稳定,未发生业务一致性问题,系统各项运行指标满足业务需求。
1.双机并行验证
将分布式系统全量部署在生产环境,在不影响生产真实交易的前提下,将全量生产真实交易在分布式系统准实时进行模拟运行。为了检验系统的准确性,建设银行提出了“三真实、四比对、五验证”的核心系统异构并行比对方法。
“三真实”:使用真实的生产数据、生产交易、生产环境基础实施准实时运行。
“四比对”:比对主机和分布式系统的联机交易输出报文、批量文件结果文件、每日数据库增量返回、交易产生的会计分录等。
“五验证”:验证目标架构下的分布式系统的功能完整性、可靠性、稳定性、高可用性及高性能。
双机并行验证期间,分布式核心系统日均交易量4.4亿笔,TOP10交易平均处理时间57.99ms,压力测试峰值30000TPS,全面验证了分布式核心系统的稳定性和可靠性。
2.单轨投产运行
截至2021年底,建设银行对私存款借记卡(分布式)已在青海、宁夏两家分行投产运行,下移2000万账户;信用卡业务已全量运行在开放分布式平台,100万客户运行在国产技术栈平台,具备支持更多客户迁移至国产技术栈能力;个人贷款业务已完成境内业务全量运行在开放分布式平台;客户信息已完成境内外超8亿客户全量运行在开放分布式平台。
小结
通过本系统的建设实践,在国产软硬件产品仍在逐步成熟、缺乏可借鉴的成熟方案情况下,建设银行在国有大型银行中首家完成分布式核心系统架构转型,探索出一种大型商业银行核心系统架构转型的新模式,渐进式实现了核心系统在多技术栈下的平稳切换,对于金融行业信息技术应用创新工作具有示范与借鉴意义,促进了国产技术创新与产业生态发展。
(栏目编辑:张丽霞)
往期精选:
(点击查看精彩内容)
● 实战 | 创新探索,转型发展——中国银行海外分布式核心银行项目
● 实战 | 追求卓越,砥砺前行——小型机下移x86开放平台最佳实践
● 实战 | ISO 20022 报文库和我国金融报文库应用情况
新媒体中心:主任 / 邝源 编辑 / 傅甜甜 张珺 邰思琪