本文为《DB大咖说》第 8 期的精简梳理。
杨文云于 2020 年四川银行刚组建时进入四川银行推进办工作。此前曾在 IBM 工作了 10 多年,担任过大型机数据库运维团队的 Leader,其职业生涯一直以数据库相伴,是一名非常资深的数据库技术专家和技术团队负责人。
长期扎根数据库运维领域的杨文云非常重视对数据库技术本身的掌握,同时也强调对业务的深入理解。他认为“数据库运维的尽头是业务,不懂业务的 DBA 不会是一个好的 DBA”,并把这一理念贯穿到自己在四川银行的工作之中。
《DB大咖说》第 8 期我们邀请到了杨文云,分享他的个人成长经历,以及他参与四川银行数据库选型的一些经验体会。
四川银行成立于 2020 年 11 月,是以攀枝花市商业银行和凉山州商业银行为基础,引入 28 家投资者,采取新设合并方式设立的四川省首家省级法人城市商业银行,注册资本金位居全国城市商业银行之首。
作为四川省内银行,四川银行坚守服务地方经济、服务中小企业、服务城乡居民的市场定位,致力于成为管理规范、经营稳健的现代商业银行和四川经济社会发展的金融主力军,并确立了 2030 年资产达到 1 万亿的战略目标。
为了实现更好地服务成渝地区双城经济圈建设、支持地方经济,早日达成四川银行的战略目标,2022 年四川银行制订了科技战略规划,并启动了新一代银行系统的开发工作。
一、要建新一代银行系统
四川银行成立之前的攀枝花市商业银行和凉山州商业银行位于四川攀西地区,是四川经济欠发达地区,两家银行都没有太多财力投资信息系统建设,成立四川银行后也没有马上着手开发新系统,而只是将两家银行的系统通过桥方案进行了数据打通。显然,这并非长久之计。
两家银行原来的 IT 系统采用的都是传统架构,不够灵活、健壮性不足,容错能力弱。同时,两家银行的技术栈不同,合并后没有统一开发、业务承载和运维平台,IT 环境较为复杂。另外,现有的这些应用基本为单体架构,分层不清,可复用性较差。这些都直接影响了四川银行的业务创新能力。
合并后的四川银行业务进入高速发展轨道,很快从资产就从合并时 1000 亿增长到目前的 3000 多亿,而且还在不断增长之中。在此过程中,原来的系统越来越不能满足业务需求,新一代银行系统的建设也就被提上四川银行的议事日程。
2022 年,四川银行制订了新的业务规划和科技战略规划。按照规划,四川银行决定重构新一代核心、信投、渠道及数据平台。数据库是新一代银行系统的核心,其选型成功与否也直接关系到新一代银行系统的最后成败。面对市场上众多的数据库产品,到底该怎么用,该如何选?
四川银行股份有限公司四级专家、数据应用处理科室负责人杨文云表示:“数据库的选型首先要考虑的是要符合国家相关监管机构的规定。”
杨文云介绍,这几年中国人民银行和银保监会等机构先后发布了多项规定来指导数据库的使用。比如,2019 年 9 月,中国人民银行印发的《金融科技(FinTech)发展规划(2019-2021 年)》要求“推动安全可靠金融级分布式数据库研发应用”;2022 年初,中国人民银行印发《金融科技发展规划(2022-2025 年)》的通知,提出稳妥推进信息系统向多节点并行运行、数据分布存储、动态负载均衡的分布式架构转型;2022 年 1 月,银保监会发布《银行业保险业数字化转型指导意见》,提出“优化数据中心布局,构建多中心、多活架构
“我们参考了同业先进实践,研究了业界经验制定架构目标和能力要求,针对监管机构对推动分布式数据库建设的明确要求,结合我行新一代系统的规划,最后明确要选一款兼容性强、成熟度高的国产分布式数据库。”杨文云说。
确定大方向之后,四川银行就开始调研头部的分布式数据库厂商和数据库落地情况。从 2022 年 8 月份开始调研,前前后后用了差不多 3 个月时间。先从中选定了 8 个数据库产品,实际考察了其中 4 家,随后又进行了 POC 测试。在 POC 测试中 OceanBase 脱颖而出,在最终综合评定中赢得了四川银行的认可,并确定为新一代银行系统的数据库。
二、充分测试,敲定 OceanBase
此次数据库的选型事关重大,四川银行的核心系统、渠道、信投等这些银行最为关键的业务系统都要用这个数据库,因此四川银行非常慎重。
“市场上的数据库产品众多,我们在当初选型时也考虑了很久。最后决定,结合数据库对业务架构的支撑和适配,从容量、可用性、功能、性能、成本(包括应用适配成本和时间成本)等多方面权衡。”杨文云表示。
杨文云介绍,数据库选型有一些基础的考察点,比如功能的完整性和性能等是选型时要考虑的。其中,有一些是四川银行特别在意的会花更多时间考察,如数据库的强一致性,这也是四川银行选择原生分布式数据库的一个原因。
“和基于中间件的分布式数据库不同,原生分布式数据库天生具有强一致性,不需要额外的技术组件保障,对应用开发透明,不需要考虑分片键,对应用没有侵入性要求,还支持全局索引和本地索引,在不同场景下可以自由组合数据,保证强一致性,有明显优势。”杨文云说。
其次,要考虑数据库体系对开发兼容是否友善、运维是否易维护、持续升级是否简单、生态是否完善等。
第三,要考察是否有成熟的落地案例,特别是在国有大行、股份制银行、城商行案例,由此来证明产品的可持续性。
除了考察数据库的功能外,四川银行还根据实际业务需求,结合开发和运维能力,设计了一套测试的用例。这些用例几乎覆盖了四川银行所有的典型金融场景,包括开户、转账、余额查询、批量交易、自动结算等,共 120 个大类、近 800 个案例,还包括标准的 TPC-C、TPC-H 测试。
“数据库的尽头是业务,只有符合业务要求的才是好的数据库。我们想要一个成熟、可控、具有前瞻性、可持续性、兼容性强的数据库,同时,应用改造成本低、学习成本低。”杨文云说。
杨文云介绍,在测试过程中,OceanBase 的成熟度给了他非常深的印象,同事们对 OceanBase 的反馈也都非常好。比如,OceanBase 对 Oracle 的兼容度高,在进行 POC 测试时可以在不修改代码的情况下通过 Jmeter 压力测试。还有 OceanBase 真正的分布式执行能力也让他很认可。
“OceanBase 这种原生分布式数据库对数据的操作是真正分布式执行的,是真正数据库级的优化器,和基于中间件的分布式数据库相比,更容易进行调优,数据库的运行也会更稳定、更高效。”杨文云说。
三、DBA 需要深入业务
随着数据库选型工作结束,四川银行的新一代系统的开发也已经正式启动,杨云文也将更多的工作精力投入到 OceanBase 数据库的维护以及指导开发人员使用数据库上。
四川银行成立前的攀枝花市商业银行和凉山州商业银行规模都不大,采用的数据库以 Oracle、DB 2、Informix 为主,都是集中式数据库,这是首次在一个如此重要的系统中采用分布式数据库。和集中式数据库相比,分布式数据库有很多独有的特性,比如分片、副本等,无论对负责数据库运维的 DBA 还是对开发人员都是一个挑战。
“分布式数据库是未来潮流,作为 DBA 必须要跟上这股潮流,因此 DBA 也要不断学习,同时,各种组织也要加强相关培训。”杨文云表示。
杨文云认为「学习」应该是 DBA 的基本素质。作为 DBA,一定不要满足于数据库的安装、备份等这些基础的工作,因为数据库是和系统底层代码结合紧密的底座系统,DBA 还要精通操作系统、懂硬件、熟悉网络、IDC 架构,一个好的 DBA 一定是一个复合型的人才。
杨文云还特别提醒 DBA,一定要了解业务、深入业务。
“DBA 可以细分为不同类型,有偏应用的 DBA、有偏系统维护的 DBA,还有系统级的 DBA。但是我觉得一个 DBA 要想走得长远,需要参与到开发体系里面去了解业务、了解应用的开发。这一点对于现在的 DBA 尤其重要。”杨文云说。
杨文云解释,Oracle 数据库经过数十年的发展功能非常完善,提供了很多非传统数据库的功能,也减轻了开发人员的工作。然而,新兴的数据库出现历史都不太长,功能还没有办法做得像 Oracle 数据库一样,很多 Oracle 数据库的功能需要开发人员在业务代码里实现。
杨文云说,他就经常听到开发人员问“以前用 Oracle 就行,为什么现在不行了?” 实际上是因为多年来开发人员也都习惯了面向 Oracle 数据库开发,现在离开了 Oracle 数据库才发现很多事情并非理所当然。在这个过程中,有 DBA 的帮助解决起来就更容易一些。
好在现在的国产数据库在兼容 Oracle 语法上都做得很好,比如 OceanBase 基本做得了近乎完全兼容,从而降低了开发人员适应的难度。不过,对于 DBA 而言,有责任帮助开发人员建立新的开发规范,让他们快速适应新的数据库。不仅如此,DBA 还有责任帮助开发人员更好地发挥出国产分布式数据库的优势。而这一切都建立在 DBA 能真正理解数据库的底层原理,建立在 DBA 拥有全面扎实的 IT 基本功之上。
显然,这并不容易,也正因为不容易才稀缺,才能让自己的职业生涯走得更稳、更长远。
特别感谢尹海文对本期《DB 大咖说》的支持。尹海文目前担任某科技公司 DBA 总监,在数据库领域深耕 10 余年,Oracle ACE,科技公众号《胖头鱼的鱼缸》主理人,热衷于分享他在数据库方面的技术与非技术见解。