首页 » 行业声音

【中国邮政储蓄银行信息科技部总经理 李朝晖】邮储特色的分布式系统架构模式

时间: 2017-08-09 13:49     浏览次数:109    来源:未知

文 \ 中国邮政储蓄银行

信息科技部总经理  李朝晖


一直以来,商业银行主要基于大中型主机、以集中式架构构建其业务系统,这种架构具有技术成熟、系统可靠、应用实现相对简单等优点,同时也存在核心技术由国外供应商所垄断、系统投入成本高等缺点。随着开放平台处理能力的大幅提升、高速网络技术的日益成熟,以及云计算、分布式存储等新技术的快速发展和应用,基于开放平台、采用分布式架构建设业务系统,由于具有成本低、易扩展、自主可控等优势,也成为商业银行架构转型的趋势。

 

分布式业务系统建设历程
 

中国邮政储蓄银行(以下简称“邮储银行”)是在改革原有邮政储蓄管理体制基础上设立的一家大型国有商业银行。2007年邮储银行成立后,业务应用的开发延续了之前基于开放式平台的技术路线。随着商业银行业务的全面开展、业务量的快速增长,以及应用系统全国集中建设模式的不断推进,如何构建满足大业务量、高并发量、高可用性、可扩展性、灵活开放的银行业务系统,成为邮储银行面临的课题。针对我行信息化历史包袱小的实际情况,经过充分论证和实践验证,积极探索和经验总结,邮储银行以开放式平台为基础,采用分布式架构,使用小型机并大规模应用PC服务器组建集群等技术,形成了独具邮储银行特色的分布式系统架构模式。

 

经过10年的发展,邮储银行已建设并在线运行100多个应用系统,这些系统全部采用分布式架构建设,其中除部分涉及账务处理的应用基于小型机分布式集群构建外,超过80%的应用系统基于PC服务器集群构建。截至2016年底,邮储银行基于分布式的业务系统支撑了全行近4万个网点、5亿多客户的稳定运营,日峰值交易量超过1.5亿笔,较好地满足了业务快速发展的需要。

 

另外,在云计算技术应用方面,邮储银行基于OpenStack开放云平台技术构建私有云,先后在渠道管理平台、互联网网贷、移动展业等生产系统进行部署和应用。目前,云平台交易占比已超过全行交易量的30%。通过云计算技术的应用,极大地提高了资源利用率,提升了系统资源扩展性,有效应对了突发性的交易高峰压力。

 

分布式业务系统架构模式
 

相对于集中式架构,分布式业务系统具有功能分散、交互关系复杂、处理能力不平衡等特点,因此对系统的总体性能提出了更高要求。同时,由于采用分布式架构,必然面临CAP理论的约束,即一致性、可用性、容错性三者不可兼得,但作为银行业务应用,三者又都不能忽视,如何取舍和补偿以满足业务要求,也是分布式业务系统所面临的严峻问题。邮储银行在信息化建设过程中,为解决生产系统中存在的性能瓶颈,提高系统高可用性,满足一致性、容错性要求,摸索了一系列行之有效的方法和措施,并在应用过程中不断完善。

 

1.性能保障措施

在保证系统性能方面,通过分离处理功能、分散处理压力、优化数据结构、扩展处理能力等措施,有针对性地提升分布式业务系统的总体性能。

 

分离处理功能是在分布式业务系统中,将与业务处理过程耦合度较低的处理功能进行分离,减少单位硬件平台上的处理压力,保障业务处理可以获取更多的处理资源,从而提升系统的整体处理性能。其中,包括依据性能影响分离和依据处理功能独立性分离两类。依据性能影响分离主要是针对性能影响的需要进行处理上的分离,如个人核心系统划分卡子系统、折子系统、参数管理子系统、日终处理子系统等;依据处理功能独立性分离是将一些功能独立、具备共享价值功能模块进行分离,如将个人核心系统的尾箱管理、现金与凭证管理、会计核算管理等功能,分离到独立的系统中。

 

