毫无疑问,数据库作为企业核心应用系统的重要组成部分,从其出现伊始就逐渐占据可观地位,目前几乎所有的关键应用都无法离开数据库系统提供的底层支撑,金融行业尤其如此。
最近几年,随着越来越多金融企业的数据规模不断增加、数据使用复杂度也在提高,对底层数据库的能力要求也“水涨船高”,传统集中式数据库已不能满足需要,因此具备高性能、可扩展、高可用和高容错特性的分布式数据库,就成为了目前金融行业数字化转型中的首要选择,可以说金融行业走向分布式数据库已是大势所趋。
确实如此,去年8月,Frost&Sullivan联合头豹研究院发布的《2020年中国金融级分布式数据库市场报告》就显示,业界已有分布式数据库在部分股份制银行、城商行实现了核心业务系统的改造落地,针对国有大行的核心业务改造尽管仍处在“起步”阶段,但未来随着国有大行核心业务分布式改造的加快,也将会加速释放金融领域分布式数据库的改造规模潜力。
那么,金融行业的数据库转型为何如此迫切?在走向分布式数据库的升级和改造过程中,又有哪些具体的痛点和更好的选型策略?来自一线金融同行的成功实践,或许能带给我们更多的参考和借鉴的价值。
转型之势
事实上,虽然“看不见,摸不着”,但金融行业的数据库系统和我们每个人都“息息相关”。今天,每一个人通过线上线下交易平台的每一次结账、刷卡、转账、人脸识别、登录银行账户等等,都会产生数据,并被相应的银行数据库记录,而一家银行通常有几百套信息和数据系统,国有大行甚至可能有几千套,其中和“钱”有关的系统,例如资产管理、贷款管理等,都属于核心系统,更是银行的重中之重,因此金融行业对数据库的要求极其严苛。
也正因此,过去相当长一段时间,包括银行在内的金融机构主要采用的是“大/小型机+集中式数据库系统”这样的传统架构。随着数字化转型的加速,金融行业需要面对更为复杂的业务场景,而且数据处理所面对的数据类型、数据规模以及处理性能的要求越来越高,加上国家政策的相关要求,都让分布式数据库在金融领域的应用得以逐步深入,我们可以从三个维度来做观察:
一是,从转型加速角度看,在数字化转型加剧的大背景下,金融行业未来运营的核心能力将是数字化(数字化获客、数字化服务、数字化运营),而数据作为金融行业数字化运营的关键,如何借助数据敏捷地调整业务模式、资源能力以及风险控制手段,确保金融行业的韧性和提升业绩水平已变得刻不容缓,相应的也对数据库提出了更高的要求。
二是,从业务驱动角度看,很多金融机构采用的集中式数据库系统越来越难以满足其业务发展需求,走向分布式数据库成为市场新的趋势。以手机银行为例,目前人们通过手机银行办理业务的场景越来越多,而这种业务场景往往会出现对数据并发、读写效率,数据复杂化以及海量数据所产生的压力,而这些场景正是分布式数据库能够大显身手的领域,这种源于业务驱动的需求,也催生了分布式数据库需求的产生。
三是,从国家政策角度看,国家很早就将新型数据库作为重要基础设施组成部分给出指导性原则。在《金融科技(FinTech)发展规划(2019-2021)》中就明确指出:“金融科技重点技术点和应用场景中,利用云计算和分布式数据库拓宽服务渠道;要加强分布式数据库的研发应用。”不仅如此,2020年11月,中国人民银行又正式发布《分布式数据库技术金融应用规范》(JR/T 0204-2020),从技术架构、安全技术、灾难恢复三个方面,构建了一整套分布式数据库技术金融应用的系列标准,这也为推动分布式数据库落地金融行业奠定了基础。
在此背景下,过去几年中国数据库市场也呈现出了“百花齐放”的发展状态,从数据库市场的参与者来看,既有以阿里云、腾讯云、百度云和金山云为代表的CSP(云服务商)提供的云上数据库产品;也有如中兴、南大通用等为代表的国内较早一批深耕数据库市场的企业;同时一些新型的数据库厂商如PingCap、星环科技也在市场中涌现;而传统的科技企业,如新华三等也在近期推出了基于开源数据库的产品和解决方案。
而从产品和方案角度看,今天市场中同样既有南大通用、星环科技这类主打OLAP(事务型)产品和方案,也有Oceanbase、PingCap这种基于MySQL开源分布式数据库开发、主要面向OLTP(交易型)以及由此延伸出来的融合了交易型数据库和分析型数据库特点的HTAP(混合事务/分析处理)数据库需求的产品和方案。此外,市场中也出现了天玑,沃趣这类国产数据库一体机的产品,还有巨杉数据推出的文档型数据库,可以说从目前中国市场中的数据库无论是产品、方案和生态都是十分丰富和多样化的,而这些数据库产品和方案,更先后在各大商业银行、金融机构及城商行的核心业务系统陆续投产并稳定运行,这也进一步验证了分布式数据库完全可以满足金融行业核心业务系统对数据库的要求。
选型之道
当然,分布式数据库要更好地融入到金融行业的核心业务系统之中并不是“一蹴而就”的,这是因为金融行业的特殊性所造成的,所谓的“特殊性”指的是相较其他领域,金融行业对应用场景、技术条件和关键诉求方面较为严苛。
可以看到,目前在金融行业中一些大型的国有银行已开始将他们原来的Oracle/IBM DB2这种集中式数据库替换成基于MySQL、PostgreSQL的分布式数据库,这类针对OLTP场景的分布式数据库,其优势是能够通过中间层进行数据库交易的两段式提交来保障事务的一致性,同时也可以Proxy(代理)相应的请求到合适的数据库分区的节点,由此确保大规模交易型应用的稳定运行,但由此也带来了更多的挑战,如金融企业的研发团队需要具备较强的技术开发能力,此外对金融企业的数据中心基础设施中的软硬件优化和升级也提出了更多的要求。
从这个角度来说,如何快速有效地实现从传统的集中式数据库到分布式数据库的转型和改造,已成为金融行业必须面对的问题。在此过程中,从以下几个维度考虑技术的选型策略,是决定分布式数据库能否成功落地金融行业的关键,具体而言:
首先,是业务场景维度,金融行业对数据的使用场景较为多元化,这也对数据库提出了较高的要求。在传统集中式数据库上,这一问题还不明显,因为这些数据库往往是多面手,各方面功能较为均衡,但分布式数据库则不然,其往往有明确的适用场景范围。因此,从业务场景的维度看,金融行业从应当在分布式事务、数据强一致性、混合负载等方面选择分布式数据库,充分发挥分布式数据库在这些场景应用方面的优势之处。
其次,是数据可用维度,数据可用维度包括几个方面,如数据一致性,指的是金融核心业务往往要求数据库必须支持强一致性方案以优先保证数据正确性;业务连续性,指的是金融行业分布式数据库在多数据中心部署后,要确保数据在灾难发生的情况下不丢数据,以保持业务的连续性;此外,包括数据安全性,混合业务负载(如OLTP应用和OLAP应用)以及分布式数据库十分具有更好的“适配性”也是技术选型中,值得金融行业关注的核心点。
第三,是基础设施的维度,核心业务系统是金融行业最为重要的业务系统模块,不仅对数据库的要求高,同时与基础设施所能够提供的高可用性、高稳定性和高可扩展性同样“息息相关”,特别是今天越来越多新的金融服务模式和渠道,如手机、移动银行这类的服务常常会出现瞬时数据库并发业务负载,往往会需要万/次每秒的读写请求,这就要求底层提供的关键数据中心基础设施,能够支持线性扩展性能与提供足够大的存储容量等。此外,越来越多的金融企业也正在将基于x86环境的分布式架构替代以往的大/小机型环境的集中式架构,并逐步开始迁移各类应用到云平台之上,实现数据与业务的分离,因此如何保持接口兼容性和数据一致性的前提下,实现云化基础设施的改造和升级,以方便后期提供更为强大的分布式计算和存储的服务能力,同样也是保证分布式数据库平稳落地金融行业的重中之重。
最后,是投入成本维度,技术为业务服务,而非为用而用,需要综合考虑成本和收益的平衡。金融行业分布式数据库的选型问题,不仅仅涉及到上面的场景应用和技术能力问题,同时在“非技术”方面也需要重视,其中硬件成本方面,主要取决于金融行业部署的分布式数据库所需的服务器集群规模、数据量以及数据库自身对硬件的要求等;软件成本方面,指的是采购分布式数据库软件所需的成本;开发测试成本方面,指的是金融企业对数据库进行改造或者更换后,还需要完成必要的开发测试环节以确保分布式数据库的“可用性”;最后是运营维护成本方面,是为了满足升级和改造数据库所带来的数据迁移成本和上线之后的日常维护运营成本等。
由此可见,金融行业真实的应用需求和特殊的应用场景,在加速分布式数据库解决方案的落地同时,也带来了一系列需要积极应对的问题,因此金融行业未来如何更好地以低成本、高效率的方式构建可弹性扩展、敏捷交付的分布式数据库系统,同时保持基础设施的高可用性和稳定性,也就变得至关重要。
成功实践
在这场拥抱分布式数据的趋势中,国内不少金融行业企业也勇敢地踏出了探索与创新的旅程,通过采用分布式数据库,不仅验证了从理论到工程实践的可行性,同时也取得了不错的成功实践,无疑为更多的金融行业用户未来的转型提供了借鉴和参考的价值。
比如某国有大行就基于PingCAP的TiDB展开了自身分布式数据库的实践,之所以选择TiDB,主要是其产品可在一定场景下满足该行对分布式数据库的需求如TiDB具有金融级高可用、能够实现弹性扩锁容、具有实时HTAP能力,此外还兼容MySQL5.7协议和MySQL生态等。因此,在以下金融行业的应用场景中,TiDB能够发挥重要的作用,包括支持规模场景的OLTP、完成分布式批量处理以及能够实现海量HTAP等。
为了保证分布式数据库的可用性,TiDB 在组件级、集群级提供了各种技术手段来保证整体可用性。其中,组件高可用指的是当PD(主要存储系统级元数据)节点异常时,能够自动将leader迁移到其他节点;而TiDB 节点异常时,因为TiDB(能够提供无状态的分布式SQL层,完成对SQL语句的语法解析、语义解析、协议解析等)节点本身是无状态的,单台故障结合高可用机制,也会自动隔离,不会影响系统的正常运行。同样,TiKV(这是一个分布式且支持事务的 Key-Value存储引擎)节点异常时,也会自动将异常节点中的leader 移到其他节点,并在其他节点上自动补充副本数据。
集群高可用,则主要体现为TiDB无论是在同城集群部署方式与单地域两可用区部署方式一致,异地为一个3副本的灾备集群,生产集群与灾备集群间通过 binlog 或 ticdc 来进行数据同步。当发生机器级别故障,可参考组件高可用的方案。当发生可用区级别故障,如主中心发生故障,集群自动检测故障,并进行故障切换,启用副中心,保证 RPO=0,RTO
值得一提的是,为了更好的发挥TiDB的能力,该行也基于PingCAP TiDB的英特尔®精选解决方案快速的实现了分布式数据库的落地,该方案不仅进一步优化了部署TiDB所需的性能以及实现了成本的降低,同时更显著缩短了评估、测试和配置分布式数据库架构所需的时间,具体来看:
第一,是基于PingCAP TiDB的英特尔® 精选解决方案,通过优化英特尔® 至强® 可扩展处理器的性能表现,使得TiDB数据库解决方案能够更好地支撑高并发、海量数据场景下的数据处理需求;第二,是能够节省数据库系统的总体TCO成本,减少管理多个数据库解决方案的时间,并有更多的时间为企业和客户提供更多的业务价值;第三,经过验证和优化的软硬件融合方案,也能够显著降低金融行业客户部署、运维难度与耗费的时间。
而从该行的具体实践中,我们也不难发现其成功的关键主要体现在,首当其冲的是该行敢于采用新技术,拥抱新技术,特别是通过采用TiDB这样的分布式数据库,实现了系统的高并发、高可用,具备了弹性伸缩等特性;此外,该行部署分布式数据库成功的关键原因还在于,就是十分注重在硬件基础设施方面的选择,而基于PingCAP TiDB的英特尔® 精选解决方案,则为该行运行HTAP这样的业务提供了可行的落地方案,可以说经过预先调整和测试的方案和配置,无疑能够显著加快金融企业部署TiDB数据库所需花费的时间,并大大提升性能、安全性和可用性等方面的表现。
筑牢基座
事实上,基于PingCAP TiDB的英特尔® 精选解决方案只是英特尔在助力金融行业用户拥抱分布式数据库中的一个“缩影”。不仅和PingCAP深入合作,英特尔还和南大通用基于第三代英特尔® 至强® 可扩展处理器,进一步提升了南大通用 GBase 8a 分布式并行处理(MPP)数据库集群系统性能表现;此外,英特尔也与星环科技合作,借助第三代英特尔® 至强® 可扩展处理器帮助星环科技Transwarp ArgoDB分布式闪存数据库提升性能表现,助力更多的企业能够更好的建设一站式的大数据综合平台。
在此基础上,英特尔还围绕分布式数据库的特性做了更多的技术创新,并针对数据库一体机、经典分库分表方案以及云原生数据库方案做了优化,以帮助金融行业客户构建出对分布式数据库的“驾驭”能力。
比如,数据库系统为了更好的支持ACID,往往在内部会出现很多的“锁”,而这些“锁”的存在造成了数据访问的竞争,因此在具体的应用中,即使给数据库分配再多的处理器性能,也很难在超过一定核数下实现性能的提升。为此,第三代英特尔® 至强® 可扩展处理器在架构上实现了创新,其处理器的缓存在L1、L2、L3上都有明显的增加,而这种更大的缓存可以有效地降低数据访问的延时,从而更快地访问数据。此外,英特尔独特的Mesh架构同样也能明显的降低数据冲突时候的访问延时。
除了增强内核架构能力之外,英特尔也在I/0带宽方面实现了进一步的优化,如第三代英特尔® 至强® 可扩展处理器的PCIe从3.0提升到4.0,由此可为企业带来两倍的I/O带宽的提升。同时,英特尔® 傲腾™ 持久内存、英特尔® 傲腾™ 固态盘,以及英特尔® 以太网800系列也能够充分借助PCIe4.0带宽的提升,进一步实现整体性能的增强。
而针对不少金融用户采用数据库一体机的方案来实现分布式数据库的部署的需求,英特尔目前也正与合作伙伴一起创新,提供计算节点和存储节点配置的最佳实践。以存储节点为例,通过集成英特尔®傲腾™持久内存并进行数据分层,就能让数据库一体机实现更优的性价比和带来了更高的性能。
更为关键的是,围绕金融行业用户对数据安全方面的高要求,第三代英特尔® 至强® 可扩展处理器也增加了非常多的安全方面的指令或者特性,如全内存加密技术(英特尔® Total Memory Encryption,英特尔® TME),以及英特尔® 软件防护扩展(英特尔® SGX)等,利用这些技术不少CSP也推出了基于英特尔® SGX的云上的数据库服务实例,这种云上高可用、高安全的、内存加密的数据库,可以说也真正为金融行业用户有效避免安全漏洞带来的数据泄露风险提供了技术保障。
由此可见,对于金融行业部署分布式数据库应用来说,借助第三代英特尔® 至强® 可扩展处理器最新的微架构以及核心数量增加所带来的优势,以及基于英特尔和合作伙伴在软硬件方面的持续优化,无疑能够更好的帮助金融企业实现分布式数据库的部署和落地,特别是在同等的服务器数量前提下,能够为金融企业带来更高的性能,更低的成本投入。
全文总结,分布式数据库,作为一种新型数据库产品架构,目前正处于蓬勃发展阶段,其具备的数据分片管理、分布式事务、读写分离等关键分布式能力,能够很好地满足金融行业在高性能、大数据量等多种业务场景,上述金融企业的成功实践和投产使用就验证了这样的趋势。但与此同时,金融行业要成功实现分布式数据库的部署和应用,在选型和落地过程中也要注重对包括处理器、内存、网络等底层硬件基础设施的选择,唯有“软硬兼顾”,才能更好地推动分布式数据库的落地,从而在未来筑牢金融行业数字化转型的坚实基座。