免费试用
作者:杨丽
案例实践
2024-01-19

分布式数据库替换之“杭银路径”:找到合适的,你就去做,只要用了就有经验,只要有经验就能够改造。

分布式数据库国产替代

杭州银行副行长李炯初次见到 PingCAP 团队时,他非常好奇,PingCAP 的分布式数据库 TiDB 究竟能怎样应对银行核心系统对数据强一致性的要求。

一般来讲,集中式系统具备数据一致性的天然优势,但切换到分布式系统中,根据 CAP 理论,能够同时满足“一致性”、“可用性”和“分区容错性”是非常难的事情。在实际业务场景中,企业会根据使用进行必要的舍弃和平衡。

但在银行核心系统,强一致性,作为最严格的一致性级别,想要用上分布式数据库实现“强一致性”,那么就必然要经历数据库的专家论证、反复测试,甚至某些极限破坏测试。这并不容易。
2019 年,杭州银行启动对国产分布式数据库领域的前沿技术研究,适配新一代分布式核心系统的金融级分布式数据库选型工作也随之拉开。

需要注意的是,对于银行核心系统数据库的选型,分布式数据库只是作为一类。而在这个范畴里 ,分布式数据库的高可用是天然优势,因而也受到银行 IT 的关注。

“SAPE 原则,即 Safe 高安全、Availability 高可用、Performance 高性能和 Ecology 多生态。”这是杭州银行新一代分布式核心系统数据库选型中的重要依据。过去二十多年的投入,以及结合自身业务阶段所需,让这份想法变得明确、可行。
2022 年 6 月,杭州银行新核心项目正式启动。同年 11 月,TiDB 被列为核心系统数据库第一选择方案。2023 年 5 月,杭州银行完成系统功能开发和外围系统的改造,在随后几个月的各项测试验证后,11 月 18 日,杭州新一代新核心系统正式投产上线。新核心系统是业内首个实际投产的云原生、分布式、全栈国产化的银行核心系统。

据官方数据,新核心系统自上线以来运行安全稳定,大幅提升了业务处理效率,已支撑日均交易量 1000+万笔,平均交易耗时小于 100 毫秒,较原核心业务系统缩减 54%,日终跑批的处理速度为原核心业务系统的 2.1 倍,能够有效支撑未来业务的快速发展。

为什么是现在?

银行对国产数据库的替代趋势其实并不短,但进入到银行核心场景却经验并不多。

过去,由于历史原因,金融银行 IT 基础架构是以 IOE(IBM 大型机、Oracle 数据库、EMC 存储设备)为核心的集中式架构,它们支撑了银行系统长达几十年的运营,一定程度上推动了中国银行信息化和金融科技的发展。

2010 年代,“去 IOE”浪潮在国内兴起。基于国家安全可控战略的要求,以及现代金融数字化发展的迫切需要,银行开始关注到分布式架构的领先性,并在该领域逐步推进成果。市面上对集中式存储、小型机的替代步伐较快。但在数据库层面,银行核心系统对国外集中式数据库依赖仍非常高。

《金融业数据库供应链安全发展报告(2022)》调研数据显示,集中式数据库在金融业总体占比仍高达 89%,其中银行 80%,证券和保险业占比均超过 90%,集中式数据库在金融科技数字化进程中扮演重要角色。相比之下,金融行业分布式数据库总体占比为 7%,银行业超过了 17%,证券和保险业相对较低。

对于杭州银行而言,从 1996 年建行起,银行核心系统的建设发展经历了两个主要阶段:1999 年,第一代核心系统正式投产,它实现了杭州银行各网点业务系统的联网互通;2012 年,第二代核心系统投产,它实现了从以账户为中心到以客户为中心的转变。

能够看到,基本每隔十年,杭州银行都在推动新一代技术架构和业务架构的升级换代,这实际也反映出银行业务发展与 IT 技术的交替性迭代。

新时代下,杭州银行面临的情况是,第二代核心系统已经承载了非常多的业务功能,用户和业务规模迅速增长,而同质化的竞争态势,也要求银行从“以客户为中心”出发,系统应当具备因客户需求而变的能力,应用需要快速敏捷迭代,系统也需要进一步解耦、提升可交互速度。

到了 2022 年,杭州银行正式启动新一代核心系统重构,力求以全栈国产化、分布式、云原生的架构作为新核心的建设底座。基于全栈国产化,杭州银行实现了在办公管理类、终端技术类、一般业务类和核心关键业务系统的国产化能力搭建;基于云原生、分布式的架构建设,杭州银行搭建了面向客户、内核成熟、灵活扩展、稳定高效、自主可控的第三代分布式核心系统。

杭州银行新核心系统

关于建设云原生分布式核心业务系统的必要性,李炯曾在 2023 年 6 月撰文分析了三点原因:一是系统基础功能重构;二是技术升级换代;三是自主可控。

