中国金融行业正走在发展的关键节点。
一方面,我国数字经济与实体经济加速融合,健全金融服务体系、提供多元金融服务成为大势所趋;另一方面,市场需求的快速变化和外部环境的错综复杂,驱动着金融行业技术栈、决策逻辑、服务模式全面走向重塑。
这一切都需仰仗金融行业自身的数字化转型。如果说数字化转型是金融机构在数字经济时代的“立柱架梁”,那么数据库则是必不可少的“顶梁柱”。金融机构数据库架构建设的成功与否,不仅关系着数据要素价值的发挥,更是未来积厚成势的关键。
尤其以银行为例,如今银行的数据库应用普遍具有体量大、覆盖广、节奏紧、变革快等特点,数字化转型后,新数据库建设既要兼顾高性能、高可靠,又要确保上线快、上手快。
近期,中国农业银行以超级网银项目为切入,基于华为GaussDB + OceanStor Dorado全闪存构建起双集群容灾体系,将传统商业数据库向采用存算分离架构的中国数据库迁移,为我国金融机构的数字化转型提供了一条可行之路。
数据库再次走向存算分离
“合久必分、分久必合”是中国金融机构数据库架构演进的真实写照。
最早,大型金融机构采用大型机来解决核心交易场景对性能和可靠性的诉求,数据库与计算、存储紧耦合,存算一体架构在核心交易场景中发挥关键作用;但随着商用数据库、小型机、高端存储的发展,经典的IOE架构出现,既满足核心业务性能、可靠性需求,又填补大型机扩展性和灵活性差的弱点,使得数据库架构走向存算分离,并成为千行百业广泛、长期使用的经典架构。
2013年前后,互联网技术和云计算的飞速发展,使线上数据量、用户量急剧增加,像双十一、春运抢票等场景给数据库性能与扩展性带来前所未有的挑战, 以X86服务器为基础的“存算一体”分布式数据库在互联网金融快速崛起。
但当传统金融行业开始尝新“存算一体”分布式数据库时,却发现“橘生淮北则为枳”,因为传统金融行业并无像互联网那样的突发海量业务压力,却对数据库长久可靠和易用易维有更高诉求。于是,金融行业数据库再一次整体向“存算分离”演进。
可以说,业务需求变化一直在推动数据库架构在金融领域的演进。目前来看,金融机构数据库架构再次向存算分离演进已是大势所趋。那么,“存算分离”的数据库架构为何再次成为金融机构的首选方案呢?
首先,金融机构的数据库覆盖了核心交易、互金类APP、分析类应用、办公等等上百个业务系统,其峰值性能要求一般不高于1w TPS,仍在传统数据库能力所及范围内,远远低于互联网行业动辄数十万TPS的业务压力;但对业务长期稳定运行、数据安全可靠存储却有极高要求。
在金融机构业务场景逐渐向国产数据库迁移的趋势下,采用存算一体架构的数据库很难满足金融机构核心业务场景对高可靠、长期稳定运行的要求。此外,互联网厂商大都投入数千人进行分布式数据库建设和运维,而传统金融机构IT运维团队人员大都在一百人以下,很难应对分布式数据库频繁出现且极其复杂的运维难题。
其次,金融机构数字化转型步入深水区,包括数据库在内的技术栈转型既需要减少改造工作量和提升资源利用率,也需要实现快速迭代和满足不断涌现的业务需求,更需要匹配未来的管理和运维模式。
以传统数据库向存算一体分布式数据库改造为例,由于全部采用性能与可靠性较低的服务器和本地盘,数据库必须进行复杂的分库分表,需要耗费大量的时间和人力在单元化修正、事务一致性保证和串并逻辑修正等工作上,且仍难做到完美改造,并对后期的开发带来潜在困难。因此,数据库采用存算分离成熟架构,并采用高水平的中国专业存储成为成本更低、周期更短、更可信任的改造方式。
第三,不容忽视的事实是,分布式系统如今涵盖了金融机构几乎所有现代业务系统,但近年来频发的分布式系统故障引起业务全面宕机事件,不得不让众多金融机构反思如何构建起完善的业务保护体系。
基于存算分离架构,数据库可以建设可靠的跨集群容灾机制,给分布式系统的安全性上了一道双保险。如今,工行、农行等大行陆续建设数据库存算分离+双集群容灾体系,这无疑是一个信号,数据库存算分离+双集群容灾正在成为金融行业新核心数据库建设的标准模式。
双集群容灾,为金融数字化保驾护航
分布式数据库的双集群容灾如今正在发展成金融行业的标配。
相比于传统分布式数据库采用单集群拉远的方式,双集群容灾可以防范集群故障导致的全局失效。
所谓双集群容灾,即一个系统由两个分布式集群承载,两个集群互为冗余的一种容灾方式。一旦分布式集群遭遇故障,灾备集群可以快速接替其工作,保证周边系统可以继续正常访问,业务可以正常运行,也留出充裕的时间让运维人员恢复故障集群。对于银行关键业务系统而言,其双集群容灾需实现同城单数据中心或单个数据库集群故障时,备集群切换RPO=0,RTO分钟级。
双集群容灾原理与架构非常简单,实现却很困难。其技术难点在于,如何确保主备集群间故障完全隔离,同时满足数据完全一致。业界众多解决方案均只能实现前者,而无法保障数据一致性,因此无法满足金融核心类应用的诉求。
针对双集群容灾,华为OceanData分布式数据库存储解决方案的实现方式是,数据库采用存算分离架构,并将Redo Log流写入OceanStor闪存存储,利用专业存储强大的同步复制功能将日志复制到远端容灾数据中心的存储当中;同时,远端数据中心通过日志实时回放,保证了备数据库与主库的数据一致。这一方案将数据同步传输的机制下沉到专业存储侧完成,因此数据库生产集群和容灾集群可以从数据面到管理面完全隔离,进而很好地应对管理节点或存储故障导致整个集群发生瘫痪。
为什么通过存算分离可以做到这一点?其根本在于,专业存储强大的双活/同步复制能力,在两个集群间构建了一条非常稳定、安全的数据传输“管道”。过去由数据库层处理的网络质量感知、路由切换、处理数据重传和排序等工作,全部下沉到专业存储去做,数据库仅需关注本集群内的交易处理即可;而OceanStor闪存存储不仅能够高效、稳定的处理数据同步,还具备波分设备与存储设备联动的SOCC技术,可在毫秒级时间内感知到复制链路劣化,并在两秒内完成链路倒换,避免因链路抖动导致金融前端业务交易失败。
据了解,目前华为OceanData分布式数据库存储解决方案已经为包括工行、农行在内的国内大型金融机构建立起数据库存算分离+双集群容灾方案,广泛服务于信贷系统、超级网银等银行核心系统。
随着金融机构走向体验场景化、服务生态化、运营数字化、产品个性化、业务敏捷化,国内金融机构核心业务的数据库迁移与改造将成为智慧金融建设的关键,而数据库存算分离+双集群容灾方案正在成为金融新核心的建设标准。农行超级网银项目的快速上线,也表明在快速变化的市场需求面前,数据库架构走向存算分离是必然;利用好先进的中国专业存储,将大大减少数据库迁移的困难,全面提速智慧金融建设进度。