张升:农业银行的分布式架构应用实践与展望

近年来,以阿里为代表的互联网企业提出的“去IOE”,在业界引起了广泛的讨论。“去IOE”直接含义是不使用传统IT巨头的产品,这些厂商产品虽然好,但基本处于市场垄断地位,用户议价能力较弱,成本高昂,技术受制于人,供应链风险较大。“去IOE”更深层次的含义是采用分布式的架构替代集中式的架构,构建高可用、易扩展、低成本的分布式架构。

随着国家安全可控政策的实施,移动互联网的兴起,业务量的迅速提升,以及利率市场化所带来的成本约束日益显现,银行业信息系统采用分布式架构是大势所趋。近年来,农业银行在分布式架构方面进行了一些探索和实践。

一、概述

分布式架构简介

一般可以将架构分为两类,一类是以垂直扩展(Scale up)为主的架构,如通过增加单机配置,或者将中低端设备升级成为高端设备,用以提升系统的处理能力,称之为集中式架构,早期的哑终端主机架构是典型代表;一类是以水平扩展(Scale out)为主的架构,通过横向扩充节点,如一个节点扩充到多个节点,每个节点运行独立实例,节点与节点之间通过网络互连,随着节点扩充系统处理能力能够随之提升,单节点失效时,整个集群仍然可以对外提供服务,称之为分布式架构。

信息系统发展到今天,单一的架构难以满足业务量、数据量不断增长和业务需求灵活多变的要求,集中式架构与分布式架构不再是泾渭分明,往往处于融合状态,如农业银行全国数据大集中工程实施以前,核心系统部署在各省域中心,通过交换系统实现全行的业务联网,从全行来看,核心系统是一个分布式的架构,但从某个省中心来看,又是一个集中式的架构。全国集中以后,核心系统基于主机的并行耦合架构,将核心业务全部集中到一个数据库当中,通过耦合器实现内存共享,一般将其理解为集中式架构,但该架构本身也采用了许多分布式技术,如应用服务层、数据服务层、存储服务层均实现了多节点部署,单机故障不会影响到业务的连续运行,系统处理能力可以通过垂直扩展或者水平扩展提升。

优缺点分析

1、集中式架构的优缺点

集中式架构系统底层一般采用成熟的商业基础软件构建,这种架构的优点是成熟稳定,可用性、可靠性好,银行的技术人员可专注于业务功能开发,无需过多关注底层技术的实现。全国数据大集中后,农业银行核心业务系统交易成功率和业务连续性得到了进一步提升,产品创新与推广更为高效,业务量年均增长率近30%,至2014年底,日均交易量在2.6亿笔左右,峰值交易量突破3.2亿笔/日。自集中以来,虽然业务产品和业务量均大幅增长,但底层技术架构基本保持不变,运维更为集中统一,有力地保障了业务快速发展和生产的平稳运行。

缺点方面,一是风险度集中,虽然产品比较成熟稳定,但一旦出现软件或者逻辑上的极端异常,也有可能导致整个集群不可用,从而引发全局性停业。二是我国人口基数大,随着经济的快速发展,业务量在全球处于领先,许多新的问题、产品缺陷将有可能首先在我国触发。三是成本高昂,集中式架构对基础软硬件产品的可靠性、可用性依赖度高,这些技术产品基本被极少数公司所垄断,缺乏有力的竞争者,IT成本居高不下。四是核心技术受制于人,供应链风险较大。

2、分布式架构的优缺点

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

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

二、农业银行在分布式架构上的实践

随着Linux等开源软件日益成熟,X86服务器的可靠性、处理性能快速提升,虚拟化、集群、大数据、高速网络技术得到广泛应用,为构建分布式架构提供了有利条件。近年来,农业银行在主机和开放领域对分布式架构进行了研究和实践。

主机领域

以新一代核心银行系统建设为契机,农业银行对主机的架构进行了优化。

一是将交易路由层分离出来,采用独立的负载均衡设备实现交易的统一接入和负载均衡调度,减少了对主机的依赖,降低了资源消耗。

二是采用读写分离设计,构建主机开放融合架构,将查询类交易的应用逻辑处理下移到国产X86服务器上,通过DRDA方式访问主机数据库,从试点情况来看,交易下移后可比下移前可节省60%左右的主机计算资源消耗,效果明显。

