信息来源:
一、分布式技术在邮储银行的大致发展情况
分布式技术的兴起有两个主要推动因素:
第一是行业及跨界的推动,这里更多是指跨界推动。跨界推动本质上就是阿里和腾讯通过支付和社交软件,依托双十一、红包等场景爆发全面进入金融领域业务。因为交易量的爆发,所以对应到我们行快捷支付类交易量的增长速度是比较高的,每年都超过了30%。应对这种增速,我们在系统方面的技术准备情况、压测情况,都需要很多工作。
同时金融科技公司快速产品甚至产品体系的更新,也影响到银行业务和产品的交付能力,这也需要新技术去支撑;因为诸多场景化金融业务的衍生,监管机构近几年管理办法下发比较多,最典型的是“一二三类账户体系”,推动了传统一类线下业务与二三类线上业务场景分离,这也需要系统进行适配。
第二方面是基础架构驱动。邮储银行成立时间相对比较晚,我们直接使用了小型机进行核心系统建设,因为基础架构特点,推动了我们开放平台下系统建设的技术研究。
虽然当时不像现在分布式技术应用有这么多优秀的框架,但我们核心系统的设计思想是基于分布式和面向服务的,我们系统和数据库设计已经按业务域甚至重要交易场景进行了拆分,这些设计都保证了一段时期内,交易量高速增长下的稳定运行。
还有是核心系统的内部实现全面服务化,从原子服务到业务交易由不同的层级服务进行组合而成,内部服务调用、路由、流量控制、故障隔离都是基于服务化的分布式的思想进行设计。
在使用小型机建设核心类系统的同时,其他系统采用PC服务器进行部署的,而银行科技近几年技术发展也很快,尤其是云平台建设方面,在建设完核心系统回来一看很多系统都要求云化。这需要对系统整体架构进行重新设计,甚至对全行IT架构进行转型。
在云平台基础上,又发展出了容器技术,越来越多的系统有容器化部署的需求,但也需要看具体的应用情况,这涉及到怎么进行更细维度的水平拆分,这一块儿的情况后续会拿具体系统试点介绍,我们也有专门的团队、研发工具、研发平台支撑系统容器化的部署。
还有就是,云平台基础架构和爆发场景交易应对更依赖PC服务器,这直接影响传统IT设备厂商在国内的销量和产品升级,这种市场的不确定因素(比如说运维团队的流失、产品线退出)都对小型机设备系统运维、设备采购带来影响,也驱使技术团队向分布式开放平台转移。可以说,跨界发展和基础架构演进推动了分布式技术在邮储银行的不断发展。
对于分布式技术如何落地我们也进行了思考,技术的核心要求是“分布”,但分布是一种方法、手段,从开发技术、系统结构上进行分布。但其目的和目标是聚合融合,包括开发过程是持续集成交付的融合过程,业务数据在进行整合后的应用与展现才有价值,分布式系统的运行最终达到的是客户体验的完全融合等等,这也是从方法、手段到目的的辩证思考。所以说,分布式是方法和手段,但融合是目标!
根据这种思想结合业界已有的经验和方法,我们针对分布式技术进行了建模,根据经典的扩展立方体模型(讨论XYZ轴变化),我们结合到分布式的系统设计,X轴的扩展是系统整体资源的复制,Y轴是功能和服务的拆分扩展,目前行业内多数系统还是位于Y轴服务化拆分。Z轴是特征数据拆分,如针对账户不同客群、不同时间维度的水平拆分,进行单元化部署进一步提升系统扩展性。整体来看,邮储目前还是从Y轴向Z轴演进过程中,当然未来是否有其他的第四维度是要看新技术、新模式的演进发展。
结合以上思考,邮储银行提出了自己的分布式技术应用的目标导向,首先是层次化的伸缩性,包括基础资源的快速分配和回收以及整体的集中管理,开发平台、开发组件的灵活复用,对高并发应用场景上功能单元的快速扩充,这是从底层基础设施、开发环境到应用的多层次化伸缩性的支持。
同时,我们也抽离了技术平台,建设了C、JAVA、移动端、大数据等开发平台,避免各个项目组重复研究工作。还把通用的技术进行抽离,形成了数据总线、企业总线以及平台化的研发模式,形成了平台化技术+开发平台结合的技术思路。还有是系统进行了深度服务化的设计,内部功能通过服务进行定义(通过服务编排结合服务治理对外提供服务)。
此外,通过分布式技术的应用力争达到双可控的效果,一方面是技术的可控,引入的开源技术是需要研发团队不断进行吸收转化;
另一方面可以实现资源设备的成本压降,当然成本可压降也有两面性:一方面是显性设备投入可控成本;但另一方面是隐性成本(人员投入成本)可能相应增加,不过这种成本对银行来讲是有资产的积淀、沉淀,有益未来发展的。在分布式技术应用下会有适度灵活性的标准,但要避免过度设计,强调适度的灵活。
二、分布式技术在邮储银行的应用实践情况
结合分布式技术应用的不断深入,邮储银行的IT规划也随之演进发展。2009年IT规划主要是按业务功能、业务系统进行拆分,比如核心账户业务、客户信息平台、会计平台等。
2014年IT规划中进行了平台级的抽离,包括企业总线、数据总线都作为平台级应用横向支撑,同时也向服务化和组件化演进。现在规划将二三类账户归入互联网核心建设,二三类账户的业务全部放在分布式云平台运行,形成线上线下双核心IT架构。
简要介绍一下邮储银行分布式技术总体情况,我们目前以分布式服务、分布式消息、分布式日志、分布式文件等开源技术框架为主,结合数据库的分布式集群模式,融入容器化技术的部署能力,来实现各类业务场景的技术实现。辅以还在持续建设的服务的治理体系、发现机制、服务管理等内容形成邮储银行的分布式技术基本体系。
企业总线负责统一服务接口管理和服务组合处理,使各系统专注自身业务,清晰了系统间架构。系统目前在北京中心和合肥中心应用双活运行。系统使用Dubbo负责各子系统间通信,使用了Spring Cloud的注册、流量监控、负载控制、API网关等组件,我们自己设计了adapter模块,负责兼容已有系统接口。
再介绍一下理财类的业务系统,目前正在进行建设,系统的目标是支持异地数据级的双活,目前系统是同城双中心应用级双活运行。为了实现异地数据级双活,我们将数据库更换为了PG,新的设计采用同城中心同步流复制,异地是异步流复制实现数据的一主多备。
同时,系统结合自己的业务特点进行了水平拆分,根据对接不同理财公司、保险公司设计交易场景,同一个交易在单中心内完成不会发生跨中心的交易互访,以实现系统的整体双活。
还有是我们正在建设的营销类系统,基于前面提到的开发平台,系统融合了微服务的能力,在系统内部的集成服务、流程服务以及数据服务,都使用了微服务进行设计实现,通过API网关结合服务路由实现服务注册、服务发现以及服务转发,消息中心经ESB与现有系统进行交互,同时基于日志组件进行分布式日志分析。
因为是新建系统,研发中心团队结合了DevOps模式进行实施,包括持续集成和持续部署,持续集成目前无论在工具还是人员能力相对成熟度较高,持续交付的话在测试方面还是有一定的压力,现有测试团队规模不大,个人感觉在自动化测试验收测试方面还需不断提升持续发布的能力。
一致性保证方面,我们主要采用的补偿交易方式。当时情况下,结合邮储核心系统交易体量,补偿交易方式在性能上是有保证的,如果交易某一环节发生了超时或失败的情况系统会通过补偿、重发和差错对账等方式保证系统强一致性。
分布式技术的应用离不开云平台,目前我们在云平台上分不同区域,像互联网金融云上运行着手机银行、自助银行、互联网网贷等系统,中邮消费子公司系统在核心业务云平台上,还有大数据云、开发测试云等等,全国行云交易量占比35%以上,通过基础设施云平台的支持对分布式应用提供了比较好的支持。
通过分布式技术的应用,我们系统建设也取得一定效果,今年双11快捷支付的日交易量突破了1亿笔,我们账务系统在接下来的春节高峰日交易峰值预计超2亿,而且支撑着近几年30%以上的交易量平均增幅。此外,近几年通过分布式技术应用累计节省投资达20亿元。