以银行系统为例,解析开放式云平台如何保障数据安全?
导读
互联网金融的发展给银行带来了极大的压力,在保证产品安全可控的前提下提高产品可塑性、提高开发和发布速度、提供客户自主的产品定制成为银行新的诉求。其中核心业务系统是银行最重要的业务系统,承担了银行大部分交易数据的处理工作,支持着面向银行客户的不同UI发起的各种交易处理请求。
本案例将拆解南天核心业务系统产品架构,如利用分片、副本等技术,克服传统关系型数据库及单实例操作系统在系统性能、扩展性、多节点协调性上的不足,搭建根据需求部署不同功能组成的分布式交易处理云平台。
(全文共4672字 预计阅读时长:5分钟)
案例背景
核心业务系统从来都是银行最重要的业务系统,承担了银行大部分交易数据的处理工作,支持着面向银行客户的不同UI发起的各种交易处理请求。伴随着互联网技术、大数据、移动互联网、社交媒体技术发展而风头正劲的互联网金融,对银行的压力越来越大,更加迫切地要求银行产品在安全可控的前提下具有针对个体客户更强的产品可塑性、高速的产品开发和发布能力,乃至提供客户自主的产品定制。
基于云计算的核心业务系统属于南天第五代核心业务系统产品,2014年已经成功在国内某大型银行完成上线实施。系统采用云计算技术,部署于开放式平台上,运行平稳并且已,完成了多项新业务产品的定制、开发和发布。
核心业务系统产品的整体架构是以南天分布式交易处理云平台做为核心业务系统产品平台,创新性引入了云计算、SOA、大数据等先进技术和架构。在这种完全开放式的架构下,我们利用分片、副本等技术,克服了传统关系型数据库及单实例操作系统在系统性能、扩展性、多节点协调性上的不足,可以根据不同的需求部署出不同功能组成的分布式核心业务系统。
基于云计算的核心业务系统
核心业务系统无论从承载的业务功能内容上,还是承担的业务处理量上,都是银行计算机系统中重量级的“大象”,是决定银行产品服务能力、创新能力的基础。我们的目的是通过真正灵活扩展的产品架构和服务架构,让“大象”能够轻快地起舞,为计算机系统支撑银行进行快速创新、提供高质量产品服务创造前提条件。
云计算核心业务系统架构充分体现了SOA的思想,基于公共的分布式交易处理云平台管理各种服务,业务功能都通过服务和服务组合实现,具备典型的SOA组件、结合银行业务处理需求特点的特殊组件,这些组件用于应对不同的应用场景。
同时,为了达到尽量极致的针对性,对公共组件都参照标准组件功能进行针对性的开发,去繁留简,与通用产品和组件相比降低了普适性,但提升了银行核心系统的针对性。
我们在基于云计算的核心业务系统这样的复杂应用系统研发过程中,有相关的启示。
案例复现
● 3.1 概述
基于云计算的核心业务系统以分布式并行处理架构为基础,利用分片、副本的方式提供了高可用性、高处理性能的核心业务处理,创新性的以服务组合方式提供各种业务产品的处理功能,极大提升了核心业务功能组合的灵活性。
● 3.2 目标
解决银行基于开放式平台构建分布式核心业务系统,实现超高性能核心业务系统的难题。打破国外大型机商对核心业务系统的垄断,打破计算机设备、关系型数据库等关键技术的扩展性瓶颈,节约核心业务系统建设成本及运行维护成本。
● 3.3 “大象”跳舞的需求及其深刻的业务发展背景
互联网金融企业的发展,对传统银行自身的业务、技术发展带来新的挑战;
核心业务系统从来都是银行最重要的业务系统,不同银行需要有自己个性化的核心业务系统,以支撑其自身独特的业务发展战略;
银行核心系统需要支持更强的产品可塑性;
银行核心系统需要支持快速的产品开发和发布能力;
银行核心系统需要支撑更加高可靠、高可用的客户服务;
银行核心系统处理能力需要能支撑面向社会各阶层不同客户的大量创新产品云计算核心业务系统部署结构如图1所示。
对于核心系统内部,只有相应的处理服务,所有功能皆服务(当然有不同种类、特性的服务,有的对时间敏感、有的对事件敏感,等等),每个服务因为需求不同在服务内部有不同的处理逻辑和不同的数据流,但都表现为功能处理服务。
在核心系统上进行个性化功能定制和开发可以专注于具体的业务功能实现,不必关心系统的各个分布式特性,因而使得“大象”能够高质量、快捷的进行功能扩充,翩翩起舞。
架构设计思想
新一代核心业务系统需要满足各种各样的特性,在系统规划时期就明确了系统整体创新的基础是设计一个先进、合适的系统架构。通过新系统架构来支撑系统在技术、业务层面的创新。
从应用集成实践的角度上看,云计算技术本质上也属于分布式技术的发展,银行的应用架构可以分为:集中式系统架构、基于数据库多节点构建的多处理节点系统架构、以ESB或BPM集成起来的多节点应用集的架构、自有的分布式架构。南天的云计算核心业务系统属于自有的分布式架构。
● 4.1 云计算的核心业务系统架构设计思想
以分布式交易处理云平台做为基础,对具体应用服务屏蔽分布式特性;
体现核心系统高一致性、强事务性、资源冲突性、完整事务补偿处理的特点;
创新性引入云计算、SOA、大数据等先进技术和架构思想;
利用分片、副本等技术,克服传统关系型数据库及集中式操作系统在系统性能、扩展性、多节点协调性上的不足;
充分体现SOA的思想,业务功能都通过服务组合实现,通过微服务架构支撑有实际意义的服务切分;
根据不同需求可以灵活的部署不同功能的分布式核心业务系统(例如:单独的存款系统)
●4.2 从架构设计的总体思想上得到的启示
4.2.1 经过研发,我们创建了基于云计算的核心业务系统,证明了“大象”确实能跳舞。同时,也坚定了我们的思想:在银行“最核心”业务功能的实现技术上,应持续开放和吸收互联网技术、理念的成功实践经验。
4.2.2 “大象”起舞的关键是云计算、SOA、大数据;
云计算技术用于解决核心系统功能、数据、交易总量快速增长,而系统处理能力不足的问题;
SOA用于在核心系统中共享服务、创造组合服务,实现核心系统中业务与技术分离,构建服务为中心的新型系统体系结构;
大数据使核心系统智能起来,能够主动真正了解客户差异需求,实现精准营销和差异化产品服务。
4.2.3 核心系统以分布式交易处理云平台为基础,云平台内建了所需的ESB、BPM功能。
4.2.4 架构优先:新一代核心业务系统需要满足各种各样的特性,在系统规划时期就明确了系统整体创新的基础是设计一个先进、合适的系统架构,应将架构设计做为整个核心业务系统研发优先要考虑的问题。通过先进的架构来支撑系统在技术、业务层面的创新。
从实际实施的角度,我们认为对于云计算、SOA、大数据而言,排除系统建设管理的复杂性不考虑,在现阶段越是成体系、完整、复杂的系统群,越是适合在技术实现方案中使用这些技术,因为这些技术本身擅长的就是对复杂问题的有效分解和简化。核心业务系统是典型的复杂系统,自然也适合采用这些技术。
● 4.3 分布式架构
云计算也属于分布式架构的一种,云计算的核心业务系统在分布式架构设计上主要有如下的一些实践:
核心业务系统的部署以服务为单位部署在任意个虚拟化的处理节点上;
云平台支撑的自治节点具有对等性没有主从性,依据部署的服务提供相应的处理;
按照不同业务对象配置不同数量的副本节点;
依托微服务架构,按照业务流程中不同处理功能进行分片,包括数据和服务的分片;
核心业务系统针对联机、批量、日终处理请求有充分的并发性支持和完整的请求协调管理;
对于核心业务系统,各类交易、事件的发生没有全局序列控制,体现为无序和冲突,核心业务系统通过多层次的协调机制保障处理结果的正确性。
● 4.4 SOA落地
SOA是解决复杂问题的良好实践,但对于SOA的落地,特别是在核心业务系统这样的复杂系统上的落地,的确有很大的难度,但核心的一点是SOA不能脱离开其他技术进行单独的实现。
我们有如下的启示:
核心业务系统的SOA落地需要结合分布式处理技术;
核心业务系统应具有平台化的清晰思路,通过云平台搭建的微服务架构支撑SOA的落地;
服务治理:SOA的落地会带来服务治理问题,在核心业务系统中处理对象都是服务,分布式交易处理云平台承担起了服务治理的工作;
所有处理的服务化:云平台自身功能及业务处理功能皆为服务化;
SOA的落地不止是运行态的服务化。云平台提供了自成体系的服务支撑体系,强力支持服务的开发、注册、发布、运行、监控;
微服务的设计思想保障了核心业务系统中的服务化程度较高,例如:普通的个人存款业务处理功能服务化后,成为十几个自治的服务协同完成存款功能;
性能保障依然是基础:核心业务系统在高度服务化后,依然保持了超高处理性能,使SOA的全面落地得到了保障。
●4.5 大数据落地
大数据是使业务处理智能化的手段。在金融IT系统中,大数据的应用已经越来越多,与核心业务系统结合起来进行实现实时交互的应用是一种创新。
对此,我们得到如下的启示:
核心业务系统中采用了大数据处理技术,相关功能服务也由分布式交易处理云平台管理,但使用与联机交易不同的存储方案及计算技术;
联机交易处理数据由云平台实时的采集出来,通过大数据技术进行分析处理并即时提供结果,供核心业务系统的不同应用使用;
对于核心业务系统数据的采集,云平台内建了数据采集、同步功能,可以实现实时单笔和批量的数据采集及同步;
核心业务系统的交易请求处理是需要优先保障的,在整个系统中大数据的处理不会影响到各类交易的处理。
复杂系统建设实践
● 5.1 分离关注点
核心业务系统研发与其他应用系统的研发从本质上最大的差异就是需要解决复杂系统的开发问题。现代软件系统设计,甚至包括复杂软件工程的根本出发点之一,就是分离关注点。通过有计划、有组织的方式,将复杂问题分离为众多独立的关注点,分别进行分析和解决。
我们将核心系统的设计分解为众多不同的主题进行具体的实现,例如:安全性、并发性、故障处理、伸缩性、服务类型、服务代理、服务管理、处理性能等,从实施的角度又可以分为概念设计、架构设计、总体设计等。在研发过程中,专门有研发团队针对分布式交易处理云平台进行研发和升级,而在云平台的整个研发中又区分了很多不同的专题。
对于核心业务系统研发中的分离关注点,我们得到如下的启示:
复杂系统上引入云计算、SOA、大数据困难很大,为了引入而引入必然无从下手;
在实践中,不能束缚于新技术、架构,不做自顶向下照本宣科式的设计;
贴近核心系统功能性需求、非功能性需求,先分离得到众多不同的支撑主题;
关注各个支撑主题,自底向上分析、设计,从主题推演所需的架构设计;
针对关键主题开始,让自底向上的设计成果吸收新技术、架构中有益的实践和思想,并据此调整甚至推翻原有设计;
实施中持续关注初始时划定的各个主题,依据不同实施阶段的反馈重复进行分析、推翻、设计的过程。
● 5.2 实施管理
分离关注点方法的实施,也会带来相当的管理压力。我们在实施管理上得到了如下的启示:
必须提前认识到:云计算的核心业务系统研发本来就是管理巨大工作量,要按照前述内容进行自底向上的主题设计,还会给管理带来很大的附加工作量;
实施工作适合采取增量开发模式,通过周期新增+原有版本迭代的方式逐渐充实、完善核心业务系统;
实施中最关键的能力之一是整体规划能力,即架构“蓝图”概念设计及分解能力建议以“外科手术团队”方式组建研发团队,开展实施工作;
核心业务系统的研发是典型的复杂系统建设,整个系统的研发应该划分为众多的“外科手术团队”来进行。这将给管理带来一定的附加工作量。
对于分离关注点,最重要的能力在于整体规划能力,也就是项目管理中经常提到的架构“蓝图”概念设计及分解能力。在此基础上建议以经典的“外科手术团队”方式组建团队,外科医生和副手对系统的一致性负责。同时,在实际的实施中,必须考虑核心业务系统研发的复杂性,可以通过多个“外科手术团队”来形成整个研发团队。
多个“外科手术团队”由“大”外科医生和副手负责,相关的设计协调通过各个外科医生及其副手进行。最后,分离关注点的应用中还应注意整体的效益分析,应在不同的增量版本确定时,充分考虑整体效益,使研发在各个阶段有尽量适宜的效益能体现出来。
★★征稿★★
寻找100个年度最具价值的实践案例
我们只要案例干货,拒绝广告
成为特约作者,你将:
◆ 连接100名年度经验与增长值TOP100的研发精英
◆ 提前入围「壹佰案例」年度最优案例榜单
◆ 案例整理成册,出版发行图书
◆ 成为msup客座教练
◆ 以观察员身份受邀出席TOP100全球软件案例研究峰会
◆ 所在公司享有msup活动优惠
有意者联系壹佰案例主编Cynthia