【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

南京银行互联网金融核心分布式升级实践

  • 2023-01-03
    北京
  • 本文字数:3579 字

    阅读完需:约 12 分钟

南京银行互联网金融核心分布式升级实践

随着社会各行业数字化转型逐渐走入深水区,银行业的数字化转型正经历颠覆性嬗变。未来五到十年,银行业内的并购、重组、洗牌将成为行业发展的新常态。银行自身想要发展,就要摆脱原有的惯性思维,在传统业务发展遇到瓶颈时,积极寻求“第二增长曲线”。


“工欲善其事,必先利其器”,南京银行一直以“做强做精做出特色”的运营理念为“利器”,走在科技创新前沿。成立 26 年来,南京银行不断加大信息科技投入,推动数字化转型,强化数字赋能和场景应用,成为国内首家互联网金融核心系统分布式升级的商业银行,最终跻身“万亿俱乐部”。


南京银行成立于 1996 年,总部位于江苏南京,2007 年 7 月成功在上海证券交易所上市,成为全国第一家登陆上交所的城市商行。截至 2022 年三季度末,公司股本 103 亿元,资产规模超 1.92 万亿元,位列英国《银行家》杂志公布的全球 1000 家大银行第 101 位、全球银行品牌 500 强排行榜第 98 位、中国银行业协会评选的 2022 年度“中国银行业 100 强”榜单第 21 位。

破局:业务规模激增十倍,传统 IT 架构难堪重负


随着云计算、大数据、移动支付、人工智能等互联网技术的迅猛崛起,银行业也在澎湃的发展浪潮中享受着前所未有的技术红利。互联网的发展和智能移动终端的普及把客户行为从线下转变为线上与线下并重,在平台和场景中获取的金融服务已经成为主流。

 

与金融科技蓬勃发展的势头相伴,近几年南京银行的消费金融业务增速不断加快,线上一年的发展规模达到了线下十年的业务发展规模,实现单日万级进件、万级获客、亿级投放。


南京银行上一代核心系统早在 2003 年就投入使用,与许多传统银行一样基于“IOE”架构运作。随着银行资产证券化、贷款等新业务的快速增长,上一代核心系统已无法支撑新业务的正常运行。一方面,传统架构的开发周期较长,导致需求响应较慢,无法适应互联网业务的快速发展,并且系统升级需要停机,无法保障 7×24 小时运行,且不支持灰度发布,导致几乎没有试错空间;另一方面,传统“IOE“架构成本、应用耦合度、系统研发成本都过高,生产问题的频发导致数据治理难以落地,影响数据的应用发展。


2015 年 1 月,南京银行启动第二代核心系统建设,并于 2016 年中上线。由于历史原因,第二代核心系统仍然延用集中式架构。

 

然而,市场规模和新业务增速远超南京银行预期,仅网络贷款这一项业务需求就在六个月内增长了近十倍。对于银行系统来说,每笔交易金额无论是 1 元还是 10 万元,它们的计算量都是相同的,所以在电商、互联网金融出现后,小额高频交易让传统系统不堪重负,业务并发增速远非系统优化能力所及。若新一代核心系统不进行分布式升级,南京银行将面临——要么放弃网络贷款业务,要么放弃系统稳定性。

 

紧接着,南京银行开启探访包括网商银行在内的多家互联网银行典型代表,了解其互联网金融核心系统和产品系统架构。此时,恰逢OceanBase迈出商用的一小步,经过综合考查与多轮选型,南京银行最终决定将整个互联网核心业务系统全部“架”在 OceanBase 之上。

蓄势:确定“双模运行”架构,落地三副本集群

 

2017 年初,南京银行总结近年来行业内类似项目的成败经验,确定“双模运行”原则,即保留银行可靠稳定的传统核心系统,同时采用业界成熟可信的分布式架构技术搭建互金平台,建立一个更开放、灵活、松耦合、高性能、易扩展的第二核心。

 

2017 年 7 月,蚂蚁集团多个核心架构技术团队入驻南京银行:与咨询合作伙伴以及开发商一道就应用架构、数据架构以及技术架构等层面的技术规范和最佳实践进行充分讨论和设计指导,避免走弯路。

 

