您当前的位置:首页 > 电脑百科 > 程序开发 > 架构

案例 | 中小银行分布式架构探索与实践

时间:2020-08-04 14:25:36  来源:  作者:

 

案例 | 中小银行分布式架构探索与实践

 

近年来,随着银行业务量的快速增长,一些大型商业银行早已布局分布式架构转型,这不仅是国家安全战略的要求,也是随着互联网发展,商业银行提升自身金融服务能力的需要。商业银行系统构建高可用、易扩展、低成本的分布式架构,逐渐替代集中式架构成为大势所趋。2015年以来,上海农商银行按照“整体规划,分层分类,逐步推进”的策略,在分布式架构转型方面进行了一些探索和实践,走出一条有自身特色的转型之路。

案例 | 中小银行分布式架构探索与实践

上海农商银行金融科技部副总经理兼开发中心总经理  陶建林

分布式架构和集中式架构简介

目前,商业银行系统采用的系统架构主要有两类:一类是集中式架构,主要通过垂直扩展,增加单机配置或设备升级以提升系统的处理能力;另一类是分布式架构,主要以水平扩展,通过横向扩充节点,每个节点运行独立实例,节点与节点之间通过网络互连,提高系统处理能力。

1.集中式架构特点。集中式架构系统的计算、存储都在一套硬件体系内,无需面对网络分区问题,同时可以通过存储的冗余和软硬件结合的高度优化,实现系统的高效运行。因此这种架构成熟稳定,可靠性好,同时集中式架构部署结构简单,设备数量少,在运维复杂度上较分布式架构有天然优势。目前上海农商银行主要核心业务系统均采用集中式架构部署,系统交易成功率和业务连续性得到了有效保证,业务量年均增长率近20%,至2019年底,日均交易量在1000万笔左右。

虽然传统的集中式架构具有成熟稳定、高可靠、强一致性的特点,但随着商业银行业务的不断发展,也慢慢暴露出来以下问题。

成本控制问题:集中式架构中很多高并发的业务系统采用小型机,大型商业银行核心账务系统往往采用主机设备,造成软、硬件成本以及运维成本都非常高昂,在一定程度上限制了业务的发展。

处理能力限制:目前商业银行随着业务的不断发展,整体应用系统的建设规模逐渐庞大,这种垂直、单一的扩展模式,不具备横向处理能力,处理能力受到限制。

风险控制问题:由于集中式架构本身扩展性的不足,所有业务都跑在一个单点上,一旦发生故障就可能影响到所有用户。同时随着互联网业务的发展,对业务连续性要求更高,传统架构很难保证7×24业务不中断的服务能力。

无法快速交付:传统的开发模式应用内部模块、应用与应用之间的耦合度非常高,使得软件的开发和产品交付周期比较长,无法满足互联网需求的快速交付要求。

2.分布式架构的特点。分布式架构按照一定的维度将系统功能拆分,通过负载均衡机制,将业务分摊到多个节点上处理。这种架构的优点是可以采用更开放的架构,各节点松耦合,对底层产品的可靠性、可用性依赖降低,可以基于廉价的硬件和开源软件构建,成本更为低廉,可用性、可扩展性更好。尤其是随着应用规模的扩大,边际成本将更低。

这种架构的难点是要做好各节点的协同工作,尤其是要处理好数据的一致性、完整性问题。根据CAP理论,在可用性、分区性与一致性三者之间,同时只能满足两个,如果要满足可用性(A)、分区容忍性(P),就需要牺牲一致性(C)。业界的一般做法是根据业务特点,通过较为复杂的应用设计,放弃实时一致性、保障最终一致性来解决该问题,分布式架构增加了应用设计和研发的复杂度。此外,随着节点数的增加和分布部署,对运维管理、异常处置也提出了更高要求。

通过对集中式和分布式架构在业务支撑、一致性/可用性、运维成本/故障恢复方面分析发现,分布式架构在经济性、安全自主、灵活性、可伸缩性等方面有明显优势。随着金融系统需要处理的交易量与数据量越来越大,分布式架构在这方面的优势也会越来越明显。集中式系统在可维护性、一致性方面有优势,而分布式系统需要达到同等或更高的可维护性与高一致性,需要通过先进的分布式中间件与大规模运维平台来支持。

架构演变及转型策略

1.架构转型关键点。商业银行实施分布式架构,需要从系统架构理念、设计模式、IT运维机制、人才队伍建设和科技支撑体系等5个方面进行通盘考虑。整体的诉求是优化应用架构、数据架构、技术架构,建立灵活开放、高效协同、安全稳定的IT架构体系,强化对业务快速创新发展的科技支撑。