在技术层面,他指出,“近十年来,信息技术已经发生了根本性变化,传统的 IOE、集中式、胖核心架构已经被云计算、分布式、微服务的小核心架构所替代。云计算已成为未来计算资源的基础,分布式微服务架构和分布式数据库已经成为联机应用的主流架构。杭州银行现有核心业务系统是基于 Oracle 数据库的集中式应用,随着交易量和账户数的增加,面临着进行分布式技术改造的难关,数字底座更新换代迫在眉睫。”

数据库如何平稳迁移也成为此次重构的重难点。

“不依赖于云的数据库”

“不依赖于云的数据库,是我考虑的一个方面。我们比较单纯希望让用户有更多的安排和选择,而不是有其他方面的要求。”李炯对钛媒体表达。

从过去几年来看,国内各大银行尤其是国有大行和股份制银行相继树立国产数据库替代的行业标杆,从偏外围、相对比较简单的系统,也逐步进入到核心系统改造。这意味着,银行的存款贷款、交易结算、借记卡、贷记卡、投资理财以及对公业务等,都在考察国产数据库方案。

但怎么做,各家单位其实有所不同,需要根据自身现状和目标要求进行匹配,因而在方案和具体实践方面也有差异化的选择。
而对于此次分布式数据库选型,杭州银行也有自身的考量,也是从建行起就明确的:自主、可控。

这里的自主可控其实有两层含义:一是降低对非国产化数据库的使用占比;二是保持自身技术的可控和独立性,而不是“黑盒”,不依赖于产品定制或某个产品特性,因为“特性”有时对解决客户问题带来方便,但也增加了对企业的依赖度。

实际上,与 TiDB 合作中,杭州银行也反复强调,不需要为其做定制化开发,专业的人来做专业的事,边界清晰,同时耦合度低,便于优化和调整。“我们认为只有产品通用才能保持独立性,才能真正兑现软件工程解耦的要求。”

这个过程中,从客户营销系统到互联网核心,再到账务核心,TiDB 在杭州银行的应用推广经历了从外围到核心业务的精细打磨。杭州银行利用 TiDB 原生分布式架构,有效解决了传统集中式核心的并发瓶颈,提升了核心系统的高可用性和动态扩容能力。同时,TiDB 基于两地三中心方案进行部署,同城双中心数据强同步实现了双活数据中心双写并行工作、灾难快速自动恢复且数据零丢失。

国产数据库的换道超车,还需珠峰检验

截至目前,杭州银行新一代分布式核心系统上线已有月余。结合最近几个重要节点包括月末处理、年度结息、年终处理的验证来看,杭州银行对 TiDB 给出了较高的评价:“在高吞吐、低延迟、高可用、自动伸缩,以及围绕整个上线的整体服务方面,是超出预期的。”

这还远远不够。

“替代能不能成功,还需要时间验证,不是一周、一个月就行。我们的规模跟大行相比还是会有数量级的区别,交易量级对数据库有重大影响。在我们这儿超出了预期,但在整个银行业中,还需要通过更大的业务量、具体的时间节点以及不同的外部环境中去验证。”李炯对钛媒体表示。

正如上文提到的,对于银行核心系统数据库的选型,分布式数据库只是作为一类。国产分布式数据库技术已逐渐成熟,不仅能够取代传统的国外数据库系统,还能在核心系统方面进行替代,从而支持银行的核心运营需求。但银行拥有大量系统,真正需要分布式数据库作支撑的可能也只有一部分。银行需要有不同层次、不同类型的数据库厂商参与,并进行管控,而不是简单的一刀切;

同时,分布式数据库也有其局限性,杭州银行面临的新问题是:当新核心系统在分布式数据库上进行开发,此前遵循的集中式开发原则和规范,已经不适用了,如何形成新的惯例?

整体来看,国产数据库近年来十分繁荣,有支持混合负载 HTAP 的,有基于开源内核的,也有纯自研内核的,这给银行做数据库国产化试点,提供了丰富的可选择性方案。例如,国产数据库以 MySQL 替代 Oracle,或基于 MySQL 二次改造,或完全自研兼容 MySQL 的技术路线以及相应的数据库社区,这种做法并不少见。

当银行主动走出舒适区,不断积累国产化技术栈经验时,其实也在经历比较大的风险和成本投入,现阶段,很难找到有一款数据库能满足所有的业务场景。由于杭州银行在金融科技的显著投资,加上国家对国产化的要求和历史因素的综合影响,该银行在考虑进行全面国产化替代。从杭州银行推进领先架构的路径上,能够看到这么一个特点:将风险拆解,让方案落到实处,找到合适的就去做,只要做了就有经验,只要有经验就能够改造。

全栈国产化技术路线,杭州银行新一代核心系统的成功上线具有标杆性意义,它标志着国内银行业核心系统进入到了新技术时代,也代表着我国银行业在科技领域的信息自主安全可控、技术架构现代化和系统投产切换工艺方面均达到了一个新的水平。

(本文首发钛媒体 APP)

新经济行业内容专区上线,为新经济企业数据库选型和应用提供深入洞察和可靠参考路径。