2017 年 8 月,蚂蚁集团交付团队入驻南京银行:两周内完成软硬件安装部署,及时支持应用部署至生产环境,并开展联调、压力测试等工作。交付团队每日守在现场为南京银行及 ISV 提供架构咨询和技术支持,确保开发进度。

 

2017 年 9 月,南京银行、阿里巴巴及蚂蚁集团签署战略合作协议,并于 10 月发布南京银行“鑫云+”互金开放平台。“鑫云+”互金开放平台开创“1+2+3N”的互联网合作新模式,“1”代表南京银行;“2”代表阿里云和蚂蚁金融云;“3N”分别代表医、食、住、教、产、销等 N 个场景,旅游、电商、快递、等 N 个行业平台,以及 N 家中小银行,致力于做中小银行和行业平台的连接者,打通中小银行和行业平台两个生态圈。

 

经历 5 个月的架构咨询、开发测试、技术支持、培训保障后,2017 年 11 月 18 日,南京银行“鑫云+”互金开放平台正式上线,并逐步承担来自旧系统的互联网金融业务流量。“鑫云+”互金开放平台在数据库层面通过 OceanBase 实现三副本集群,每个副本有完整的数据,其中一个集群作为主库对外提供读写服务,其余集群作为备库,接收主库的事务日志和回放日志。当主库故障时,剩下的集群会立刻自动发起投票选举,选出新的主库,新主库从其他集群获得可能存在的最新事务日志并回放,完成后对外提供服务。这个故障切换过程在秒级就可以完成,意味着传统机房容灾最难解决的数据容灾切换降低到秒级,极大降低机房容灾的复杂度、保证业务连续性。

嬗变:“亮剑”三大核心能力,力促集中式向分布式演进升级


由于历史原因,集中式架构多用于传统银行、电信等行业,南京银行也不例外。但近年来,随着包括谷歌、亚马逊、阿里巴巴等在内的互联网巨头纷纷“转战”分布式架构以来,分布式的概念甚嚣尘上。客观来讲,面对金融系统需要处理的海量交易和数据时,集中式架构虽然在一致性、可靠性方面占有一定优势,但从成本、自主研发、灵活兼容、伸缩扩展等方面都逊于分布式架构,由集中式架构向分布式架构演进成为了南京银行的必然选择。

 

为了帮助南京银行顺利完成从集中式架构向分布式架构的升级,OceanBase 亮出了三大核心技术能力:

 

一、平滑的横向扩展能力:过去,南京银行使用集中式独立数据库,存储空间有限。随着业务的发展,存储空间经常被用完。扩展传统集中式数据库的唯一方法是升级硬件,但硬件资源总有用尽之时,而以 OceanBase 为代表的新一代原生分布式数据库不存在单点瓶颈,弹性扩缩容能力破解业务扩展难题。

 

二、强大的混合负载能力:南京银行内部有很多复杂的场景,需要同时具备在线事务处理(OLTP)和在线分析处理(OLAP)两种能力。目前,只有 Oracle、DB2 等大型商业数据库支持对同一条数据进行实时计算。一般情况下,为了同时具备以上两种能力,常见的做法是将数据导入数据仓库进行离线计算,但这种做法就造成了资源的浪费。OceanBase 在蚂蚁集团内部的金融场景中经过了长期的考验和完善,其自研的 SQL 引擎和分布式并行计算框架能够同时支持OLTP和 OLAP,以更高的效率和更低的成本满足南京银行的多样化需求。

 

三、业务的无损迁移能力:在数据库迁移过程中,往往银行最关心的是尽量减少数据迁移的时间和成本,同时保证业务不中断,不丢失数据。基于蚂蚁集团十年数据库架构升级的先进经验,OMS 支持秒级数据校验和回滚,高度兼容 Oracle 和 MySQL 等多种数据库类型,便捷设置数据迁移通道和回滚机制,降低南京银行的业务迁移成本。 

向新:积极求变,开辟“互联网+”新金融之路


面对巨变的金融形势与市场环境,南京银行主动求变,积极寻找传统银行转型的密钥,最终走出了一条“云融开放,智启未来”的新金融之路。

 

目前,“鑫云+”互金开放平台已服务多家银行的线上百万用户,平均每个客户的放款时间只需 1 秒,日处理订单量设计容量从原来的 10 万笔/日以下,增加到了 100 万笔/日以上,处理效率是原来的 10 倍;银行单账户的维护成本也从过去的 30~50 元/账户,降低到 4 元/账户,节省管理成本约 80%~90%;此外,“鑫云+"平台的人工维护成本也大大降低,维护专员数量约为传统银行系统的 1/5。

 