架构理念:传统架构往往采用“峰值性能”来规划和设计银行信息科技体系的基础设施和运维能力,在某一阶段内其业务处理能力是静态的、有限的。分布式架构则需要全新的“弹性伸缩”的架构设计模式,按照“动态性能要求”来规划和设计;机器资源可以灵活动态增加,在业务高峰期采用“自动弹性伸缩”的方式快速响应处理能力要求,降低IT资源成本,并且满足高并发的突发性业务需求。例如在“618”“双11”购物节对银行支付系统的高并发处理能力的业务场景就特别适合。  

设计模式转变:传统的系统设计方式是采用“竖井”式的,各个系统独立运行,系统之间采用应用集成和数据总线的方式实现互连互通。分布式架构则强调组件化和服务化,功能模块按照业务模块可以采用横切、纵切等方式灵活划分组件和服务,数据则大量采用LOCAL存储的方式实现分布式数据访问,通过轻量级服务和高速的消息机制实现应用和数据的整合。 

IT运维模式:传统的IT运维强调在服务水平约定的基础上实现标准化和流程化。而在分布式架构下,需要实现数据和管理节点的实时和动态调整,要求运行监控更加自动化、敏捷化和智能化;同时需要研究和应用DevOps开发运维一体化模式,在软件集成、生产部署和业务应用方面实现更紧密的沟通、协作与整合,对传统的运维模式形成了一定挑战。

人才建设:由于分布式架构部署方式、网络策略、数据库的专有特性以及资源管理策略等核心技术与传统架构差异较大,同时随着分布式架构系统建设的普及,人才短缺问题也慢慢暴露出来,因此中小型银行在分布式架构人才队伍建设方面也是一个关键。目前市场上现有的分布式架构人才主要聚集在互联网公司和大型银行的金融科技公司,属于热门人才,人力成本比较高。所以中小银行需要考虑倾斜性的人力资源政策,创新科技人才薪酬体系,尽快建立自己的分布式架构核心技术团队。

2.架构转型实施策略。架构转型是一个复杂的过程,需要采取循序渐进的实施策略。

坚持架构规划先行:首先确定集中式向分布式架构的转型目标,明确架构转型实施路径,最终在业务支撑方面,实现业务应用的高并发、可扩展、支持海量数据存储及访问;在系统建设、运维方面,完成基于通用廉价的硬件基础设施建设,提升自动化运维能力,降低开发、运维成本。

循序渐进、分批实施:以分布式扩展、大数据处理应对海量高并发的计算需求,逐步构建适合银行本身的分布式架构技术栈,实现从传统技术和云计算技术相结合的混合架构逐步过渡到开放的分布式架构,以积极稳妥的步骤推动IT架构转型。

上海农商银行分布式架构应用实践

上海农商银行2014年完成新一代账务系统上线,2015年确定了系统架构向组件化、服务化、标准化、移动化的转型方针,同时确定了开放平台小型机向PC机、虚拟机逐渐过渡的架构思路,开始布局云计算、大数据、分布式数据库等互联网新技术应用研究。2016年规划并构建了基于分布式架构的大数据平台,实现了支持在线、离线和实时数据服务的混合数据架构,为各渠道类、数据分析类业务应用提供精准化管理和智能化服务。上海农商银行践行数字化转型战略,以大数据、云计算为基础,基于分布式架构搭建共享能力中台、数据中台、智慧中台最终实现我行的应用架构转型之路(见图1)。具体实施路线如下。

案例 | 中小银行分布式架构探索与实践

图 分布式应用架构

1.确定架构转型策略及目标。2015年开始,上海农商银行根据自身的业务发展需求着手研究并制定大数据平台、移动互联网平台以及云计算的整体架构规划。确定了采用大数据处理、分布式计算、实时流处理、API经济等技术构建基础金融平台。按照“建平台、部应用、练队伍”的思路,开启分布式架构转型之路。

2.构建分布式架构技术栈,开展平台、应用建设。2016年,上海农商银行确定了分布式架构技术栈,主要包括分布式服务、分布式事务框架、分布式缓存、分布式消息等。构建了基于开源Hadoop技术的企业级大数据平台,引入Hive、HBase、Solr、Spark、ELK等技术组件,通过分布式事务的框架,结合分布式事务提交和分布式的消息,支持强一致性和最终一致性多种模式,最终完成大数据生态生命周期管理的整体构建。

2017~2019年实现历史数据存储系统、影像系统等集中式架构向大数据平台分布式架构迁移,基于分布式框架构建了在线精确查询、离线批量加工、实时流处理、内容管理、大数据智能分析等5个基础应用平台。通过分布式消息平台,实现应用级的数据交互,支撑了交易风险控制、客户精准分析、人工智能等创新型应用,实现了借记卡风险预警的实时流处理,践行了数据即服务的管理理念,有效提升了业务处理效率。