分散处理压力是在应用设计中充分考虑应用架构对压力分散的助力,尽量杜绝跨数据库事务处理,通过对应用进行有针对性分离设计,以分散方式进行部署,充分发挥小型机集群、PC服务器集群特点,分散系统处理压力。其中应用设计上的分离包含两类,一类是处理流程的分离,即分离出性能瓶颈过程,降低与其他处理过程的耦合度,以提高其并行处理能力;另一类是处理功能的分离,减少单位硬件平台上的处理压力,充分利用硬件平台及系统软件的横向扩展能力,扩展系统整体处理能力。

 

优化数据结构主要是通过简化数据结构、删除冗余结构,实现数据存储的优化,提升整体处理性能。对数据结构进行简化,如流水日志存储的简化、流水内容的拆分和精简、字段长度的精简等,以及对冗余数据结构的适当删除,如对各类登记簿、流水日志冗余项的删除,提升数据存储及使用性能。简化数据存储的同时,还需兼顾处理性能设计的其他方面,如有冗余数据存储要求的处理过程需综合、全局地考虑其数据结构。

 

应用软件处理能力的扩展包括计算资源的扩展和应用软件处理能力的扩展。计算资源的扩展是基础,包括主机、存储、网络设施等资源;应用软件处理能力的扩展主要关注如何使应用架构可以平滑适应计算资源的扩展,并能充分利用扩展的处理资源来分担系统处理压力,进而达到整体处理能力扩展的目的。

 

2.可用性保障措施

高可用性是邮储银行分布式业务系统重点保证的另一属性,主要包括应用负载均衡、系统故障隔离、系统流量控制、数据分片等措施。

 

其中的应用负载均衡设计不同于普通集群架构下采用专用设备或中间件实现交易请求负载分发,而是探索一条相对独立的应用层实现交易路由控制的管理方法。具体实现机制是,应用层通过管理节点状态、交易处理情况等信息,采用轮询负载分发策略,并设置负载因子,由应用软件实现联机交易在系统内部各个子系统集群节点间的分发处理,达到节点间交易处理的均衡分派。

 

系统故障隔离机制可以在应用软件系统发生故障的时候,将故障造成的危害限制在最小范围内。通过应用软件设计中考虑应用服务、应用服务框架的灵活部署,从服务、交易、子系统到渠道层面设置响应的运行开关,通过对开关的控制,可以中止指定应用的运行,实现多角度、多层次的故障隔离。同时,通过对响应服务的启停,也支持对指定端口服务请求监听的停止。

 

系统流量控制基于分布式业务系统的逻辑架构,依据系统、子系统、渠道等不同层面的交易流量、交易状态和确定的控制策略、控制规则,对系统实施控制。基于应用软件的逻辑分层结构,在服务请求的统一受理端及处理流程中的关键环节中设计响应的流量控制机制,结合相关的设置,将系统流量控制中认为需要拒绝的服务请求直接拒绝,以达到逐层进行流量控制的目的,同时,也保障由于负载过重,新的自动启动的应用服务可以保持一定的处理流量。

 

3.一致性保障措施

在一致性保障方面,邮储银行的分布式系统主要包含补偿机制、SAF机制、对账与差错处理等措施。

 

补偿机制是对异常交易带来的数据不一致进行交易补偿。补偿机制与前端操作及提示相互配合,首先保障给出正确的收款或不付款提示,以便操作员进行正确的现金实物操作,避免资金风险。从实践的效果上,补偿机制的效果远远好于两阶段提交的事务机制。

 

SAF机制对系统间的通讯异常或处理异常提供交易保障。其中,业务系统支持渠道层系统发来的SAF处理请求,并负责在产品服务流涉及的所有子系统上完成SAF请求的处理。具体策略包括:在交易过程中通过SAF处理机制尽量保证交易的成功;定期针对未完成的SAF处理,自动发起SAF处理;每日日间营业结束后,针对未完成的SAF处理,自动发起SAF处理。

 

