本文为《DB大咖说》第 9 期的精简梳理。
王守军是一名非常资深的数据库技术专家,从业以来一直扎根在数据库领域。早期在金融机构,后来进入外企,再后来又回到银行。一路走来王守军不断成长,从早期一名单纯的技术人员到如今成为常熟农商银行数据库/大数据平台运维负责人、金融科技总部-基础研发部副总。
由于角色的不断变换,让他可以多角度地理解数据库技术和业务的关系,也能在工作中更好地去释放数据库的价值。在常熟农商银行的“新一代”工程的数据库选型和运维过程中,充分发挥自己的优势,助力完成了新系统的上线和数据库系统的持续优化。
《DB大咖说》第 9 期我们邀请到了王守军,分享分享他在“合芯 4.0”项目过程中的诸多经验和深切体会。
农商银行是一类为农而生、因农而兴的金融机构,也是农村金融体系的重要参与者,对农村经济的发展起到重要作用。和国有大行、股份制银行相比,农商银行普遍规模较小,常常面临资金不足、专业人才相对缺乏等挑战,在市场竞争处于相对不利的局面,不过,也有一些农商银行利用机制灵活的特点,结合国家出台的一系列农村金融政策,通过科技创新取得了非常不错的业绩,常熟农商银行就是其中之一。
常熟农商银行改制是全国首批组建的股份制农村金融机构,于 2016 年在上海证券交易所上市。敢为人先的常熟农商银行连续五年蝉联“陀螺”评价体系县域农商行第一,连续五年跻身英国《银行家》杂志“全球银行 1000 强”榜单前 500 强、 “2023 年中国银行业 100 强”第 81 位。这份成绩的取得离不开金融科技的支持, 从 2018 年常熟农商银行开始建设“业务中台”、“合芯 4.0”等“新一代”信息系统工程,这些系统的上线对推动常熟商业银行数字化、智能和生态化转型起到了至关重要的作用。
一、启动“新一代”工程建设
常熟农商银行是 2001 年通过改制成立的一家农村商业银行。和很多商业银行一样,早期的 IT 系统都是基于小型机+DB2 技术架构搭建,虽然系统运行比较稳定,但可扩展性不足、硬件成本高。随着互联网金融的兴起,手机银行、开放银行等新的业务形式不断涌现,运维成本高和系统可扩展性不足的问题日益凸显,旧系统已经无法满足现在的业务需求。
“之前一个跑批业务,是在夜间完成的,全部跑完需要 6 个小时。” 常熟农商银行金融科技总部基础研发部副总经理王守军介绍。
一旦跑批出现问题就需要重跑,可能就会影响到第二天正常业务的开展,这会给银行带来很大的潜在风险。而且,今天系统数据量增长得非常快,扩容迫在眉睫。然而,由于老系统采用的是基于专有设备的集中式系统,在并发能力不足时无法快速完成扩容。
常熟农商银行的“新一代”工程就是在这种背景下提出的,并于 2018 年正式启动。
图1:常熟农商银行新一代”工程建设历程
“该系统采用的是大中台+瘦核心+敏捷化前台的应用架构,来提升客户营运、产品营运、交易管理、核算管理、金融开放能力,为业务发展、生态创新提供全面支持。最终目的是通过科技赋能业务,推动全行的数字化、智能化发展。”王守军表示。
数据库是整个系统的基础,很大程度上也决定了整个系统的性能、可扩展性、灵活性,其重要性不言而喻。选择哪个数据库也是常熟农商银行必须认真考虑的问题。
常熟农商银行过去采用的是传统集中式数据库 DB2,面对新形势下的业务需求,原数据库在性能、可扩展性、容灾能力以及成本上都有明显不足。基于此,常熟农商银行决定在新系统上采用分布式数据库,以应对这些痛点。
“根据我们的业务需求,常熟农商银行在数据库选型时重点考虑数据库的成本、产品成熟度、兼容性以及自主掌控能力。”王守军说。
王守军介绍,产品成熟度主要是考察产品的功能、性能是否能满足要求,围绕产品构建的生态是否完整。“毕竟数据库是一个底座,很多周边工具和软件需要与它进行交互,如果太封闭会影响未来的使用。”他说。
而自主掌控能力是指对核心代码是否具有自主权,在当下日益重视系统安全性的背景之下,这一点非常重要。兼容能力也是重要的考虑因素之一,尤其是对 MySQL 和 Oracle 的兼容能力。通过对市场的主流分布式数据库进行综合评估,常熟农村商银行最后选择了分布式数据库 OceanBase。
图2:常熟农商数据库应用演进
“无论是产品本身的成熟度、生态完整性还是数据库的兼容性等,OceanBase 都表现优异,所以最后我们选了它。”王守军说。
二、技术栈一步步向 OceanBase 收敛
2018 年 5 月,常熟农商银行的“新一代”工程启动建设,基于OceanBase进行重构或重新开发,先后上了 53 套系统。2020 年 9 月,常熟农商银行再启动“合芯 4.0”项目,对其核心系统升级换代,这也是“新一代”工程的重中之重,同样基于 OceanBase 开发。2022 年 4 月,“合芯 4.0”项目成功投产上线,完成既定目标的同时,运行也保持着平稳和高效。
王守军介绍,项目初期曾经采用了 OceanBase 与 DB2 并行运行(DB2 作为备库),经过一年的运行,OceanBase 非常稳定,也没有出现大的问题,所以,常熟农商银行选择 OceanBase 独立承接业务流量。
目前,OceanBase 已经在常熟农商银行得到全面推广应用,截至目前已有 140 多个应用系统在使用 OceanBase 租户,如业务中台、手机银行、企业综合财务管理、超网、国结还有核心账务,未来还有信贷、绩效、收单等业务也都会逐步升级至 OceanBase。
基于 OceanBase 的各个业务系统的上线,给常熟农商银行的业务开展带来很大方便。比如,原来需要用时 6 小时的跑批业务现在只要 9 分钟就可以完成。未来如果业务量上来,可以直接加设备快速扩容来满足业务要求。
还有一些“合芯 4.0”系统的运行数据也说明新系统对业务的支持。比如,批量代发提升 651 倍、季度结息提升 46 倍、日终批量提升 41 倍;TPS 峰值提升 46 倍;日终扣款提升 25 倍。
另外,“新一代”工程结合分布式数据库的分布式和多租户特点,采用 3 中心 3 副本或者 5 副本的部署方式,业务连续性得到了保证,容灾能力同步得到改善。
图3:常熟农商“合芯 4.0”数据库架构设计
OceaseBase 的稳定运行也给了常熟农商银行充分的信心。王守军介绍,目前,常熟农商银行正在进行技术栈收敛,未来数据库的选型也会优先适配 OceanBase。
三、数据库持续优化很重要
随着“新一代”工程和“合芯 4.0”项目的上线,王守军的关注重点逐渐转向了数据库的持续优化运维。实际上,运维工作并不是项目上线才开始的。
王守军表示,项目前期的规划和设计都需要考虑,否则等到项目上线就晚了,运维成本也会随之提高。比如,在项目部署前,常熟农商银行就对数据库采用了整体分库分表的设计,通过分库分表加租户的能力,在所有全功能副本每一台机器上分布组合,充分利用所有机器的资源来满足高并发的场景以及夜间跑批等场景的资源需求。
常熟农商银行还非常注重开发代码的规范化和整体的效能提升。在开发代码规范化方面,新制订的设计规范设计共 25 个检查项,如命名规则、字段类型、主键、索引、分区表设计等规则,规范越前置成本越低。
而在效能提升方面,常熟农商银行基于“DevOps 平台+SQL 审核平台 + 人工优化 + 培训赋能”四个方面推进 SQL 优化。比如,2023 年完成了 39 个重要业务系统 411 条 TOP-SQL 优化,响应时效提升 150 倍以上,对业务赋能效果非常明显。
另外,常熟农商银行的数据库升级也值得一提。由于所使用的 OceanBase 版本迭代很快,企业往往出于系统稳定性的考虑对新版本有顾虑,数据库升级就成为用户需要面对的一个挑战。为了降低风险,常熟农商银行总结出了一套数据库升级方案:回归+演练+灰度,优先非关键系统再到关键系统,通过灰度测试,尽量降低升级风险等。
四、不要迷恋技术,要有业务思维
王守军表示,数据库技术发展很快,比如,分布式数据库运维比集中式要复杂得多,这对 DBA 的能力提出了较高的要求,而数据库运维是一项长期的工作。因此,他建议,DBA 一定要以一个开放、分享的心态去积极学习新知识和新技能,并持续学习、实践、成长。同时,工作中要积极利用各种自动化、智能化的工具、平台化能力来提升运维效率。另外,DBA 还有非常重要的一点是,要具备业务思维能力,致力于通过技术来为业务赋能,而不是迷恋技术。
王守军透露,接下来常熟农商银行将从以下 4 个方面来用好数据库,以更好地为业务赋能:
○ DNS 的优化。即基于 DNS 本地优先访问能力进行架构优化,每次 SQL 访问请求最多可以减少 10ms 的非必要时间损耗。
○ HTAP 的应用。探索基于 OceanBase HTAP 特性,提升交易及跑批分析类混合业务场景系统的运行性能及稳定性,如信贷。
○ 数据归档。善用数据归档可以解决 80% 的性能问题,2024年将会针对 OceanBase 大表进行历史数据归档,来实现进一步降本增效。
○ 推进智能运维。正在规划 DBaaS 平台,实现一键交付,通过智能预警、实时诊断提升故障分析和应急处置能力。
写在最后
《DB大咖说》是一档立足数据库领域,关注职业成长与前沿趋势,主要面向架构师、CTO/CIO、DBA、业务负责人、CEO 等推出的集「文音视频」于一体的原创栏目。我们初衷是围绕数据库领域的职业发展、趋势洞察、选型实践等话题,邀请领先企业的实干者、数据库领域的资深专家,从自身的职场积淀出发,结合所见所闻所思所感,输出一些对行业有价值的优质内容和职场方法论。