截止目前,大数据平台共接入系统68个,存储结构化、非结构化数据217TB,为30个业务应用,135个联机交易提供应用支撑,日交易量20万笔,真正实现业务数据前、中、后台之间串联,让沉睡的历史数据在分析系统中“活起来”,消除技术壁垒和数据孤岛,充分发挥数据资产的价值。

3.规划基础云平台建设。2017年上海农商银行按照“云数据中心”理念,规划基于分布式的Paas金融云基础架构,开展基于Docker和Kubernetes技术预研,同时践行DevOps的理念,进行了容器云的系统规划、场景设计、产品选型和POC测试。实践过程中,坚持从实际业务需求出发,将实际需求与容器云最佳实践相结合,在微服务、应用容器化改造、弹性扩展、灰度发布等方面,进行了深度研究和实践。通过基础云平台的研究实践,确定了我行践行强健稳定、弹性伸缩、开源开放的基础架构平台的技术路线,为后续的PaaS平台建设提供了坚实的技术支撑。后续还将开展网络SDN对接、存储自动化管理、PaaS平台对接等工作。

4.分布式数据库研究和试点。在实现架构转型过程中,必须实现数据持久化层的分布式,但这恰恰是分布式架构中技术难度最大、最为关键的部分。2018年上海农商银行开展分布式数据库技术的探索和研究试点,对事务一致性控制、集群高可用切换、联机在线重分布、数据库备份、恢复以及分布式事务控制能力、日终批处理能力、在线扩容能力、问题诊断能力、并发处理能力等关键能力进行了技术验证。2019年底筹备成立联合创新实验室,开展分布式数据库的关键技术预研以及应用试点工作。

展望与挑战

2020年,上海农商银行将践行数字化转型战略,通过数据中台、业务中台、智慧中台建设,进一步完善“开放性、高容量、易扩展、低成本、高可靠”的分布式技术体系,逐步实现企业级分布式能力建设,持续提升分布式技术平台的业务支撑,继续分布式架构转型之路。

然而,中小型商业银行在推进分布式转型方面仍然存在不少挑战,需要在以后的实践过程中创造性解决。

基础平台建设方面:缺少开箱即用、适应分布式架构、体系性的解决方案,在很多领域,银行业金融机构仍需依托开源产品自行定制开发,对开源产品和底层技术掌控的深度有待加强。

应用转型方面:商业银行长期的发展中积累了大量软件资产,转型过程需要投入大量的人力资源,分布式转型与业务创新的平衡难度较高。

安全生产方面:分布式技术本身以及人员相关技能都需要一个逐步完善和成熟的过程,对生产稳定运行也带来挑战。因此,商业银行在面对纷繁复杂的业务场景时,需要在实践中创造性地解决各类问题。