对补偿机制、SAF机制仍无法解决的一致性问题,则通过对账和差错处理进行进一步补偿处理。
 

分布式业务系统的发展思路
 

近年来,随着业务量的持续增长,业务需求响应敏捷性要求的不断提高,对于分布式系统建设也提出了更高要求。同时,人民银行副行长范一飞在2017年人行科技工作会上提出“加快架构转型,打造数字央行”,并指出要坚定不移推动分布式转型。为此,我们将深入推进分布式业务系统建设,通过引入分布式服务、微服务等新技术框架,借鉴互联网企业在分布式应用构建中的成功经验,结合商业银行业务复杂性、数据强一致性等特点,深化云计算技术应用、扩展国产和开源软件使用等措施,进一步提升银行分布式业务系统的能力。

 

1.建立分布式服务集成架构

分布式服务框架通常提供高性能的通讯机制、分布式的服务寻址路由、统一的SOA治理,相对集中式服务总线机制,分散了路由失效的风险,具备更灵活的动态扩展能力。针对商业银行分布式业务系统环境,通过在分布式服务框架的基础上,完善交易一致性保障机制、扩展服务适配功能,构建企业级集成架构,可以在规范全行服务治理的基础上,实现分布式业务系统的能力提升。邮储银行已就分布式服务集成架构进行了研究和实际验证,并实现了初步的应用,接下来将进一步构建企业级集成架构。

 

2.建设基于微服务的业务系统

微服务通过多个可以独立部署、独立扩展的服务组成大型复杂软件应用,使每个微服务仅关注于实现一个小的业务能力,从而较好地支持敏捷开发和复杂企业应用交付。就其本质来说就是将大型应用拆分为相对独立的微服务,采用这一架构模式,对于商业银行的分布式业务系统,同样可以带来更好的松耦合、高内聚特性。邮储银行的分布式业务系统已一定程度上融合了微服务的理念,在系统应用层面进行了应用的拆分,后续将通过进一步实现应用的微服务化,建立完整意义上的微服务系统,提升总体敏捷性。

 

3.进一步深化云计算技术应用

目前,邮储银行依托云技术搭建了开发测试环境,并且在渠道层、渠道整合层等生产系统中实现了云计算技术的应用。云计算技术不仅提高了设备利用率、降低了成本,而且增加了系统的弹性,可根据业务的需要灵活地配置,有效地支撑突发性的业务高峰。为进一步发挥云计算技术的优势,我们将深化应用,逐步实现核心业务系统上云,拓展PaaS、SaaS层应用,进一步构建开发测试云、培训云、生产前置云、核心系统云、管理云等六大云平台。

 

4.进一步拓展国产和开源软件的应用

目前,邮储银行已在PC服务器上全面使用国产Linux操作系统,并且在应用系统中广泛使用了PostgreSQL、Hadoop、Redis、RabbitMQ等开源数据库、中间件,同时将多种开源软件及框架融合到全行的应用开发平台中,这些软件的应用降低了总体投入,有效支持了相关应用的高效、稳定运行,同时也提升了科技的自主可控能力。未来,我们不仅在满足单一业务领域需求的应用系统上延续这一路线,还将在流程整合平台、组合交易平台等重要的企业级平台上深入应用开源软件,进一步提升银行的自主可控能力。

 

5.构建互联网金融平台

互联网应用是分布式架构相对成熟的应用领域,也是许多商业银行进行分布式架构转型的切入领域。为了更好地应对互联网金融日新月异的发展变化,邮储银行于2016年开展了互联网金融专题规划,从战略定位、业务发展、运营体系、实施策略与路径等方面对邮储银行互联网金融领域发展进行了全面描绘。通过这一规划的落地实施,我们将基于分布式架构模式,构建满足互联网金融业务需要的核心应用,推进渠道协同,打造互联网金融平台,从“产业互联网”和“消费互联网”两条主线出发,建设互联网金融生态体系,不断向产业与金融一体化发展的智慧银行迈进。