作者:戴涛
导读
近日,平凯星辰解决方案技术部总经理戴涛在 2024 数据技术嘉年华活动中,做了主题为“构建面向未来的金融核心系统”的分享,本文为戴涛演讲实录的全文。
文章分析了中国金融行业的发展趋势,并且基于这些趋势对数据库选择从架构、运维和开发三个视角进行展开。通过平凯星辰多年的金融行业实施经验和丰富案例,基于 TiDB 构建金融核心系统是一条可重复、可复制、具备先天技术优势的路径。
金融核心系统的发展对分布式架构提出更高要求
1 从业务视角看当前中国金融行业处于三浪叠加的阶段
随着金融科技的兴起,银行业正面临着深刻的变革。知名金融科技专家和作家布莱特·金(Brett King)在多部著作中提出,银行经历了四个发展阶段:1.0 网点银行,以物理网点为中心提供基本的存贷款服务;2.0 渠道银行,拓展线上渠道,例如 ATM、网上银行、手机银行等;3.0 平台银行,基于移动随时随地获得金融服务;4.0 开放银行,嵌入生产、生活,无所不在的智能银行。当前,中国银行的业务发展呈现出三浪叠加的态势:从 1.0 到 2.0 做网点转型,2.0 到 3.0 做渠道转型,3.0 到 4.0 做开放银行的转型。
三浪叠加的业务,对于当前的银行提出了更高的发展要求。银行的 IT 部门如何面对这些需求?唯有加速数字化转型。在技术方面加快技术融合场景,加速体验创新;技术架构升级推动科技创新,特别是采用分布式、微服务的架构,并且通过 DevOps 体系搭建数字化 IT 生产线;最后需要加大金融 IT 科技投入和人才组织创新。
2 从技术发展看,金融业对于金融科技提出更高的要求
这些转型的背后对业务和 IT 都提出了巨大挑战,以银行技术举例,银行发展的周期和 IT 技术是密不可分的,需要综合考虑业务需求和 IT 技术的演进。 追溯到 60 年代,半导体技术的突破使得电子数据取代人工记录,银行业务迈入信息化时代。 70 年代小型机、大型机出现,实现了银行业务的系统化批处理,提高了工作效率。 80 年代终端 PC 的普及,推动了银行业务的远程化和自动化,客户服务体验得到显著提升。 90 年代局域网的应用,开创了银行数据中心公司网时代,为集中化数据管理奠定了基础。 2000 年至今,银行业开启了互联网新时代,金融服务变得更加便捷、高效。
金融科技经历了从金融电子化、互联网化到金融科技融合与创新的演变历程。在金融科技融合与创新阶段,未来的新技术趋势可以浓缩为 ABCDIR5 七项:即 A 人工智能技术、B 区块链技术、C 云计算及平台、D 大数据相关技术、I 物联网和平台、R 机器人技术、5G 通信技术,这些新技术被广泛应用于越来越多的金融业务场景,对数据和数据库技术提出了新的挑战和要求。
3 IT 架构和业务需求双轮驱动推动银行核心系统升级
业务需求和 IT 架构是银行数字化转型的双轮驱动。传统金融核心系统以技术为中心,面向业务流程,产品开发周期长,数据庞大且业务繁杂,信息交换和共享效率低。而金融数字化升级需求则以用户为中心,强调架构的灵活性、敏捷性和海量业务的承接能力。以互联网支付处理为例,业务需求的快速变化如何承接?渠道和用户的体验如何优化?营销成本如何降低?IT 基础设施的升级重构是银行数字化转型成功的关键。银行需要构建一个敏捷、弹性、数据驱动、安全可靠的 IT 基础设施,以满足业务需求和数字化升级的需求。
4 分布式架构成为银行核心转型的必然路径
分布式架构已经成为银行核心转型的必然路径。 在早 期 WTO 时代,银行核心系统采用胖核心架构,将记账、数据分析、审计、监管等多种功能集成在一个系统中,以满足银行全面的业务需求。 随着金融业务的复杂性和多样性不断提升,传统胖核心架构难以满足敏捷性和弹性需求。 银行逐步转向采用瘦核心架构,将核心业务功能与非核心业务功能分离,以 SOA 架构为基础,把非核心业务功能模块化,通过服务接口进行调用,提升了系统的灵活性和可扩展性。
互联网技术的兴起,对银行业务产生了深远的影响。传统银行核心系统难以满足互联网业务的敏捷性和弹性需求,因此出现了双核心架构。双核心架构是指银行同时运行传统核心系统和互联网核心系统,以满足不同业务场景的需求。传统核心系统主要负责处理核心交易和数据管理,而互联网核心系统则主要负责处理互联网业务,例如网上银行、在线支付等。
近几年,随着微服务架构的兴起,银行核心系统开始向分布式架构演进。分布式架构将核心业务系统拆解为多个微服务,每个微服务独立开发、部署和运行,通过 API 接口进行通信,具有敏捷开发、弹性扩展、高可用等优点,称为分布式核心或者无核心。在此基础上结合自主可控的要求,分布式核心能够更好地支持业务的创新和可持续发展。
2023 年 11 月,TiDB 助力杭州银行新一代核心系统成功投产。杭州银行的资产规模约为 1.6 万亿,在中国银行排名在二十名左右。新核心系统是业内首个实际投产的云原生、分布式、全栈国产化的银行核心系统,标志着杭州银行核心业务系统实现完全自主可控和架构升级。
自上线以来,新核心运行高效稳定,日均交易量 1500 万笔,服务调用 5500 万次。客户体验显著优化,与上一代相比,新核心的联机交易性能大幅提升,平均响应时间小于 100 毫秒,提升了 1.5 倍;日终批量处理效率翻倍提升,为原系统的 2.1 倍,整个批处理在一小时之内完成。杭州银行采用了 TiDB 两地三中心架构部署,实现了双活数据中心双写并行、灾难快速自动恢复且数据零丢失。
杭州银行坚持应用与基础设施解耦的架构思想,秉承分布式、透明化的设计开发理念,这对于同行业来说具有重要的参考价值。在此次核心系统改造中,杭州银行并未对业务架构进行大幅调整,而是将业务逻辑平移至新的技术平台之上,既保留了原有的使用习惯,又为整体架构路线奠定了可持续创新的基础。
面向未来的金融核心系统对数据库的要求
总结下来,构建面向未来的金融核心系统对数据库的要求有三大维度。
- 从架构视角看,核心业务对数据库的要求除了稳定性以外,一定要考虑到数据库的通用性和开发透明性。
- 从运维视角看,除了同城双活以外,需要考虑到更好的线性可扩展,运维便捷以及更好的易用性。
- 从研发视角看,需要关注在开发和业务实践过程中,对于分布式事务、热点等问题的解决方案,以及技术生态是否健全等。
1 架构视角看,优先考虑开发透明性和迁移路径
从架构视角看,银行核心系统历经二十多年发展,积累了大量业务资产和应用系统,涉及多家供应商,数据库架构的选择需要以开发透明化为核心。传统分库分表方案对开发团队提出了较高要求,且造成技术栈和业务逻辑的复杂化。为了降低开发复杂度,提高开发效率,原生分布式架构的数据库产品是更好的选择,开发团队可以像使用传统数据库一样设计应用和开发代码。其次,选择对运维扩容更加透明的数据库产品,应用无需担心数据库表容量问题,单表大小可无限扩展且无性能拐点。第三,利用 HTAP 能力提供查询分析的透明性,提供更高性能的 SQL 执行效率。此外,数据库还应提供热点数据自动感知且自动打散的能力,从而降低应用设计的复杂度。
系统迁移 5R 模型为系统迁移规划提供了三个主要途径:平迁、改造迁移和新架构重构。调研数据显示,金融行业采用技术平移方式的比例为 56%,而采用新系统架构重构方式的比例为 44%。根据我们服务大量金融客户的经验,对于构建金融核心系统而言,平迁并非最佳选择。平迁虽然看似简单直接,但往往无法为业务带来显著收益。因此,在进行系统迁移决策时,应结合业务需求的主线进行综合考量。
对于大量的边缘化非核心系统,平迁是一种更为经济便捷的方式。它可以有效降低迁移成本,并减少对业务运营的影响。然而,对于核心系统而言,新架构重构才是收益最大的方式。重构意味着采用全新的架构、软硬件和设计开发理念,是实现核心系统升级和业务转型的重要途径。
在过去几年,随着互联网业务的兴起,一些银行采用分库分表单元化的架构来构建核心系统。如下图所示,单元化架构采用总分总结构,将全球业务分成三个业务单元。不管单元怎么划分,你会发现总是需要汇聚的,比如说全局管理单元、全局批量单元和全局数据汇聚单元等。单元化架构需要对应用代码、基础设施、数据存储做大量的改造和重新设计,导致架构复杂度大幅提升,维护难度随之增加。单元化架构本质上并非易于横向扩展的架构,随着业务量的增长,系统扩展难度会显著增加。跨地域数据同步一致性是单元化架构面临的重大挑战,需要复杂的解决方案来确保数据的一致性。
单元化架构并非构建金融核心系统的最佳选择,其高复杂度、低扩展性和数据同步挑战等问题制约了系统的长期发展。我们优先考虑在数据库级别采用横向扩展的技术,相比于单元化架构更具优势。对于拥有强大技术实力和资源储备的大型银行,单元化架构是一个可行的方案,其开发成本和周期可控。对于大多数中小银行,微服务架构搭配原生分布式数据库的组合更具优势。微服务架构可以提升开发的敏捷性和灵活性,原生分布式数据库则能提供弹性扩展、高可用和强一致性等特性,可以帮助中小银行构建高效、可靠且成本可控的核心系统。
2 运维视角看,优先考虑扩展性和真同城双活架构
从运维视角看,TiDB 原生分布式架构支持基于单节点的在线扩缩容。传统分库分表数据库的扩容非常复杂,往往需要做多个节点的扩容,例如从 8 个节点到 16 个节点,从 16 个节点到 32 个节点。TiDB 支持按需的单节点扩容,无数次客户侧 PoC 的结果表明,随着节点的增加,TiDB 的性能呈现准线性的增长。在银行季度结息场景下,可动态增加 TiDB 的计算节点,提升处理效率,缩短结算时间。
TiDB 在业界率先实现了银行核心系统的分布式数据库双活架构,为金融机构的业务连续性提供了坚实的保障。分布式数据库通常需要三中心部署才能实现双活,但对于大部分金融机构而言,由于数据中心地理位置限制,难以满足三中心部署条件。TiDB 创新性地推出了“3-2-1”双中心架构,在生产主中心部署 3 个 TiKV 节点,在同城副中心部署 2 个 TiKV 节点和 1 个 Learner 节点。该架构以更低的成本实现同城双活,已在多家银行成功落地。
除了两中心双活方案之外,TiDB 还提供金融级高可用的两地三中心方案。当主集群发生故障时,可以快速切换到灾备集群提供对外服务能力。通过引入只读集群、测试集群、近线库、逃生库等多种灾备扩展方案,全面满足金融机构的容灾备份需求。
3 研发视角看,需要端到端的各种场景解决方案
从研发视角看,分布式事务处理无疑是一个首要难题。目前,业界主流的分布式事务模型主要有 XA 锁,SAGA 模型、 TCC 模型和 MQ 事务消息机制。针对金融行业的业务特点,我们采用了 SAGA 模型帮助用户做账务的处理,利用 MQ 事务消息机制来辅助用户完成异步核算任务。在银行进行分布式系统改造的过程中,为了满足对数据实时性的要求,我们不仅需要优化数据库性能,还需要对应用架构进行相应的调整,以确保数据的低延迟传输和处理。
在研发领域,除了分布式事务处理之外,读写热点问题也是我们关注的重点。无论是传统数据库还是分布式数据库,写热点问题都是一个普遍存在的挑战。对于写热点的处理,我们建议采用 TiDB 数据库的散列写入策略。对于读热点问题,我们需要从两个层面进行优化。在数据库层,通过引入高效的缓存机制,提升热点数据的访问速度;在应用层,通过合理的缓存策略,进一步减轻数据库的访问压力。
在中国银行业,热点账户问题尤为突出,这要求我们在业务设计上做出一定的调整和妥协。同时,在 SQL 语句的编写上,尽量采用批量提交的方式,以减少对热点账户的频繁更新操作。在极端情况下,我们还需要与银行业界共同努力,不断完善相关应用的台账管理,以应对热点账户带来的挑战。
在跑批场景,TiDB 提供核心批处理解决方案。以微众银行为例,批量数据每天通过单元化数据库 TDSQL 近实时的同步到 TiDB 集群进行汇总,由批量应用程序在 TiDB 集群进行批量计算和加工。得益于 TiDB 出色的汇聚能力和可扩展性,以及丰富的工具生态系统,TiDB 上线之后,主要贷款业务的核心批量耗时显著减少,较原有系统提升了 3.8 倍。在面对大促销等高流量场景时,TiDB 展现出了卓越的水平扩展能力,能够轻松应对突增的数据处理需求。
TiDB 原生分布式的架构与传统集中式数据库相比具有显著的差异。银行核心系统对性能、稳定性、跨地域的高可用性都有着严苛的要求。因此,TiDB 建立了混沌工程体系,通过混沌测试来探索系统的性能边界、验证高可用性和容灾能力、评估扩展性、优化监控和告警机制、检验应急预案有效性,评估外围作业对系统的影响等。平凯星辰携手杭州银行,基于风洞实验室的生产仿真环境进行了大量的测试和验证工作,通过场景提炼开发 10 余项产品新特性。
在经历了二十多年的发展后,银行业的信息技术已经达到了一个相对成熟的阶段。然而,在当前不断变化的技术环境中,银行科技部门面临着新的挑战,包括采用新技术、构建新架构和实施新工程。银行科技部门需要走出现有的舒适区,积极拥抱变革,重新构建一个完整的 IT 技术生态系统。这包括从需求分析,到开发、测试、发布,再到监控和运维的整个生命周期,形成一个面向未来的业务演进和规划的闭环系统。
4 TiDB 是面向未来的金融核心数据库
TiDB 是一款自主研发的原生分布式 HTAP 数据库,为金融机构打造了高性能、高可用、弹性扩展的现代化数据基础设施,其架构设计有以下特点:第一,存算分离,解决了高性能、高并发和在线扩容问题,且不依赖于特定的硬件和云平台。第二,TiKV 行存和 TiFlash 列存来应对 OLTP 和 OLAP 场景需求,TiSpark 提供大数据处理能力。第三,数据三副本机制,天然具备集群级的高可用。TiDB 提供了多种数据迁移工具,支持 MySQL 和 Oracle 数据库的平滑迁移。通过 TiCDC 同步工具,TiDB 的数据可同步至 MySQL、Kafka、对象存储等。此外,TiDB 还提供丰富的监控和企业管理工具,构建了一个完善的数据库技术生态。
携手 TiDB 构建面向未来的金融核心系统
作为一款广受全球用户青睐的开源分布式数据库,TiDB 赢得了国际社会的广泛认可。在 2022 和 2023 年,TiDB 连续两年入选 Gartner 云数据库“客户之声”,获评“卓越表现者”最高分。在沙利文头豹研究院发布的“2023 年中国金融级分布式数据库市场报告”中,TiDB 跻身市场领导者梯队。在 DB-Engines 最新 4 月的关系型数据库榜单中,TiDB 排名第 40 位,是中国唯一进入 Top 50 排名的数据库。
在构建一个面向未来的金融核心系统时,选择合适的数据库至关重要。以下是从不同角度出发,对理想数据库产品选择的总结:
- 架构层面:应优先考虑采用原生分布式架构的数据库,以确保系统具备良好的扩展性和弹性。同时,数据库应提供高透明度的开发环境,让开发者能够清晰地理解和掌握其工作原理和行为模式。
- 运维角度:理想的数据库应支持线性扩展,以便于系统运维团队能够轻松地进行扩容和管理。此外,数据库应提供高效的同城双活灾备方案,确保在面临灾难性事件时,系统的稳定性和数据的安全性。
- 开发角度:在分布式事务处理和读写热点问题上,数据库应有成熟的解决方案和最佳实践。这意味着数据库不仅要能够处理高并发的读写操作,还要能够提供有效的策略来分散热点,避免系统瓶颈。
TiDB 在国有大行 PB 级别的数据服务平台、城商行核心系统、保险公司保单系统等金融核心场景,成功实现了经典数据库和 MySQL 数据库的升级替换。在服务金融行业客户的过程中,TiDB 已经积累了丰富的最佳实践和经验。我相信未来能帮助更多的城商行、券商和保险公司,基于 TiDB 数据库来构建面向未来的核心系统。
通过平凯星辰多年的金融实际案例和实施经验,基于 TiDB 构建金融企业核心系统是一条可重复、可复制、具备先天技术优势的路径。