通过 OceanBase 及蚂蚁分布式金融交易处理架构搭建的高效输出、快速迭代、无限扩容的“鑫云+”互金开放平台,从系统建设、研发模式、运维管控等方面,全面引领南京银行的信息科技架构实现数字化转型,为平台容量的线性扩展和高可用部署提供了有力支撑,为金融机构从传统架构演进到分布式异地多活架构提供首个参考案例,提出完善的方法论与路线图:从单机房无单点,到双机房双活,再到两地三中心,最后到可无限扩展的异地多活架构。

 

长期以来,银行信息科技团队将确保客户和银行的资金安全作为恪守铁律,使用最成熟、稳定的技术,保证系统交易的实时一致性,是银行信息技术部门的基本工作原则。因此,银行架构无一例外地选择使用以“IOE”为代表的成熟、稳定、具备良好技术支持保障体系的“经典”商用软件和体系架构,并培养了大批熟悉应用相关技术的优秀技术人员。分布式架构与传统架构相比,在架构、设计、开发、运维、管理上需要有不同的思维和技术能力,会对现有技术团队的思想观念和思维模式造成巨大冲击,需要有一个“脱胎换骨”的转变过程。

 

此次南京银行积极探索创新,意味着我国传统金融机构完全能够掌握全球领先、拥有完全自主知识产权、安全可控的金融科技能力,在普惠金融业务上不再受限于技术瓶颈,使金融机构能更专注于业务创新,加快“互联网+”的转型与实践。

 

2023-01-03 15:114987

评论

发布
暂无评论
发现更多内容

架构实战营 7 期「模块一」为何架构设计能力难以提升

Steve_bot

设计模式之学习命令模式

乌龟哥哥

5月月更

[ kitex 源码解读 ] 限流

baiyutang

Go 微服务 云原生 5月月更 kitex

五、浅谈容器逃逸

穿过生命散发芬芳

5月月更 容器逃逸

正则表达式知识点梳理

真嗣

正则表达式

ffmpeg命令参数类型

Loken

音视频 5月月更

架构训练营 模块一作业

小马

「架构实战营」

druid 源码阅读(九)Druid removeAbandoned参数

爱晒太阳的大白

5月月更

在FinClip Hackathon中夺冠是一种什么样的体验?

Geek_99967b

hackathon 小程序开发

架构实战营模块 1 作业

Naoki

架构实战营

架构实战营 - 第 6 期 模块六课后作业

乐邦

「架构实战营」

亚马逊AWS特约评委揭秘FinClip黑客松获胜秘诀

Geek_99967b

hackathon 小程序开发

[模块一作业]

wuli洋

Java Optional 初始为空

HoneyMoose

LSM-Tree - LevelDb 源码解析

懒时小窝

Lsm LSM树 LSM-Tree level

Druid 连接池源码阅读 08

石小天

FinClip SaaS 版本重磅上线,打开全行业技术普惠大门

Geek_99967b

SaaS 小程序容器 小程序开发

学生管理系统架构设计

Justin1024

极客训练营模块一作业

Geek__猫猫头

贝叶斯网络

5月月更

JavaWeb MyBatis

Emperor_LawD

mybatis javaWeb 5月月更

学生管理系统架构设计

Geek_e8bfe4

Redis Cluster集群收缩主从节点详细教程

jiangxl

druid 源码阅读 8——过一下流程图的init

张大彪

微信业务架构图和学生管理系统架构设计

Geek_7a789a

代码之外:关于校招 Offer 选择的问题

宇宙之一粟

offer 代码之外 5月月更

从Flutter浅谈跨平台移动开发框架

Geek_99967b

flutter 移动开发 小程序开发

5月25日,阿里云开源 PolarDB-X 将迎来重磅升级发布

阿里云数据库开源

开源 开源数据库 国产数据库 PolarDB-X 数据库·

【架构训练营】模块一作业

知北游

架构实战营-模块1作业

Gavin.Yang

《卡片笔记写作法》:用卡片积累思考

郭明

南京银行互联网金融核心分布式升级实践_数据库_李冬梅_InfoQ精选文章