三是将明细数据下移到开放平台上,基于Hadoop架构实现明细业务查询。

四是将可以下移的业务系统整体下移到开放平台,减少主机资源使用。

开放领域

全国数据大集中之后,农业银行大力推进集群架构、虚拟化技术的应用,采用Linux替代UNIX,用X86服务器替代小型机,引入集群数据库和MPP数据库,探索存储虚拟化应用,构建更加开放的分布式架构,同时加强监管控等运维平台研发,降低分布式架构所带来的运维压力,提升系统运维标准化、自动化水平。

1、农业银行开放平台分布式架构

下图列出了农业银行目前开放平台的典型架构,从应用接入层、应用服务层到数据服务层和存储服务层,均实现了分布式部署。

图1:农业银行开放平台分布式架构

1)应用接入层负责前端访问需求的统一接入,以及对后端应用服务器的交易分发和负载均衡,负载均衡集群采用软件或者硬件实现。通过应用接入层实现了前端对后端的透明访问,后端系统可以根据业务量和系统性能按需扩展,弹性部署。

2)应用服务层负责应用逻辑的处理,以Java和.net平台为主,集群中各节点基于对等结构,运行状态独立,任何一个节点出现问题,能够通过前端负载均衡集群及时判断和隔离,硬件层面全部采用X86服务器,2014年以来新购设备全部实现了自主可控,基于计算虚拟化实现资源使用的弹性伸缩。

3)数据服务层负责数据的存取服务,按类型总体分为联机事务处理(OLTP)和联机分析处理(OLAP)两个领域。

OLTP领域一般采用成熟的厂商产品,保持2-3家形成一定竞争,降低集中度风险。对于大业务量的OLTP场景,采用读写分离、联机与批量分离设计,或者按照一定的维度对数据库进行拆分,如网银系统,日均交易量已经达到上亿笔,单数据库处理起来压力非常大,按照客户等维度拆分成多个数据库,实现了数据库的堆叠和横向扩展,单个数据库异常对全局无影响或者影响极为有限。

图2:分布式数据库架构

随着X86服务器可靠性和处理能力提升,以及集群数据库技术的成熟,农业银行加大了X86服务器在数据库领域的使用力度,2014年,全国集中的信贷系统数据库从高端小型机迁移到国产X86服务器,日均交易量达3000万笔。在新一代银行卡受理环境系统建设中,全面采用X86服务器构建集群数据库计算环境,根据业务特点,进行针对性的设计,保障了数据库单点失效后的业务连续性。对于业务量不是特别大的场景,利用虚拟化技术,构建集中部署、有效隔离、弹性伸缩的数据库资源池,为系统整合提供了支撑。

OLAP领域,农业银行较早地实现了分布式数据库集群架构,2011年,以审计三期系统建设为契机,基于分布式数据库集群,采用几台X86服务器,实现了全行审计数据的大集中,管理数据达30TB以上,满足了上千审计人员的使用。基于此,将分析型系统的数据库部署架构全部统一到X86集群上。2013年开始,农业银行积极与国内主流厂商开展合作,攻克多个技术难点,构建了分布式的MPP集群数据库,目前最大的集群达到56节点,所管理的数据1.5PB,日作业量达40000以上。在业务逻辑相对简单或者非结构化领域,采用Hadoop架构满足数据分析需求,2013年底,核心系统明细查询业务迁移到Hadoop平台,满足了广大客户明细查询需求。

4)存储服务层

存储层主要是完成数据的存储、备份,农业银行主要使用的存储分为SAN和NAS两类,通过LVM镜像、存储复制、虚拟化等技术实现存储的高可用。在品牌方面保持3家左右的竞争,近年来随着国产自主可控产品的日益成熟,农业银行在国产SAN、NAS存储方面应用日益广泛。此外,基于服务器、万兆网络、固态盘和软件定义的分布式存储技术逐步成熟,农业银行也对其进行了研究和试点。

2、分布式架构与运维管理

分布式架构降低了单个节点对基础软硬件的可靠性、可用性依赖,通过架构来保障系统的整体可用性。但随着分布式架构、虚拟化等技术的实施,设备与系统数量快速增长,一个系统涉及的节点众多,为运维管理带来了较大的挑战。为此,农业银行在监管控系统建设方面做了大量工作,以提升运维管理的标准化、自动化水平。

