金电公司陈波:分布式架构关键设计与实践探索
2017/1/12 15:13:34

文 / 中国金融电子化公司董事长 陈波

随着国家“互联网+”战略不断深入,更多智能化的金融服务应用而生。同时,新技术与金融业务融合创新发展带来业务量高并发、业务需求频繁变更带来的风险、数据库运行压力大、技术选择受制于人等情况,对金融机构核心业务系统带来挑战。现有金融基础设施也面临技术升级、系统整合和数据综合利用等难题。

与此同时,分布式处理架构在系统运行风险控制、可扩展性、敏捷开发、灰度发布等方面显示了优势,并随着不断应用、优化和完善,技术逐步成熟。选择分布式架构,采用云计算和分布式处理架构构建新一代的金融核心业务系统逐步成为转型的选择,也是金融业信息化发展的趋势。

分布式架构的关键设计

分布式架构作为传统的主机集中式架构替代技术之一,将是开发构建人民银行业务系统的有效选择。在进行分布式架构开发、设计、管理时,应注意把握好以下四个方面。

1. 系统分层解耦,实现处理能力线性可扩展。为适应系统的弹性扩展,分布式架构设计时应尽量做到系统不同层次之间的解耦。一是应用层与服务层解耦。应用层“以用户为中心”,专注于用户体验与业务功能;服务层通过将系统专业化分工,采用服务化方式,提供“去中心化”的服务调用,并通过服务编排组合可快速满足多应用多前端(如个人电脑、手机、平板等)的功能实现。通过服务无状态化等手段,可实现服务快速扩展应对业务处理高峰。二是服务层与数据层解耦,通过分布式数据库访问中间件或数据库集群,实现数据库节点的动态可扩展。三是上层软件与底层基础设施解耦,通过应用架构的分布式设计,降低了对商用闭源服务器的依赖,可使用基于开放PC服务器的横向扩展方式满足高性能处理需求。

2. 数据分布设计,突破数据库单机能力瓶颈。分布式架构设计的核心是如何合理分布数据,以解决由于数据量巨大导致单机数据处理能力存在的性能瓶颈。在进行数据分布设计时,一是要进行数据切分,包括垂直切分和水平切分,可根据不同业务种类及数据相关性进行垂直切分,也可根据地区、时间、用户等维度进行水平切分。二是要进行数据冗余,为满足系统高性能处理需求,可采用读写分离等方式进行冗余,减轻核心交易业务处理压力;对于读操作,还可以根据不同的查询维度提供多份冗余副本。三是满足一致性要求,根据CAP 理论,对于共享数据系统,不可能一致性、可用性、分区容忍性三者同时满足,只能同时拥有三项中的两者。在分布式环境下,需要在可用性、数据一致性之间进行权衡。BASE 理论提供了在保证用户体验的前提下,向客户屏蔽短暂数据不一致,但确保数据最终一致性的理论指导。

3. 自动化容错处理,实现系统运行高可用。分布式架构基于PC 服务器,动辄采用数十台、上百台服务器甚至更多,节点间通信和节点故障概率较集中式架构增大,故障发生为常态,其容错处理和故障隔离至关重要。一是要进行健康检查,定期探测通信链路和服务节点的健康状况。二是通过负载均衡、压测、限流等保障服务的可用性。当发生故障时,可通过业务降级、服务熔断、故障隔离、回退等业务与技术相结合手段保障关键交易流程的可用性。三是对于基础设施,采用云计算技术,建立资源池,对基础设施进行统一管理、弹性供应,提升硬件故障时系统的高可用性。四是建立数据化运营体系,分布式架构下系统调用链路变长,需要对整个业务处理流程进行数字化跟踪,通过多层次、可视化、可量化的系统运行情况分析,持续优化性能瓶颈,保障系统稳定运行。