Tags:架构   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
为了构建高并发、高可用的系统架构,压测、容量预估必不可少,在发现系统瓶颈后,需要有针对性地扩容、优化。结合楼主的经验和知识,本文做一个简单的总结,欢迎探讨。1、QPS保障目标...【详细内容】
2021-12-27  Tags: 架构  点击:(3)  评论:(0)  加入收藏
前言 单片机开发中,我们往往首先接触裸机系统,然后到RTOS,那么它们的软件架构是什么?这是我们开发人员必须认真考虑的问题。在实际项目中,首先选择软件架构是非常重要的,接下来我...【详细内容】
2021-12-23  Tags: 架构  点击:(7)  评论:(0)  加入收藏
现有数据架构难以支撑现代化应用的实现。 随着云计算产业的快速崛起,带动着各行各业开始自己的基于云的业务创新和信息架构现代化,云计算的可靠性、灵活性、按需计费的高性价...【详细内容】
2021-12-22  Tags: 架构  点击:(10)  评论:(0)  加入收藏
我是一名程序员关注我们吧,我们会多多分享技术和资源。进来的朋友,可以多了解下青锋的产品,已开源多个产品的架构版本。Thymeleaf版(开源)1、采用技术: springboot、layui、Thymel...【详细内容】
2021-12-14  Tags: 架构  点击:(20)  评论:(0)  加入收藏
本系列为 Netty 学习笔记,本篇介绍总结Java NIO 网络编程。Netty 作为一个异步的、事件驱动的网络应用程序框架,也是基于NIO的客户、服务器端的编程框架。其对 Java NIO 底层...【详细内容】
2021-12-07  Tags: 架构  点击:(16)  评论:(0)  加入收藏
前面谈过很多关于数字化转型,云原生,微服务方面的文章。虽然自己一直做大集团的SOA集成平台咨询规划和建设项目,但是当前传统企业数字化转型,国产化和自主可控,云原生,微服务是不...【详细内容】
2021-12-06  Tags: 架构  点击:(23)  评论:(0)  加入收藏
背景在日常工作中,我们通常需要存储一些日志,譬如用户请求的出入参、系统运行时打印的一些info、error之类的日志,从而对系统在运行时出现的问题有排查的依据。日志存储和检索...【详细内容】
2021-11-23  Tags: 架构  点击:(20)  评论:(0)  加入收藏
zookeeper动物管理员,是一个很形象的名字,是一个分布式协调服务。它可以用来做分布式配置管理,服务注册及发现,分布式锁。在CAP中,属于CP型。下图是zookeeper的架构图: 图中,绿色的...【详细内容】
2021-11-16  Tags: 架构  点击:(38)  评论:(0)  加入收藏
如何设计一个好的软件架构,如何提高软件的扩展性,移植性,复用性和可读性?很多做嵌入式开发的朋友经常会遇到这种情况:一个项目软件设计完成了,客户提出了一些新的功能需求。这时侯...【详细内容】
2021-11-08  Tags: 架构  点击:(35)  评论:(0)  加入收藏
架构是数据仓库建设的总体规划,从整体视角描述了解决方案的高层模型,描述了各个子系统的功能以及关系,描述了数据从源系统到决策系统的数据流程。业务需求回答了要做什么,架构就...【详细内容】
2021-11-03  Tags: 架构  点击:(35)  评论:(0)  加入收藏
▌简易百科推荐
为了构建高并发、高可用的系统架构,压测、容量预估必不可少,在发现系统瓶颈后,需要有针对性地扩容、优化。结合楼主的经验和知识,本文做一个简单的总结,欢迎探讨。1、QPS保障目标...【详细内容】
2021-12-27  大数据架构师    Tags:架构   点击:(3)  评论:(0)  加入收藏
前言 单片机开发中,我们往往首先接触裸机系统,然后到RTOS,那么它们的软件架构是什么?这是我们开发人员必须认真考虑的问题。在实际项目中,首先选择软件架构是非常重要的,接下来我...【详细内容】
2021-12-23  正点原子原子哥    Tags:架构   点击:(7)  评论:(0)  加入收藏
现有数据架构难以支撑现代化应用的实现。 随着云计算产业的快速崛起,带动着各行各业开始自己的基于云的业务创新和信息架构现代化,云计算的可靠性、灵活性、按需计费的高性价...【详细内容】
2021-12-22    CSDN  Tags:数据架构   点击:(10)  评论:(0)  加入收藏
▶ 企业级项目结构封装释义 如果你刚毕业,作为Java新手程序员进入一家企业,拿到代码之后,你有什么感觉呢?如果你没有听过多模块、分布式这类的概念,那么多半会傻眼。为什么一个项...【详细内容】
2021-12-20  蜗牛学苑    Tags:微服务   点击:(8)  评论:(0)  加入收藏
我是一名程序员关注我们吧,我们会多多分享技术和资源。进来的朋友,可以多了解下青锋的产品,已开源多个产品的架构版本。Thymeleaf版(开源)1、采用技术: springboot、layui、Thymel...【详细内容】
2021-12-14  青锋爱编程    Tags:后台架构   点击:(20)  评论:(0)  加入收藏
在了解连接池之前,我们需要对长、短链接建立初步认识。我们都知道,网络通信大部分都是基于TCP/IP协议,数据传输之前,双方通过“三次握手”建立连接,当数据传输完成之后,又通过“四次挥手”释放连接,以下是“三次握手”与“四...【详细内容】
2021-12-14  架构即人生    Tags:连接池   点击:(16)  评论:(0)  加入收藏
随着移动互联网技术的快速发展,在新业务、新领域、新场景的驱动下,基于传统大型机的服务部署方式,不仅难以适应快速增长的业务需求,而且持续耗费高昂的成本,从而使得各大生产厂商...【详细内容】
2021-12-08  架构驿站    Tags:分布式系统   点击:(23)  评论:(0)  加入收藏
本系列为 Netty 学习笔记,本篇介绍总结Java NIO 网络编程。Netty 作为一个异步的、事件驱动的网络应用程序框架,也是基于NIO的客户、服务器端的编程框架。其对 Java NIO 底层...【详细内容】
2021-12-07  大数据架构师    Tags:Netty   点击:(16)  评论:(0)  加入收藏
前面谈过很多关于数字化转型,云原生,微服务方面的文章。虽然自己一直做大集团的SOA集成平台咨询规划和建设项目,但是当前传统企业数字化转型,国产化和自主可控,云原生,微服务是不...【详细内容】
2021-12-06  人月聊IT    Tags:架构   点击:(23)  评论:(0)  加入收藏
微服务看似是完美的解决方案。从理论上来说,微服务提高了开发速度,而且还可以单独扩展应用的某个部分。但实际上,微服务带有一定的隐形成本。我认为,没有亲自动手构建微服务的经历,就无法真正了解其复杂性。...【详细内容】
2021-11-26  GreekDataGuy  CSDN  Tags:单体应用   点击:(35)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条