一是在监控管理方面,大力推进基础架构与应用产品的集中监控管理,经过多年的建设,基本实现了计算、存储、网络等基础架构的7*24小时监控,对关键应用系统建立了端到端的实时监控,出现异常后,能够实现快速发现、快速定位、快速处置。

二是研发推广了自动化运维管理平台,实现了系统的批量部署、合规检查等功能。

三是研发推广了集中密码管理与行为审计系统,实现了密码集中管理、单点登录、行为审计。

四是基于ITIL流程平台,推广ISO20000等规范,统一了变更、事件、问题等管理流程。

三、未来展望

虽然农业银行近年来在分布式架构上做了一些研究和实践,但仍有许多提升空间。特别是农业银行正在建立两地三中心多活架构,以此为契机,将进一步提升分布式架构在多中心的应用。

一是主机平台上,深入研究业务特点和应用架构,将可以下移的应用和数据迁移到开放平台。进一步推广主机开放融合架构,扩大查询交易迁移范围,从核心系统业务类型来看,查询类交易占比达70%左右,如果能将大部分查询类交易移植到融合架构上,效果将更为显著。另外,以同城中心建设为契机,实现核心系统的同城双活部署,确保极端情况下的数据零丢失和业务连续运行。

二是开放平台上,通过对集群技术、分布式数据库、分布式存储等技术的深入应用,结合业务特点对应用进行精心设计,以同城和异地灾备中心建设为契机,将业务合理分布到多个中心,构建多活架构,进一步提升系统的健壮性和应急处置能力。

三是运维管理上,加强开发与运维的融合,持续优化完善现有的监管控平台,加强流程平台与自动化平台的融合,进一步提升端到端的运维管理标准化、自动化水平,提升问题发现、定位、处置能力。

总结

综上所述,分布式架构具有更好的可扩展性,对基础软硬件的可靠性、可用性依赖度更低,可以采用更加开放、廉价的产品构建。但我们也要看到其给应用设计、研发、运维管理所带来的挑战。总之,技术是为业务服务的,无论是集中式架构还是分布式架构,各有优缺点,我们需要根据不同的应用场景,选择合适的技术架构。此外,银行与互联网企业在信息系统建设上,无论是业务类型、风险容忍度、监管要求上,还是技术架构和文化机制上,有着较大的差异。确保客户资金安全和生产运行稳定,是银行信息化建设的首要原则,在分布式架构应用当中,要结合技术可控、风险可控、成本可控综合考量,要本着实事求是、稳妥前行的原则逐步推进。

【预告】 首届中国人工智能大会(CCAI 2015)将于7月26-27日在北京友谊宾馆召开。机器学习与模式识别、大数据的机遇与挑战、人工智能与认知科学、智能机器人四个主题专家云集。人工智能产品库将同步上线,预约咨询:QQ:1192936057。欢迎关注。

时间: 2024-10-10 04:30:12

张升:农业银行的分布式架构应用实践与展望的相关文章

Windows平台分布式架构实践 - 负载均衡(下)

概述 我们在上一篇Windows平台分布式架构实践 - 负载均衡中讨论了Windows平台下通过NLB(Network Load Balancer) 来实现网站的负载均衡,并且通过压力测试演示了它的效果,可以说还是非常的理想的.同时我们也收集到了不少的问题,比如说如何在这种分布式的架构下使用Session,NLB中有一台服务器挂掉了会导致对外暴露的地址无法访问,如果实现服务器之间的同步,如果更好的进行热修复等等,还有我们在上一篇中也提到了NLB所提供的功能是非常简单的,为了回答我们前面提到的问题

分布式架构下的会话追踪实践【基于Cookie和Redis实现】

分布式架构下的会话追踪实践[基于Cookie和Redis实现] 博客分类: NoSQL/Redis/MongoDB session共享rediscookie分布式架构session 在单台Tomcat应用中,通常使用session保存用户的会话数据.面对高并发的场景,一台Tomcat难当大任,通常我们会使用Nginx在前端拦截用户请求,转发给后端的Tomcat服务器群组.在集群环境下,怎么才能做到session数据在多台Tomcat之间的共享呢? 当然我们可以在多台Tomcat之间进行sessi

jeesz分布式架构之 mycat实现mysql读写分离实践

