作者 | 贾瓅园
金融行业作为国民经济的命脉和枢纽,对数据库有着极为严苛的要求。近年来,国产金融级分布式数据库迈上了发展的快车道,在多个领域不断取得新突破。
哪些因素在驱动和促进金融核心场景分布式数据库发展?分布式数据库在金融领域会遭遇哪些挑战与痛点?如何支撑、解决金融场景架构转型需求并以延续性发展的思路进行思考、探索与实践?今天为大家带来腾讯云金融行业架构专家贾瓅园老师在金融级架构方面的分享,主题为“国产金融级分布式数据库在金融核心场景的探索实践”。以下是分享实录:
1 金融核心场景分布式数据库发展驱动力
本部分的分享将围绕以下问题展开,即金融行业为什么会产生分布式数据库的需求。回归本源,分布式数据库是基于业务与技术的需求和发展以及监管要求下,解决当下以及未来趋势发展等问题,更优更稳定地满足金融银行业发展的选择。短期看虽有不足,用长远和发展的眼光看,对支撑金融需求、满足监管要求、提升自主可控能力、有效降低风险、合理控制系统建设成本等诸多方面都有助力和支撑作用,是金融银行业基础设施、基础软件建设的重点之一。
具体来看,这主要源于以下三方面的驱动:金融监管政策的指引、金融业务发展要求、金融业系统技术与架构的发展趋势之下衍生的数据库要求。
金融监管政策指引
众所周知,传统老牌的数据库厂商的产品有很深厚的用户基础。要在新兴的分布式数据库领域中去契合金融核心场景的需求,我们仍有很多不足需要改进。在发挥分布式数据库优势的同时,我们需要解决以往在其他领域从未出现过的新问题,同时还要在既有的技术体系并综合历史客观现状之上进行延续,这也是我们当下面临的困难和挑战。
2021 年末,中国人民银行发布了《金融科技发展规划 2022-2025 年》。2022 年初,中国银保监会也发布了《银行业保险业数字化转型指导意见》(以下简称《指导意见》)。该文件将安全视为首要因素,在安全的基础上去实现发展和创新。聚焦到分布式数据库以及金融核心场景、技术领域上,《指导意见》也从多方面提出了明确的要求:
对金融核心场景分布式数据库的发展,中国人民银行、银保监会等行业主管部门在金融监管政策方面给予明确指引,从整体方向上对技术架构、实践、客户交付等方面都进行了全方位的指导。
金融业务发展对技术架构的要求
近年来,银行业在内外部金融环境的快速变化中持续进行转型和发展,从零售转型到互金 / 直销以及多渠道丰富金融产品的兴起,从追求业务多元化到追求场景化创新,基于持续不断的技术发展、业务创新积累下,再到金融数字化转型深入推进,这些对金融系统的技术架构有了更为严格的标准和要求以及诉求。
面对此背景和发展的时代,我们首先要满足高可用,这是银行或金融业对技术架构最基本的要求,在此基础之上要满足交易高频高效、低延迟的金融场景处理要求,再衍生到高吞吐能力。因此,需要首先从性能的角度切入,来考虑如何在实时高频的交易下保证数据吞吐能力和处理能力、统计与分析能力,当单机性能已达到一定瓶颈,这就需要引入分布式、数据切分等概念。在银行业务多元化背景下,数据关联度和复杂度更高,这对数据库的技术架构和应用设计提出了新的挑战,包括数据的模型、主题设计、建模、业务模型关联、数据库适应性、统一的运维管控平台和版本的在线分布等技术业务关键能力。
当前,在场景化创新和数字化转型的趋势下,国际形势以及外部金融环境背景下,安全可控成为不断强调的关键词。在此背景下,要求实现多中心多活的可控性,包括 OLTP、OLAP 场景以及 HTAP 混合场景(金融业务系统 TP、AP 场景混合的系统较多,很难单一划分)。同时在分布式技术架构下,运维成本、运维难度也是一项巨大挑战,那么智能运维就成为必要条件。此外,在保证高性能、高可靠的情况下,还要从架构、开发、设计等角度推动产品做到低风险。
总而言之,在银行业务和需求发展的背景下,技术架构高要求、技术栈多样性专项化、功能细化性、架构复杂度、管理等维度的要求也逐级提高。
金融业系统技术与架构的发展趋势
金融业系统技术架构从广义架构层面经历了三个阶段:
因此,虽然当前的架构做到了松耦合和强扩展性,但对高并发能力以及对金融行业的适应能力反而要求更高。
2 分布式数据库在金融领域的挑战与痛点
前述内容中,我们介绍了趋动和促进金融核心场景分布式数据库发展的因素,实际上是从衍生需求或痛点问题角度,提供了技术架构发展的思路方向。在当前的金融监管政策及数字化转型背景下,结合金融发展历史,我们如何走出金融创新之路、走好数字化转型之路,以及走稳金融安全可控、自主可控、风险可控之路,这些都需要我们深入金融核心场景,切实去解决分布式数据库在金融领域的挑战与痛点。
金融架构领域
与以往系统建设不同的是,在满足“四高两低”要求的同时,还要满足“开放技术架构”原则。既要满足常规监管要求,同时又要与业务系统既有使用规则相匹配。这主要是受历史因素的影响,传统主流数据库的用法、特点深入各行各业,业务系统建设时自然也围绕其特点进行设计与实现。因此,在建设分布式数据库时就需要兼容业务系统既有使用规则,降低使用成本。此外,我们还需要兼容自主可控的软硬件环境。
具体而言,分布式数据库在金融架构领域遇到的挑战可分为以下五点:
金融业务领域
除了遇到架构方面的挑战,分布式数据库在金融领域落地还需要解决金融业务领域的难点,这是以往常常被我们忽视掉的部分。
一是业务系统兼容方面,当前大部分业务系统已经趋于基本的解耦化或分布式 / 微服务化。在框架之上,驱动能否兼容、语法能否兼容,在无法让所有业务系统重构的前提下,兼容性是我们必须考虑的方面。
二是迁移、同步方面,以异构库之间的迁移为例,我们不能仅仅停留在工具化层面。客户在业务系统切换阶段、场景同步阶段当中也会出现很多需求,基于数据分布式场景,并不能像以往一样单纯由系统开发厂商、银行 IT 编写程序工具解决,这就需要我们的数据库提供整体解决方案。
三是运维体系方面,过去我们已经习惯了传统数据库的命令行操作。但当下面对分布式体系下的管理要求,面对众多数据节点、参数等,我们更多的还是需要一体化可视化工具来完成,例如运维平台、黑屏命令工具、监控工具等一体化运维解决方案与运维系统。
四是服务与实施方面,传统数据库阶段,我们提供的是“来料加工型”服务,即问题支持模式,此模式是建立在长期的技术共识与生态之上。在分布式数据库阶段,分布式领域的业务复杂度、技术复杂度、设计复杂度以及金融核心场景,都对人员、服务、交付实施提出了更高的要求。要探索出一条既不同于金融厂商又区别于传统的数据库厂商的服务实施路线。
五是生态建设方面。以常规数据库为例,很多技术人员都很熟悉,应用得心应手。但面对新的生态,技术人员要如何去使用、遇到问题如何排查找寻方案,生态合作中的软硬件如何研发、如何满足自主可控要求,这些都需要通过生态建设来解决。具体来说,生态建设包括了知识体系、社区、认证、培训、生态合作等维度。
总而言之,分布式数据库金融领域落地不仅仅是技术与产品力的考验,也是在考验我们对金融场景、金融运转体系的理解能力,以及考验我们的设计能力、服务能力。
3 金融级分布式数据库架构探索
根据上述分析与要求,结合分布式数据库在金融领域的挑战与痛点,我们在金融级分布式架构体系方面进行了探索。
我们认为,架构体系首先要满足监管合规要求,实现安全自主可控,同时要契合金融核心特点,最为关键的是我们纳入了开发和可视化智能化运维,从整体上为运维、开发提供友好的可视化帮助,结合金融场景的复杂度和多样化,提出建立多种内核引擎的思路,包括统一管理台、多内核引擎、基础环境底座、统一管控、开发和诊断。
全方位的架构,满足解决当下及未来金融级交付与服务等问题:
业务系统兼容探索
在金融行业中,分布式场景和模块 / 系统会带来更高的复杂度,且每家银行的建设背景、历史遗留问题、系统划分维度也不同,任何数据库产品,应用在不同的业务系统时都可能会遇到相关的问题。
我们将金融行业的系统兼容关注进行分类,例如渠道域、管理域、产品域,相关业务都有各自的特点、各自的技术诉求及建设思路。因此要按照不同类型、不同维度进行兼容适配,并考虑系统业务与当前架构现状。关注的维度与特点如下图所示:
从语法兼容的角度来看,主要关注数据结构、基础数据类型、对象使用、SQL 执行对象、数据库驱动等方面。我们利用工具化手段去分析当前存在的历史问题,来保证实现快速兼容适配。
从系统简单的分类来看待兼容性,渠道域、前置域、产品域和管理域等都有不同的特点:
聚焦到核心业务系统上,数据结构复杂性,索引、查询相关的业务量以及相关用法,甚至部分不规范的函数可能都是关注的点,也是适配兼容过程中的难点与重点,需要针对性地进行分析与优化,也包括配合行业客户、开发厂商进行数据模型分析、解耦等工作。
数据迁移与同步的兼容与实践
数据迁移(静态)通常应用在金融领域系统投产、演练过程、并行期等,不局限于源到目标的导入导出,更多要考虑数据结构的变化、异构的差异、业务系统及金融机构实施步骤与模式,因此金融级分布式数据库所提供的工具、方法论以及解决方案成为了必要因素;其基于场景大体划分有三类:
未来,提供类似于 SaaS 的接口型服务、以抽象化、工具化、底座化完全融入到业务迁移场景也将成为客观发展中的必然需求,提供系统开发厂商和金融 IT 服务,也避免了“重复造轮子”的情况。
数据迁移(静态)场景外,金融行业具有贴源数据同步场景,此类应用场景也是是当下传统数据库、国产分布式数据库百家争鸣背景下的必然。具体而言,可概括为:
以上是我们腾讯云研发与交付团队在实践中进行的技术探索与总结。我们希望在金融级的交付与服务中保障客户的安全风险可控,同时我们也为众多的金融领域 IT 厂商提供相应的工具,令业务系统的建设可以更专注于业务本体。
运维架构探索与实践
在运维模式方面,金融级数据库运维从长期发展的角度看,先后经历字符界面运维、图形化运维以及未来智能化运维三个阶段:
未来,我们要走智能化运维的道路,实现全可视化和运行异常感知,帮助和服务金融领域客户运维工作,同时推动安全可控体系更加完善。
探索实践新的实施与服务模式
传统的数据库厂商的实施模式属于“来料加工型”,即问题型支持和“关键节点”保障型。其服务团队构成基本上以 DBA 为主,服务模式多是 1V1 甚至 1V 多为主。这源于其系统的成熟稳定性与技术的共识性,大多数技术人员都对传统数据库有一定了解,在实施过程中自然会规避部分常见的问题。
金融软件厂商则是需求差异化路线,主要原因在于每家金融机构基本业务相同但需求、业务场景、服务模式不同,甚至业务结构都不同,导致系统需要进行差异化定制。团队构成方面配置了众多专业分工不同的角色,包括技术架构、DBA、业务专家、项目管理和开发等,提供团队 1V1 的全周期服务。
在当前的分布式数据库实践中,我们走的路线看似与传统数据库厂商比较类似,但实际上我们的路线是兼容并济,即“增强一步、递进一步、两个兼顾”。
因此,我们探索的实践道路主要包含:
兼容并济的实施路线,既兼顾了数据库以往的交付与服务模式,同时也兼顾了成本和金融行业特点、服务诉求。
生态建设的探索与实践
目前分布式数据库在行业内已经实现了一定程度的认知和普及,高校、合作机构、金融同业、金融客户等群体都对分布式数据库有所了解。但在终端使用层面,分布式数据库的知识普及度和技术共识度还远远落后于传统数据库。
我们在长期的实践中探索出一条生态建设的路线,主要包括以下方面:
建设模式探索与实践
金融领域核心业务系统分布式数据库的建设模式大体可以分为两种模式,即关键系统 / 模块下移模式、业务系统升级 / 建设模式。
第一类模式(关键系统 / 模块下移),下移的过程可以划分为多个阶段来实施,其优点是低成本、低风险、循序渐进,先期模块的下移经验可以为后续模块的迭代下移提供借鉴和经验储备。
其建设的具体过程可以分为三个方面:一是产品选型、适配业务系统选择。在满足“四高两低”要求的基础上,应该以业务结构相对清晰、数据结构易梳理、系统维护能力强为标准来选择,这样可以将问题简单化,为分布式数据库落地提供更多支持。二是基础的适配、压测。三是业务系统的适配、验证。
从系统聚焦的角度来看,SQL 筛选、非标对象、向存储过程下移等环节,更多的是以分模块建设的方式循序渐进地进行。这对管控能力和迭代设计能力都有一定的要求,例如具体到跨库的聚合场景,需要有非常丰富的金融级分布式实践经验。
此类循序渐进的模式主要适用于两类金融机构 / 银行:第一类是国有大行 / 大型股份制银行,其系统众多、业务丰富度高,系统交互繁杂,其中稳定性、风险性是考虑的首要因素;第二类是比较有实力的中型 / 开展众多跨地域金融的城商行。
第二类模式(业务系统升级 / 建设模式),对技术实施能力的要求相对较低。基于系统升级 / 新建,自然面临着新系统的变化、改造,利于直接适配分布式数据库特性。因此在进行数据库兼容改造时,可以适当加速。
这种模式主要适用于希望一次升级关键业务系统的股份制银行,也适用于中小型城商行系统换代时期,对管控能力的要求相对较低,周期建设相对短。在金融核心或者关键业务系统建成以后,同样具备经验输出到相关的其他关键业务系统。但从投入成本、科技能力、服务能力来看,厂商和银行也会面临一定的挑战。
这两种建设模式各有优劣,在实际建设中,我们需要一事一议,分银行或金融机构来探索如何建设。
具体案例模型
分布式数据库建设 - 核心业务系统升级 / 建设模式:
下图展示的是高并发的互联网银行 / 城商行级别架构实践模型,其日均交易量达到 3.6 亿,TPS 峰值超过 10 万。要支撑如此庞大的业务量,在架构体系上需要利用自身的数据架构体系,即数据、应用的单元切分以及组合层分布式事务处理能力,部分聚合场景、同步场景依赖数据库分布式能力。在符合金融监管政策的基础上,数据多活架构既贴合了该类型银行的高并发要求,也满足了未来的扩展性。
分布式数据库建设 - 核心关键模块 / 系统下移模式:
下图展示的是关键模块下移的案例模型。数据分布式下,分布式事务的不同场景应用的技术方式也不同。采用两地三中心架构,满足业务系统 / 模块等初次落地实践,多中心同步依赖数据库自身能力。
未来挑战与探索趋势
未来,分布式数据库在金融领域的应用落地仍有许多方面需要不断地去挑战和打磨,具体可分为六个维度:
4 结语
随着云计算的发展,IT 基础技术正在发生翻天覆地的变化,未来展望:
在云时代背景及 IT 基础技术变化趋势下,数据库的发展与当前的分布式架构及金融场景要求并不冲突,将会在多维度进行不断迭代。
首先是单一引擎极致化,努力实现性能、业务场景兼容的极致化。同时考虑到未来可持续的多引擎形态仍会并存,因此需要实现多引擎统一智能管控的融合。最后是在数据库软件服务即 DBaaS 体系方面进行优化。它是包含了运维、开发、诊断以及架构体系等在内的完整的 DBaaS 服务体系,能够从技术软件层、底层硬件层和芯片硬件层等方面,来降低金融机构、银行业客户的设计成本、实施成本,同时也为未来分布式数据库在金融领域落地提供更好的人性化软件服务。