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

2020-06-29 00:00:00 架构 分布式 节点 业务 农业银行

转自:

分布式架构在农业银行的应用实践与展望 - 专业数据库服务、数据库一体机、SQL审核产品、数据恢复 - 云和恩墨www.enmotech.com


一般可以将架构分为两类,一类是以垂直扩展(Scale up)为主的架构,如通过增加单机配置,或者将中低端设备升级成为高端设备,用以提升系统的处理能力,称之为集中式架构,早期的哑终端主机架构是典型代表。

概述

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

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

(二)优缺点分析
1、集中式架构的优缺点
集中式架构系统底层一般采用成熟的商业基础软件构建,这种架构的优点是成熟稳定,可用性、可靠性好,银行的技术人员可专注于业务功能开发,无需过多关注底层技术的实现。数据大集中后,农业银行核心业务系统交易成功率和业务连续性得到了进一步提升,产品创新与推广更为高效,业务量年均增长率近30%,至2016年底,日均交易量在3.2亿笔左右,峰值交易量突破4.5亿笔/日,业务级交易峰值突破13000tps。自集中以来,虽然业务产品和业务量均大幅增长,但底层技术架构基本保持不变,运维更为集中统一,有力地保障了业务快速发展和生产的平稳运行。
缺点方面,一是风险度集中,虽然产品比较成熟稳定,但一旦出现软件或者逻辑上的极端异常,也有可能导致整个集群不可用,从而引发全局性停业。二是我国人口基数大,随着经济的快速发展,业务量在全球处于领先,许多新的问题、产品缺陷将有可能首先在我国触发。三是成本高昂,集中式架构对基础软硬件产品的可靠性、可用性依赖度高,这些技术产品基本被极少数公司所垄断,缺乏有力的竞争者,IT成本居高不下。四是核心技术受制于人,供应链风险较大。
2、分布式架构的优缺点
分布式架构按照一定的维度将系统进行拆分,通过一定的负载均衡机制,将业务分摊到多个节点上处理。这种架构的优点是可以采用更开放的架构,各节点松耦合,对底层产品的可靠性、可用性依赖降低,可以基于廉价的硬件和开源软件构建,受单一厂商的制约较少,可以引入多家厂商竞争,成本更为低廉,可用性、可扩展性更好。尤其是随着应用规模的扩大,边际成本将更低。
这种架构的难点是要做好各节点的协同工作,尤其是要处理好数据的一致性、完整性问题。根据CAP理论[3],在可用性、分区性与一致性三者之间,同时只能满足两个,如果要满足可用性(A)、分区性(P),就需要牺牲一致性(C),业界的一般做法主要是根据业务特点,通过较为复杂的应用设计,放弃实时一致性、保障终一致性来解决该问题,分布式架构增加了应用设计和研发的复杂度。此外,随着节点数的增加和分布部署,对运维管理、异常处置也提出了更高的要求。

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

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

(一)主机领域
以新一代核心银行系统建设为契机,农业银行对主机的架构进行了优化。一是将交易路由层分离出来,实现交易的统一接入和负载均衡调度,减少了对主机的依赖,降低了资源消耗。二是采用读写分离设计,构建主机开放融合架构,将查询类交易的应用逻辑处理下移到国产X86服务器上,通过DRDA方式访问主机数据库,从试点情况来看,交易下移后可比下移前可节省60%左右的主机计算资源消耗,效果明显。三是将明细数据下移到开放平台上,基于Hadoop架构实现明细业务查询。四是将可以下移的业务系统整体下移到开放平台,减少主机资源使用。

(二)开放领域
数据大集中之后,农业银行大力推进集群架构、虚拟化技术的应用,采用Linux替代UNIX,用X86服务器替代小型机,引入集群数据库和MPP数据库,探索存储虚拟化应用,构建更加开放的分布式架构,同时加强监管控等运维平台研发,降低分布式架构所带来的运维压力,提升系统运维标准化、自动化水平。
1、农业银行开放平台分布式架构
下图列出了农业银行目前开放平台的典型架构,从应用接入层、应用服务层到数据服务层和存储服务层,均实现了分布式部署。


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

(2)应用服务层负责应用逻辑的处理,以Java和.net平台为主,集群中各节点基于对等结构,运行状态独立,任何一个节点出现问题,能够通过前端负载均衡集群及时判断和隔离,硬件层面全部采用X86服务器,基于计算虚拟化实现资源使用的弹性伸缩。
(3)数据服务层负责数据的存取服务,按类型总体分为联机事务处理(OLTP)和联机分析处理(OLAP)两个领域。

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


随着X86服务器可靠性和处理能力提升,以及集群数据库技术的成熟,农业银行加大了X86服务器在数据库领域的使用力度,2014年,集中的信贷系统数据库从高端小型机迁移到国产X86服务器,日均交易量达3000万笔。在新一代银行卡受理环境系统建设中,全面采用X86服务器构建集群数据库计算环境,根据业务特点,进行针对性的设计,保障了数据库单点失效后的业务连续性。对于业务量不是特别大的场景,利用虚拟化技术,构建集中部署、有效隔离、弹性伸缩的数据库资源池,为系统整合提供了支撑。
OLAP领域,农业银行较早地实现了分布式数据库集群架构,2011年,以审计三期系统建设为契机,基于分布式数据库集群,采用4台X86服务器,实现了全行审计数据的大集中,管理数据达30TB以上,满足了上千审计人员的使用。基于此,将分析型系统的数据库部署架构全部统一到X86集群上。2013年开始,农业银行积极与国内主流厂商开展合作,攻克多个技术难点,构建了分布式的MPP集群数据库,目前大的集群达到56节点,所管理的数据达2PB,日作业量达40000以上。在业务逻辑相对简单或者非结构化领域,采用Hadoop架构满足数据分析需求,2013年底,核心系统明细查询业务迁移到Hadoop平台,满足了广大客户明细查询需求。
(4)存储服务层
存储层主要是完成数据的存储、备份,农业银行主要使用的存储分为SAN和NAS两类,通过LVM镜像、存储复制、虚拟化等技术实现存储的高可用。在品牌方面保持3家左右的竞争,近年来随着国产自主可控产品的日益成熟,农业银行在国产SAN、NAS存储方面应用日益广泛。此外,基于服务器、万兆网络、固态盘和软件定义的分布式存储技术逐步成熟,农业银行也对其进行了研究和试点。

分布式架构与运维管理
分布式架构降低了单个节点对基础软硬件的可靠性、可用性依赖,通过架构来保障系统的整体可用性。但随着分布式架构、虚拟化等技术的实施,设备与系统数量快速增长,一个系统涉及的节点众多,为运维管理带来了较大的挑战。为此,农业银行在监管控系统建设方面做了大量工作,以提升运维管理的标准化、自动化水平。
一是在监控管理方面,大力推进基础架构与应用产品的集中监控管理,经过多年的建设,基本实现了计算、存储、网络等基础架构的7*24小时监控,对关键应用系统建立了端到端的实时监控,出现异常后,能够实现快速发现、快速定位、快速处置。二是研发推广了自动化运维管理平台,实现了系统的批量部署、合规检查等功能。三是研发推广了用户统一管理、行为审计等系统,实现了密码集中管理、单点登录、行为审计。四是基于ITIL流程平台,推广ISO20000等规范,统一了变更、事件、问题等管理流程。

相关文章