版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] mycat是一个的数据库中间件,基于阿里开源的cobar产品而研发,由几个有志之士的牛人共同完成并开源.提供高可用性数据分片集群,自动故障切换,高可用性 ,支持读写分离,支持MySQL双主多从,以及一主多从的模式 ,支持全局表,数据自动分片到多个节点,用于高效表关联查询 ,支持独有的基于E-R 关系的分片策略,实现了高效的表关联查询多平台支持,部署和实施简单. 今天来实践下用mycat实现mysql的读写分离,1.配置mys

大型电商分布式网站架构设计与实践,Java分布式架构,Java事务分布式高并发-视频教程

15套java架构师.集群.高可用.高可扩 展.高性能.高并发.性能优化.Spring boot.Redis.ActiveMQ.Nginx.Mycat.Netty.Jvm大型分布 式项目实战视频教程 视频课程包含: 高级Java架构师包含:Spring boot.Spring  cloud.Dubbo.Redis.ActiveMQ.Nginx.Mycat. Spring.MongoDB.ZeroMQ.Git.Nosql.Jvm.Mecached.Netty.Nio.Mina.性能调优.高并发.

4张图让你看懂分布式架构从硬件到软件

对于分布式的架构相对很多开发者都是个高大上的项目,其实只要看得懂图精通tcp通信.精通磁盘管理.精通内存管理.精通多线程与并行处理,精通事务(其实事务就是基于tcp通信层所扩展而来的MQ之类的一种IO消息模式而与),当然自己开发一套分布式架构上述的基本技术层面是必须比较精通的才能做到,涉及存储文件仓库或数据库仓库镜像技术其实也是基于tcp通信作为基础,没啥高大上的东西.

大数据时代数据库-云HBase架构&生态&实践

摘要: 2018第九届中国数据库技术大会,阿里云高级技术专家.架构师封神(曹龙)带来题为大数据时代数据库-云HBase架构&生态&实践的演讲.主要内容有三个方面:首先介绍了业务挑战带来的架构演进,其次分析了ApsaraDB HBase及生态,最后分享了大数据数据库的实际案例. 2018第九届中国数据库技术大会,阿里云高级技术专家.架构师封神(曹龙)带来题为大数据时代数据库-云HBase架构&生态&实践的演讲.主要内容有三个方面:首先介绍了业务挑战带来的架构演进,其次分析了A

阿里P8架构师告诉你什么是分布式架构

一.前言 我们都知道,当今无论在BAT这样的大公司,还是各种各样的小公司,甚至是传统行业刚转互联网的企业都开始使用分布式架构,那么什么叫分布式架构呢?分布式架构有什么好处呢?分布式架构经过了怎样的发展呢?是哪家企业开启了分布式架构的时代呢?读完本文,你就会得到这些答案,下面让我们一起来开启分布式概述的奇妙之旅吧! 二.分布式架构的发展历史 1946年2.14日,那是一个浪漫的情人节 , 世界上第一台电子数字计算机在美国宾夕法尼亚大学诞生了,她的名字叫ENIAC.这台计算机占地170平米.重达 3

一文读懂分布式架构知识体系(内含超全核心知识大图)

作者 | 晓土  阿里巴巴高级工程师 姊妹篇阅读推荐:<云原生时代,分布式系统设计必备知识图谱(内含22个知识点)> 导读:本文力求从分布式基础理论.架构设计模式.工程应用.部署运维.业界方案这几大方面,介绍基于 MSA(微服务架构)的分布式知识体系大纲,从而对 SOA 到 MSA 进化有着立体的认识:从概念上和工具应用上更近一步了解微服务分布式的本质,身临其境的感受如何搭建全套微服务架构的过程. 关注“阿里巴巴云原生”公众号,回复“分布”,即可下载分布式系统及其知识体系清晰大图! 随着移动互

windows+nginx+iis+redis+Task.MainForm构建分布式架构 之 (nginx+iis构建服务集群)

本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,由标题就能看出此内容不是一篇分享文章能说完的,所以我打算分几篇分享文章来讲解,一步一步实现分布式架构:下面将先给出整个架构的核心节点简介,希望各位多多点赞: . 架构设计图展示 . nginx+iis构建服务集群 . redis存储分布式共享的session及共享session运作流程 . redis主从配置及Sentinel管理多个Redis集群 . 定时框架Task.MainForm提