来源:第五届农村中小金融机构科技创新优秀案例评选
一、项目背景及目标
在经历了以物理网点为服务载体的Bank1.0时代、以自助服务为载体Bank2.0时代以及通过APP等移动入口随时随地提供服务的Bank3.0时代以后,通过金融科技重构银行业务的Bank4.0时代开启。人民银行于年发布了《金融科技(FinTech)发展规划(—年)》,并要求银行从长远视角加强顶层设计,把握金融科技发展态势,做好统筹规划、体制机制优化、人才队伍建设等工作。随着银行业数字化转型以及江西农信科技引领攻坚战的深入,江西农信的数字化体系建设工作已经迈入了深水区。
新的发展形势下,信息科技需要由过去的支撑和保障转变为先进的数字化生产力。江西农信适时启动业务中台建设,以“公共服务平台化、个性化服务系统化”思想为指导,将业务中台建设作为推动数字化生产力变革的抓手和切入点,以科技引领创新的方式,奏响省联社全面改革以及“十四五”发展变革的序曲。
现阶段,江西农信在合约管理上进行了一些有益的探索。一是建设了较完善的客户签约渠道,包括统一柜员系统、移动营销系统、智能柜台系统、电子银行及行外渠道等相关渠道;二是实现客户高频、常需的主要签约业务类型,包括电子渠道签约、快捷支付签约、生活较费签约及银联卡业务签约等几十项签约业务。但整体上对合约还缺乏规范、完整、统一的管理,主要包括:各个渠道不协同、业务流程串行导致处理流程长响应慢、电子协议模板管理不规范、签约视图展示不全等问题。
根据业务中台整体规划,江西农信启动了业务中台合约中心建设,旨在优化现有的综合签约处理方式,实现高频、关键类业务的合约信息集中存储、查询。提供合约的统一视图、提供合约互斥、依赖校验,以及相关的运营端管理能力。
合约中心涉及全行所有客户,具有数据量大、业务逻辑复杂的特点,传统关系型数据库无法满足现有的需求。为此,江西农信开始了国产分布式数据库的选型之旅,经过多方面对比评测,最终选择使用阿里云公司全自研国产OceanBase替换传统关系型数据库。OceanBase分布式数据库具有无共享存储、节点对等、分布式强一致、分区级可用的设计为业务发展提供了更多的可能,实现关键业务自主可控的同时提供更高效可靠丰富的金融服务。
二、项目方案
本项目基于百福云平台以及国产分布式数据库建设全行全渠道的统一合约平台,实现高频、常用业务的综合签约和统一视图,提供企业级的合约服务。在整个项目实施中为满足非功能要求,基于分布式数据库的特性做了数据拆分的分区表、分布式事务控制、资源隔离、三副本部署等方案设计。
(一)数据拆分
业务中台合约中心面向客户服务,基于客户ID进行统一的分区表设计。Oceanbase在建表时指定分区键,不同分区可以部署到不同服务器节点上,而分区带来的分布式事务一致性以及汇总查询都由数据访问代理来实现(OBProxy),对应用来说完全透明,当作传统数据库处理,但实际具备灵活的水平扩展能力。与此同时,所有节点可以承担读写工作,具备功能上完全对等能力,没有硬件资源浪费。
(二)资源隔离
根据业务中台的规划,将持续建设合约中心、产品中心、营销中心等,我们采用分布式数据库集群的租户来进行资源的分配和隔离,避免重复安装配置数据库实例。
类似传统数据库的实例,在创建租户的时候,除了指定租户名字以外,最重要的是指定它占用的资源情况,将数据库集群按指定规格(CPU、内存、存储、TPS、QPS)划分成多个资源池,分配给不同的能力中心。
(三)部署架构
利用国产数据库OceanBase高可用、高性能、高扩展、低成本的特性将应用响应耗时减半、IT投入成本减半,实现关键业务自主可控。 以此为目标,OceanBase和OCP都采用典型的三副本部署,部署架构如下:
三、创新点
江西农信响应国家号召,跟随发展潮流,推进技术进步,构建于OceanBase之上的业务系统除了稳定、高效运行之外,也拥有了更多选择,更多可能,主要创新点如下:
(1)业务系统完全国产化。OceanBase是蚂蚁金服/阿里巴巴完全自主研发的通用关系型数据库产品,公司对所有的代码,包括数据库引擎和存储引擎的核心代码拥有%的知识产权,是完整意义上自主研发掌控的国产数据库产品,不是基于开源数据库(如MySQL、PG等)的再发行产品,产品发展不受制于底层开源数据库或存储引擎,安全可靠的同时,对于新业务功能上可能的数据库需求可以做到快速响应。
(2)去除特定软硬件依赖。IT系统中任何组件都有可能出现故障,大/小型机和高端存储也不例外;分布式系统中更是如此,不仅要面对可能的机器硬件失败,更要考虑网络延迟和时钟差异带来的纷繁复杂的各种问题。秉承着在不可靠组件(机器、网络、时钟)上构建可靠系统的理念,OceanBase基于分布式架构和通用服务器,凭借出色的软件能力利用复制、分区、全局时间戳等技术实现了金融级可靠性及数据一致性,使业务应用摆脱了对大/小型机和高端存储的依赖。
(3)高性能HTAP。OceanBase数据库在TPC-C测试中的成绩世界第一,TPC-H测试世界第二,充分证明了其性能和扩展能力。全对等节点、多租户、自动负载均衡、快速参数化和查询缓存、优化的两阶段提交、本地索引和表组、丰富的查询转换、向量化引擎、LSM树读写分离分层存储、In-MemoryHash、In-MemoryBTree、融合行缓存、布隆过滤器、PDML,这一切设计和优化让一套集群可以同时承载在线交易和分析型系统,且对延迟和吞吐量需求均有充分保证。江西农信两套应用构建于同一集群之上便是对此理念的充分实践。
(4)一站式迁移运维。异构数据存储系统间的同步一直是复杂且容易出错的,通过OceanBase迁移服务可以方便将DB2/Oracle/MySQL/Sybase上的数据全量/增量迁移到OceanBase,近实时同步,更会对源端和目标端的数据进行校验以确保正确和完整性,大大的降低了数据迁移的难度;除此之外,OMS还能作为数据流中转,将数据从OceanBase发送到Kafka、Hadoop、Dataworks,让数据流动起来可以充分发掘其中的价值。使用OceanBase云平台以白屏可视化形式进行集群、租户、主机、系统管理以及备份恢复,一键滚动升级;内置了多维度的实时性能监控,告警信息可以直接以短信、钉钉、邮件等形式发送给运维人员,或者集成到已有的监控体系中;这些实现都是要帮助运维人员显著提升数据库运维效率。
四、技术实现特点
基于原生分布式数据库,通过Paxos协议满足数据多副本之间强一致并达到分区级别高可用,集群中节点之间全对等无共享,特点分析如下:
(1)高可用:基于Paxos协议典型的三副本部署+分区级可用性+Zone故障隔离域的逻辑抽象,可以抵御机架级、机房级、城市级故障,RPO=0(不丢数据),RTO30秒(快速恢复),远超国标灾难最高恢复等级6级,也是滚动升级、灰度升级的基础;同时支持类似OracleDataGuard的主备库架构,为双机房客户提供了更多的部署选项。
(2)高扩展:透明水平扩缩容,最小化人工干预。随着业务的发展,当需要扩容时,只需将新服务器加入到数据库集群中即可,集群会自动的将业务数据迁移到新机器,等新机器追平数据后,系统自动的将流量切到新服务器,整个过程对业务是完全透明。当需要缩容时,只需将服务器移除集群,系统会自动做反向操作,应用也无感知。TPC-C测试中同一集群使用个节点,充分证明了OceanBase的超强扩展能力。
(3)高性能:生产环境峰值6万次/秒的处理能力,单表超过亿行;TPC-C事务处理性能评测全球第一,TPC-H分析查询性能评测全球第二;SQL引擎查询改写优化、向量化执行,一套集群同时承载事务处理和分析型应用。
(4)高透明:分布式数据库以集群形式存在,对应用表现为单点集中式数据库,分布式事务两阶段提交对上层应用透明,通过全局时间戳实现线性一致性,支持全局索引,多副本自选主设计最大限度的避免了传统两阶段提交悬挂事务需人工干预的难题,满足金融级客户一致性要求的同时,不改变客户数据库使用习惯,无需因数据库限制而做出业务功能上的牺牲,专注业务实现和创新。
(5)高兼容:高度兼容MySQL/Oracle数据库(DB2Oracle模式),帮助业务从集中式向分布式低成本迁移,最大限度保护客户已有投资。提供多种数据迁移工具以及一键数据迁移方案,支持业务不停机切换。另外对于国产化硬件和系统,支持海光、海思、飞腾等芯片,以及中标麒麟、银河麒麟等操作系统。
(6)高安全:Oceanbase数据库从多个方面保障数据安全,包括不限于传输加密、数据存储加密、安全标记、数据备份、监控预警等。从数据传输源头至数据存储与备份,真正做到了整个数据生命周期均安全可控。
(7)低成本:基于分布式架构和通用服务器,没有对特定硬件架构的依赖,自实现的LSM树读写分离、分层变长块存储的设计为数据压缩提供了良好的基础,按列编码、按行存储,内置4种压缩算法,满足不同的需要,数据从原有系统迁移到OceanBase后一般所需存储空间降至1/3–1/4,综合降低客户使用成本。经真实场景验证,TCO总成本仅为传统封闭架构的1/5-1/10。
五、项目过程管理
项目整体投入人员为40人月,工期共为7个月。项目实施共分为三个阶段进行:
第一阶段主要搭建系统,确定上云方式,适配阿里云sofa模式;使用云效Codeup做代码版本管理、Maven构建服务应用、OceanBase做数据库服务。完成云上中间件组件调试,云效的版本发布,达到提供服务功能的效果,周期为2个月,较为顺利的完成适配改造。
第二阶段主要为业务需求分析,系统设计,架构评审。总共27个回单种类,涉及统一支付、中间业务、核心、信贷、理财、电子银行平台、短信、财政电子化等系统;收集各业务系统数据规则,数仓收集各业务系统数据,大数据加工数据后对外提供服务;周期为2个月。
第三阶段是开发、测试、上线阶段,目前开发对接的渠道为统一柜员系统。
六、项目成效
(一)自主可控:整个业务中台系统软件基础架构全面国产化,规避潜在的安全风险,使用国产分布式数据库,底层基础设施云平台兼容国产X86服务器、存储设备和网络设备等基,摆脱传统IOE的单一厂商设备绑定,具备完全国产化和自主可控能力。显著提升了对业务变化的适应能力和对业务连续性的保障能力,提高了需求响应效率。
(二)数据安全:通过分布式数据库的多副本日志强同步策略,保障集群数据存储层的强一致性,不丢数据;通过分布式事务中间件实现高并发下的分布式事务一致性,不需额外的物理灾备设计。
(三)在线扩/缩容:集群节点全对等,每个节点都具备计算和存储能力,无单点瓶颈,可线性、在线扩展和收缩。当系统面临峰值流量时,可以通过添加机器的形式将负载均匀分散到更多的机器上;当压力退去,减少集群机器数量以充分利用资源。
(四)高可用:OCP和OB均采用典型的三副本部署,OceanBase集群中任意一个可用区(副本)故障均不影响业务连续性,OCP集群少数派失效可以继续进行运维操作。整体上可以达到“数据不丢失、业务不停止、无需人工干预”,灾难恢复点RPO为0,灾难恢复时间目标RTO不超过30秒的目标。
七、经验总结
纵观整个项目的实施过程,为了快速的完成既定目标,让升级后的产品为客户提供更加稳定便捷高效的服务,积累了如下几点经验:
(一)前期充分调研。凭借仔细的调查研究,掌握业务系统功能实现细节、数据库特定功能的依赖、当前架构下面临的痛点/难点。在全面了解当前系统的情况下,配合专业人士起草有针对性的数据库迁移具体方案,并分析可能面临的问题,提前制定预案,打有准备之仗。测试项目的制定在充分考虑现有功能点/性能需求的同时,也应该将未来预期的业务增量和产品创新纳入考量范畴,验证新的实现满足业务换代升级后的各种需要。
(二)中期协调推进。项目实践过程中难免会遇到问题,DB2在日期和时间类型、非空约束判断、分页查询、范围分区定义、脏读支持等方面于OceanBase(Oracle模式)有一定区别,通过积极协调并联合业务软件供应商和数据库软件供应商,让业务开发加深对原生分布式数据库技术特点的理解,让数据库厂商明晰业务实现背后的原因,两相配合,互相促进,解决面临的问题却不拘泥于此,更是发掘系统的潜力,探索功能一致性前提下基于新技术带来的各项收益,使迁移的过程进而成为系统演化创新的过程。
(三)后期总结推广。成功的数据库替换项目往往具有可复制性,以真实数据做支撑,效果更直观显著。从零到一的全过程,有分享,有讨论,有实践,有突破,提升了参与人员的知识和能力,加强了供应商间的沟通协作,进而形成一套稳定可行的实施步骤;从一到一百,在更多子系统中完成数据库国产化,我们已经准备就绪。我们预测,随着越来越多的子系统完成国产数据库的转换,将大大提高我行内部的工作效率,减少因数据库问题导致的系统崩溃、运行缓慢等问题,满足我行系统规划长远发展的要求,有利于客户满意度的提升。
更多金融科技案例,请登录数字金融创新知识服务平台-金科创新社(FintechinChina.