银行传统核心系统架构面临诸多技术挑战
传统银行核心系统多采用集中式架构,即所有业务处理和数据存储都集中在少数几台大型计算机或服务 器上。这种架构在特定历史时期满足了银行业务的需求,确保了数据的一致性和安全性。同时,核心系统涵 盖了存贷款管理、支付清算、总账报表等多个功能模块,为银行业务提供全面的支持。系统能够处理各种复 杂的金融业务,包括但不限于客户信息管理、资金清算、账务核算等。由于采用集中式架构和严格的数据访 问控制机制,传统银行核心系统在数据安全性方面具有较高的保障。系统内部设有严格的安全审计和监控机 制,确保交易的合法性和合规性。
然而,传统银行核心系统采用的技术架构和编程语言在进行核心系统建设过程中存在不适用的问题。同 时在经过多年需求更新及迭代的基础上,越来越难以满足现代银行业务对高并发、低延迟、高可用性的需求。 同时,集中式架构的系统在扩展性方面存在瓶颈,主要通过增加硬件资源来提升系统性能,其存在扩展性瓶颈, 且扩容成本较高。随着银行业务的不断发展,传统核心系统难以满足日益增长的交易量和数据存储需求。
除此之外,传统核心系统内部各模块耦合度较高,新业务或新功能的上线需要对系统进行较大的改造和 测试。其相对紧耦合的架构设计,在业务拆分、定制化开发时需要更高的人力和时间成本。随着系统规模的 扩大和复杂度的增加,集中式架构的系统在维护和升级方面需要投入大量的人力、物力和财力,维护成本不 断攀升。
随着互联网的发展,系统架构不断演进以满足日益增长的业务需求和技术挑战。
新一代银行核心数字系统建设方案详解
核心业务系统作为银行运营过程中最重要的系统,其在整体业务构建过程中,应遵循标准的业务建模方法论。目前行业中的最佳实践包括但不限于 TOGAF、BIAN、DDD、IBM 五级建模等。
TOGAF 是一个开放的、可扩展的企业架构框架,它提供了一套用于设计、规划、实施和管理企业架构 的方法和工具。TOGAF 的架构开发方法(ADM)是一个可靠的、行之有效的方法,以发展能够满足商务需 求的企业架构。它包括了如何描述企业架构、具备企业架构能力需要什么以及如何开发企业架构等内容。 TOGAF 标准第 10 版更加聚焦组织对敏捷方法论的使用,提供了更多的指导和更简单的导航。
BIAN 是银行业架构网络,提供了一套针对银行业务的逻辑组件蓝图,专注于银行 IT 环境的逻辑蓝图和 服务域规范。BIAN 服务架构的主要组成部分包括商业领域、业务领域、BIAN 服务域、服务组和服务运营。 BIAN 与 TOGAF 可以相互补充,TOGAF 提供了一个结构化的方法,而 BIAN 提供了银行业特定的架构内容, 两者结合可以加快企业架构的交付速度。
DDD 是一种软件设计方法,它侧重于通过领域模型来解决业务复杂性问题。DDD 通过衔接上下文对业 务进行合理的领域拆分,使得领域模型更好地转向微服务和落地。DDD 的核心知识体系包括领域、子域、核 心域、通用域、支撑域、限界上下文、实体、价值对象、聚合和聚合根等概念。它强调战略设计和战术设计, 以及领域模型的实现。
IBM 五级建模是一种层次化的企业架构方法,它将企业架构分解为五个层次:业务架构、信息系统架构、 技术架构、数据架构和应用架构。
这种方法帮助企业将复杂的架构问题分解为可管理的部分,并提供了一种 结构化的方式来描述和分析企业架构。
在整体业务建模中,建议根据不同的战略、场景使用不同的业务模型,以便于更好地落地银行整体业务 模型。如在银行企业框架、战略层面,可以使用 TOGAF 模型完成,其能够提供一个全面的企业架构框架, 适用于任何行业的组织,它更侧重于 IT 架构和业务架构的整体规划。
而 BIAN 可以作为特定行业的业务架构 模型,其专注于银行和金融服务行业的业务架构,提供了一套标准化的业务服务和流程模型,以促进不同系 统和组织间的集成。DDD 则可以用于设计具体的业务领域模型,其是一种软件设计方法,它更侧重于通过领 域建模来解决复杂的业务需求,它通常用于软件系统的详细设计阶段。
图 1 企业架构方法论模型示意图
TOGAF: 定义企业的总体架构蓝图,包括业务架构、数据架构、应用架构和技术架构。
BIAN: 可以作为 TOGAF 业务架构的一部分,用于标准化业务流程和服务。
DDD: 可以在软件开发过程中使用,特别是在需要处理复杂业务逻辑时,通过创建领域模型来指导软件 设计和实现。
基于以上不同的行业方法论,各银行在核心系统建设过程中,可以充分比对行业最佳实现,根据自身定 位,使用不同的业务建模工具,构建符合自身战略规划、业务发展的个性化业务模型。
3.1.2 灵活的功能架构
在功能架构上,行业主流架构采用微服务和分布式技术体系,充分利用微服务的分层解耦、面向服务接 口、相互独立、层次化设计的最佳实践,达到系统的灵活性、可扩展性和稳定性设计。
新一代核心业务系统设计的模块化、松耦合、产品化及参数化等设计原则,也可以通过在线生产环境应 用部署的横向扩展,结合开发运维平台的灰度部署和优雅启停,支持核心业务功能进行安全健壮、稳定可靠、 便捷高效的线性可扩展。
图 2 应用横向扩展能力示意图
新一代核心系统在功能架构上保障整体的灵活性,确保软件能够适应不断变化的需求、促进可维护性和 支持未来的扩展。
现有功能架构支持模块化设计,每个模块由不同的微服务组件构成,负责特定的功能。这 种设计方式不仅有助于团队并行开发,还能使软件更容易理解和维护。当需要修改或添加功能时,可以单独 处理某个模块,而不影响其他部分。在不同模块之间保持较低的依赖性,即松耦合。
当改变一个模块内部的 工作方式不需要对其他模块进行重大修改。通过接口定义业务功能模块间的交互,提高效率、降低影响。各 业务模块的微服务集群,可以轻松地添加、移除或替换系统中的组件,而不需要对整个系统进行大规模的重构。
这提高了系统的灵活性,使得新技术或新功能可以快速集成到现有系统中。同时优化管理机制,让用户或管 理员能够根据需要调整软件的行为,例如通过配置文件或管理界面开启或关闭某些功能、设置参数等。
在进行功能架构设计时,应考虑到自动化测试的需求,确保每个模块都可以独立测试。这有助于及早发 现和修复错误,同时也降低了因修改引起的问题的风险。同时,虽然灵活性很重要,但也不应牺牲性能。合 理的架构设计在保证灵活性的同时,也考虑到效率和资源消耗。
另外,新一代核心系统在整体核心系统建设的过程中,应准备全面、优质的说明文档,详细的文档不仅 对开发者很重要,对于维护人员来说也是必不可少的。良好的文档可以帮助快速理解系统结构、各模块的功 能以及它们是如何协同工作的。考虑到技术的发展趋势,设计时应预留一定的空间来应对未来可能出现的新 技术和需求变化。
3.1.3 先进的技术架构
构建新一代技术平台,支持高扩展性、高可用性和高性能的应用系统。技术平台以云平台为基础技术底座, 使用云原生及分布式技术,完成核心应用与技术平台的深度集成。
与此同时,形成技术平台通用标准,未来新 建系统、存量系统均可基于通用标准完成自身升级,逐步实现银行新一代技术架构升级,推动数字化转型进程。
图 3 云原生技术平台示意图
分布式技术平台
云原生金融 PAAS 平台整体架构如图,主要包括: 容器云、分布式技术底座、低代码应用开发平台,并 提供应用开发到运维的完整的 DevOps 能力。
图 4 分布式技术平台示意图
容器云平台
云原生容器平台,基于 Docker 容器、Kubernetes 和 Istio 服务网格等相关云原生技术和云原生理念, 深度兼容国产信息化环境,实现高性能可伸缩的容器化应用管理能力,支持企业级容器化应用的全生命周期 管理,有效帮助银行实现数字化转型,提升 IT 交付能力和竞争力。
图 5 容器云平台示意图
分布式技术底座
服务网格(Genesis): 使用容器及容器编排作为底层基础设施,服务网格作为微服务治理、流量管控 的基础平台,可以对多个容器编排集群进行管控,可以通过界面可视化集群运行状态,对容器化服务进行精 细的服务管控及流量控制,同时通过网格组件可以将传统方式部署的微服务纳入管控,为系统的兼容性、可 用性、伸缩性及性能等技术要求提供了必要的保障。
图 6 分布式技术底座示意图
传统微服务(Jupiter): 兼容 Spring Cloud 传统微服务,不仅包括自身运行状态的部分,还要涉及外 部接入的适配,以及配合的管控体系。其为银行的业务系统在服务层面提供分布式的处理机制,使其由集中 式转换为分布式,从而具备横向伸缩的能力,并且支持业务既可以按不同的维度进行拆分,又可以有机地组 合在一起,可以灵活地应对互联网带来的快速变化。
图 7 微服务平台示意图
低代码应用开发平台
基于容器云与分布式技术底座之上提供分布式低代码应用开发平台。主要包含运行框架、开发平台两大 部分。
低代码开发平台
图 8 低代码应用平台示意图
运行框架
运行框架是分布式跟金融行业融合的体现,是结合多年对银行业务的长期积累及深入理解,形成的一套 对典型金融业务场景深度支撑的框架。开发人员只需要在此基础上快速装配即可,大大提高了开发效率。
组件云仓(Solar): 组件云仓以组件管理为基础,通过组件校验 、检测、测试、发布形成开发闭环, 实现组件全生命周期管理。增强组件社区建设,沉淀丰富组件库。
典型业务场景支持(Comet): 这些场景支持在上述基础组件之上,跟具体的业务场景有更加紧密的关 系。例如:对于日间联机处理,需要提供校验、授权、确认等业务流程的支撑,以及交易防重等特殊要求; 互联网应用就要提供对热点账户的处理机制。
开发平台
前端开发平台(Vela): 统一 WEB 开发框架基于 Vue+ElementUI 为基础框架,采用其独特的组件化开 发形式,进行了大量的二次开发,使其更符合金融业务场景,并贴合现代工程化概念。使用最新的前端技术栈, 提炼了典型的业务模型,提供了丰富的功能组件。
数据标准平台(Relativity): 数据标准管理平台系统产品,定位是为银行提供全行级的数据标准管理服 务。支持多层级管理,定位全行级数标管理平台。支持多分支管理,可管理多套环境,可支持并行开发。拥 有权限管理、历史记录、修订记录、接口导出 / 导入、增量 SQL 生成等丰富功能。
业务视图 IDE(Luna-Robin):开发插件将工程模板、包路径、编码规范在插件层面做强约束。提供中 文顶层视图菜单,降低了原有开发体系过度的灵活性。提升规范性,以增加标准化程度。
DevOps:开发平台、分布式技术底座、容器云几个产品相互之间都是松耦合的,开发和运行也是相对 独立的。云原生金融 PAAS 平台提供全套的 DevOps 的支持,对上述的每一部分都提供从开发到运维的全套 支持,每一部分既可以独立也可以整合。
负载均衡能力
高性能承载: 通过打造业界领先的智能内存感知技术,通过智能预估算法动态调整资源分配,解决资源 占用不均问题,快速降低延时,提高设备性能。
低延时处理: 通过构建 DPDK 高性能收包分发模型,采用轮询和事件驱动双模加持加速收取数据包效率、 批量处理数据包减少上下文的切换、充分利用网卡硬件加速功能提升处理速度和通过动态负载均衡策略多种 方式,满足承载核心业务低延时处理需求。
大容量配置: 随着云原生技术快速发展,越来越多的核心业务容器化部署,负载均衡能够对数以万计的 服务器进行业务分发,更好地适应云环境的特性,满足核心应用对弹性、可靠性和可扩展性的要求。
新技术的引用
在技术平台的持续演进与创新中,我们前瞻性地引入了大模型代码辅助与测试辅助两大前沿功能,旨在 全面革新软件开发与质量保证的流程。大模型代码辅助通过深度融合先进的人工智能技术,特别是大规模预 训练模型,为开发者提供了前所未有的编程体验。
大模型代码辅助与测试辅助的强强联合,构成了技术平台上一道亮丽的风景线,它们不仅推动了软件开 发流程的智能化、自动化升级,更为企业的数字化转型注入了强大的动力。
可以提供行级 / 函数级实时续写、 自然语言生成代码、单元测试生成、代码优化、注释生成、代码解释、研发智能问答、异常报错排查等能力, 助力开发者高效、流畅地编码。代码辅助功能支持在多场景下对技术开发人员提供高效的代码支持工作:
跨文件感知让代码生成更贴合业务场景:客户端和模型层同步优化针对代码跨文件上下文感知能力, 生成代码更加贴合当前代码库的业务场景。
适配多 IDE 的原生设计,符合开发者使用习惯:适配 IDE 原生主题、交互模式,让开发者感受到 IDE 的原生视觉和交互体验,更符合开发者使用习惯。
研发问答、文档 / 代码搜索能力,打造沉浸式编码:无需切换工具,IDE 客户端内即可满足开发者编 码场景中的技术资料检索、技术难题解答的诉求,打造开发者沉浸式编码体验。
企业级研发流程支持,提供企业个性化方案:通过 RAG、Agent 等技术,借助企业知识和数据进行问答, 快速构建企业研发知识问答助手,提升团队的工作效率和协作能力。
通过编码辅助工具,结合企业知识库,一般可以做到 25% ~ 30% 的大模型生成代码的采纳率。