4. 敏捷开发管理,实现系统快速开发上线。分布式架构意味着将系统解耦为更多小模块,设计复杂性更高,容错性需要考虑得更加全面,采用传统软件开发管理模式必然导致项目复杂度明显上升。分布式架构下的开发管理应轻量化、敏捷化。一是采用小团队开发模式。传统大型应用系统采用几十人甚至上百人维护一个项目工程,源代码易冲突、协同成本高、项目发布周期长。分布式架构下应用模块的粒度被细分,采用小团队开发模式,广泛应用持续集成、自动化测试、自动发布等技术,应用开发、测试、发布更敏捷。二是向服务化开发模式转变。通过架构解耦、服务重用,提取并积累业务共享服务,可快速实现不确定性的、频繁变化的业务需求,业务支持更敏捷。三是开发运维一体化(DevOps)。强调从需求、开发、设计、测试、部署、运营的全过程管理,开发团队参与到应用系统运营、优化中,实时分析系统运行的健康状况,提高系统可用性与质量,运维响应更敏捷。

人民银行分布式架构转型研究与探索

当前,分布式架构转型已成为重要趋势。人民银行行领导指出,金融机构应主动探索系统架构转型,积极研究建立灵活、可延展性强、安全可控的分布式系统架构。人民银行承担“制定和执行货币政策, 维护金融稳定, 提供金融服务”三大职能,其应用系统安全关系国计民生,需在保障应用安全稳定运行的前提下,稳步推进应用系统向分布式架构转型。

1. 开展了分布式架构技术研究。以“人民银行新型技术架构”课题研究为契机,系统研究了云计算、大数据、分布式服务、分布式数据库、分布式缓存等技术;结合人民银行核算类、信息类等系统业务特点,提出了“分布式处理、统一管理、弹性扩展、快速联网接入”为主要特征的人民银行新型技术架构。该架构包含基础设施层、分布式中间件层、业务服务层和应用层,并通过开发管理平台实现敏捷化的全过程开发管理。

2. 初步提出了分布式架构转型策略。根据人民银行业务特点与技术发展现状,初步提出“分层分步分类,按业务特点稳步推进”的架构转型策略。基础设施层,通过引入云计算平台,选用成熟的商用云计算、大数据产品,实现基础设施层弹性可扩展,同时操作系统使用开源软件自行研发。中间件层,结合信息化项目,借助商用技术产品、开源技术开展分布式技术研发实践。业务服务层,根据央行业务的独特性,抽取分析公共业务服务,实现服务共享和业务服务化。根据应用系统特点,对于金融统计、征信、反洗钱、账户管理等联机分析处理(OLAP)系统,分布式基础产品或技术已相对成熟,可加快向分布式架构演进。对于会计核算等联机事务处理(OLTP)系统,因其交易量大、并发度高、可靠性要求高,需进一步研究分布式关键技术,通过自主研发或合作模式,有序推进架构迁移。应用层,按照系统全生命周期进行梳理,根据业务分类进行敏捷化开发和管理。此外,逐步建设数据应用服务中心,将各类业务数据收集并加工,赋予数据分析职能,为业务部门提供数据分析服务。

3. 在部分系统进行了试点应用。目前,人民银行在存款保险系统、账户管理系统、征信监测管理系统等系统建设中探索使用分布式架构。以账户管理系统为例,通过采用开源分布式技术路线,实现全国账户数据的集中存储和管理。经过业务特点分析与充分的验证测试,账户管理系统采用垂直切分与水平切分相结合的数据分片策略,将数据分布在不同的数据库节点上,以提高系统并发读写、逻辑校验等处理能力。同时,系统在数据水平切分设计时考虑了可扩展性,当未来单节点数据量超过额定值后,可将当前节点再次切分,扩展新的数据库节点存放新增数据,以解决数据的重新分布问题。人民银行分布式架构转型刚刚开始,为适应敏捷开发,人民银行软件开发中心也正在组织架构调整,通过统一需求分析、统一架构设计、统一方案制定,优化软件开发流程,构建人民银行业务应用服务中心。分布式架构在金融业应用案例还不多,希望同业之间加强沟通,相互借鉴,共同推进金融业系统架构转型。

本文转载目的在于知识分享,版权归原作者和原刊所有。如有侵权,请及时联系我们删除。

展开全文
相关阅读
资讯查询取消