当前位置: 澳门新豪天地3559 > 科技技术 > 正文

【新豪天地】中华夏族民共和国农行布满式框架

时间:2019-08-20 09:55来源:科技技术
原标题:中国建设银行分布式架构应用实践(内附PPT) 可以理解为自白书,知道自己太落后啦~ 据阿里官方公布的数据,2013年“双11”这一天,天猫、淘宝成交额共计350.19亿元,相当于

原标题:中国建设银行分布式架构应用实践(内附PPT)

可以理解为自白书,知道自己太落后啦~

新豪天地 1

据阿里官方公布的数据,2013年“双11”这一天,天猫、淘宝成交额共计350.19亿元,相当于10月全国日均消费额的一半,较去年的191亿元增长83%。支付宝交总交易笔数达到1.88亿笔,其中无线支付达到4518万笔,分别是去年同一天的1.77倍和5倍。

互联网技术架构给我们的启示

中国建设银行信息技术管理部副总经理 王申科

新豪天地 2

——中国建设银行信息技术管理部副总经理 王申科

分布式架构是金融科技当中是非常热的话题之一,像区块链、大数据、人工智能这些新技术层出不穷。我始终认为作为银行的IT,怎样把业界或者行业当中这一些成熟的技术去运用好,才是最重要的,金融科技的核心实际上还是金融。

参照央行发布的2013年第二季度支付体系运行数据,二季度全国银行卡消费业务笔数约为30.6亿笔,平均每天约3400万笔,那么支付宝“双11”1天的支付笔数就相当于二季度全国的POS机交易量的5.5倍,也相当于国际支付机构Paypal一个月的支付量,比肩Visa全球日刷卡量。

据阿里官方公布的数据,2013年“双11”这一天,天猫、淘宝成交额共计350.19亿元,相当于10月全国日均消费额的一半,较去年的191亿元增长83%。支付宝交总交易笔数达到1.88亿笔,其中无线支付达到4518万笔,分别是去年同一天的1.77倍和5倍。

我主要从三个部分来讲述,一是为什么要分布式,二是建设银行做了哪些实践和探索,最后是我们对于未来的一些展望。

作为一名商业银行IT从业人员,笔者一直关注阿里、腾讯、Google等互联网企业的技术路线、技术架构和技术管理理念,探究其如何能够支持如此的业务创新和技术保障能力。

参照央行发布的2013年第二季度支付体系运行数据,二季度全国银行卡消费业务笔数约为30.6亿笔,平均每天约3400万笔,那么支付宝“双11”1天的支付笔数就相当于二季度全国的POS机交易量的5.5倍,也相当于国际支付机构Paypal一个月的支付量,比肩Visa全球日刷卡量。

为什么银行需要分布式架构,我们认为主要有以下几点原因:

一、几个基本计算机理论与模型

作为一名商业银行IT从业人员,笔者一直关注阿里、腾讯、Google等互联网企业的技术路线、技术架构和技术管理理念,探究其如何能够支持如此的业务创新和技术保障能力。

1、增大系统容量。随着我国现代化建设进程的逐步推进和人民生活水平的提高,对金融服务的需求越来越高,系统业务量越来越大,依靠传统集中式架构下有限数量的服务器,其性能已经接近瓶颈,我们需要更多的服务器才能应对大规模的应用场景。所以,我们需要垂直或是水平拆分业务系统,让其变成一个分布式的架构。

1.分布式系统。

一、几个基本计算机理论与模型

2、控制成本。在前面银行业辉煌的10余年间,利润飞速增长,给银行的信息化建设过程带来了前所未有的发展,再这段时间内,各家大型商业银行都建立起了以主机为核心的集中式架构,并完成了数据大集中和配套周边系统的大规模建设。然而近年来由于互联网金融的冲击,利率市场化等内外因素,利润增长乏力。成本控制已经成为我们面临的一大挑战。分布式架构不再依赖专用设备和软件,可以大幅降低基础设施的投入成本。

包括分布式操作系统、分布式程序设计语言及其编译系统、分布式文件系统和分布式数据库系统等。

1.分布式系统。包括分布式操作系统、分布式程序设计语言及其编译系统、分布式文件系统和分布式数据库系统等。

3、适应性更强。分布式架构强调服务化的设计理念,一般是通过组件化和微服务来解耦应用间的设计依赖。通过服务将应用间的数据依赖重新组织后,系统的灵活性得到增强,数据变动的影响也可以被限制在一定的范围,而且服务本身更贴近业务场景,可验证性更强。这样的应用一定对未来的业务发展有更强的适应性。

Google在构建搜索系统时,第一次将分布式系统和互联网结合起来,用分布式系统来解决互联网问题。Google的分布式系统设计有几个重要的特征:视失败为常态;重视横向伸缩性;预测性能,追求低延迟,廉价的硬件和软件,推崇重用,灵活设计,加入足够的监测点和调试功能来帮助日后的调试,优先虚拟计算。 Google的这些设计思想,成为互联网应用开发事实上的标准和规范。

Google在构建搜索系统时,第一次将分布式系统和互联网结合起来,用分布式系统来解决互联网问题。Google的分布式系统设计有几个重要的特征:视失败为常态;重视横向伸缩性;预测性能,追求低延迟,廉价的硬件和软件,推崇重用,灵活设计,加入足够的监测点和调试功能来帮助日后的调试,优先虚拟计算。 Google的这些设计思想,成为互联网应用开发事实上的标准和规范。

4、加强系统可用。当前的银行系统已经很少再听到5*8的概念,随着经济的发展和全球化进程,银行的系统基本都已经要做到365*24的不间断运行。我们的业务系统也越来越关键,系统架构的可用性面临巨大挑战。这就意味着架构中不能存在单点故障。分布式架构首先通过拆分,来降低每一部分的影响范围,然后利用冗余提供更多的容错能力,最后还可以通过故障隔离、服务降级等手段进一步确保系统的可用性。

2.CAP:一致性理论。

2.CAP:一致性理论。CAP理论(C: Consistency 一致性,A: Availability 可用性,P: Tolerance of network Partition 分区容忍性)指出,一个分布式系统不可能满足一致性、可用性和分区容错性这3个需求,最多只能同时满足其中的两个需求。因此应用系统的关注点不同,采用的策略也是不一样的,只有准确把握了应用需求,才有可能利用好CAP理论。对互联网应用,可用性与分区容忍性优先级要高于数据一致性。

5、更符合云的要求。云的核心特征就是弹性,而传统的集中式架构,依赖昂贵的专用设备和企业软件,无法很好的适应云端部署的要求。分布式架构更加轻量化,更加灵活,自然更适合云端的部署和运行。

CAP理论(C: Consistency 一致性,A: Availability 可用性,P: Tolerance of network Partition 分区容忍性)指出,一个分布式系统不可能满足一致性、可用性和分区容错性这3个需求,最多只能同时满足其中的两个需求。因此应用系统的关注点不同,采用的策略也是不一样的,只有准确把握了应用需求,才有可能利用好CAP理论。对互联网应用,可用性与分区容忍性优先级要高于数据一致性。

3.ACID 和 BASE 模型。ACID 是指在数据库管理系统中事务具有的4个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。在数据库系统中,一个事务是由一系列数据库操作组成的一个完整的逻辑过程。事务的核心思想就是为了保证数据的一致性。ACID 模型被引申为强调数据一致性的开发理念,被银行、证券等机构广泛采用。

是什么原因,让分布式架构得到了业界一致认同,并持续爆发出旺盛的生命力呢?我们分析有以下几点原因:

3.ACID 和 BASE 模型。

BASE 则是另外一个理念和思路,Basically Available 为基本可用,Soft-state 为软状态/柔性事务,Eventual Consistency 为最终一致性。BASE模型完全不同于ACID模型。牺牲高一致性,获得可用性。对一个“基本可用”系统来说,需要把系统中的所有功能点进行优先级的划分,对于系统内部的状态,采用一种柔性的策略,假如系统内分布了3个功能模块,允许它们在某一时刻3个模块的状态可以不一致。然后通过业务和技术的手段,例如采用异步机制或者批处理方式,来保证系统通过柔性状态一致来获得可用性。当前互联网应用在业务允许范围里普遍参考 BASE 模型来进行系统设计。

1、开放。分布式架构中的技术大多以开源项目为主,开源项目有着广泛的参与度,在社区的推动下,软件的功能能够得到快速的完善和丰富,相对于传统企业软件,能够适应更多的场景,也更加轻量,资源占用量也比较少。

ACID 是指在数据库管理系统中事务具有的4个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。在数据库系统中,一个事务是由一系列数据库操作组成的一个完整的逻辑过程。事务的核心思想就是为了保证数据的一致性。ACID 模型被引申为强调数据一致性的开发理念,被银行、证券等机构广泛采用。

4.SOA 面向服务架构。是一种松散耦合的架构理念和模型,针对粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用。

2、通用。分布式架构一般是基于X86服务器进行部署,X86服务器更加通用和标准,各厂商的产品没有太大的差别,这样对于服务器的选择性就更大,不会被某一品牌绑定,自主可控程度更高。

BASE 则是另外一个理念和思路,Basically Available 为基本可用,Soft-state 为软状态/柔性事务,Eventual Consistency 为最终一致性。BASE模型完全不同于ACID模型。牺牲高一致性,获得可用性。对一个“基本可用”系统来说,需要把系统中的所有功能点进行优先级的划分,对于系统内部的状态,采用一种柔性的策略,假如系统内分布了3个功能模块,允许它们在某一时刻3个模块的状态可以不一致。然后通过业务和技术的手段,例如采用异步机制或者批处理方式,来保证系统通过柔性状态一致来获得可用性。当前互联网应用在业务允许范围里普遍参考 BASE 模型来进行系统设计。

二、互联网应用的技术基础

3、低成本。分布式架构中大量使用了开源软件和X86服务器,可以极大的降低基础设施的投入成本,对于任何一个大企业都有着巨大的吸引力,大家的关注度和投入都是非常大的。

4.SOA 面向服务架构。

1.基于x86服务器集群和开源软件搭建技术设施,分布式架构 开源软件是其基本特征。X86服务器是互联网应用基本计算资源,例如Google、阿里等公司,每个数据中心动辄部署上万台、几十万台和百万台X86服务器,进行动态资源调度。开源操作系统Linux、开源web服务器Apache、开源数据库MySQL、开源脚本语言Php/Perl……这些著名的开源软件支撑了互联网公司发展。开源软件的发展同样离不开互联网发展的支持。初期的开源软件代码缺陷和设计缺陷很多,正是通过应用发现软件缺陷、不断修补的方式,既支持了互联网公司的发展,又促进了开源软件的发展。从对开源软件的使用和修改开始,互联网公司就逐步积累和掌握了自主研发能力。

4、支持定制。各个企业都有自己的产品特色和文化,随着业务规模的增长,各企业对于IT软件和系统的定制程度要求越来高,并且在不同的时间片上这种需求也在变化。而集中式架构往往依赖专用企业软件,其在bug修复,版本更新速度上,已经很难支持业务的快速发展。

是一种松散耦合的架构理念和模型,针对粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用。

2.积极进取的创新精神。以阿里巴巴为例,短短几年先后自主开发了如下技术产品:分布式文件系统和分布式存储、搜索引擎技术、分布式计算、分布式机房、消息中间件、分布式锁管理、虚拟化和计算资源调度;Apache和Nginx等开源软件定制、Java虚拟机调优(JVM)、开源数据库调优;文件系统优化、网卡协议栈优化、操作系统资源隔离、操作系统资源管理、操作系统内存优化、虚拟化软件底层研发;低功耗处理机、协处理器辅助应用、数据中心省电技术、新一代存储技术、新一代网卡应用。

分布式架构虽然能带来很多好处,但是相对于我们已经熟练掌握和运用的集中式架构,也会带来很多挑战。

二、互联网应用的技术基础

3.基于场景的需求分析和应用开发。总结阿里巴巴开发的原则如下:SOA服务化,所有系统采取服务化模式,系统之间进行必要的分拆和隔离,通过服务调用和消息通知的方式进行协同;BASE和ACID相结合,能够采取BASE模式的业务一定是异步方式,而核心的账务信息一定是采取实时方式,保证ACID;无单点设计、可监控、可测试、可回滚、可禁用、短事务与柔性事务、异步设计、无状态、使用成熟技术、业务分等级、业务可降级、多数据中心部署。

1、运维复杂度

1.基于x86服务器集群和开源软件搭建技术设施,分布式架构 开源软件是其基本特征。

4.平台化建设理念,提高开发效率和系统质量。苹果公司的App store提供标准的开发平台,全球开发者可以充分发挥自己的聪明才智,开发个性化的应用,并通过苹果应用商店发布。苹果公司向开发者提供了应用程序开发框架,以方便开发者的开发工作。开发框架包含三类组件:应用程序接口库、开发工具和测试模拟器。

分布式架构由于采用更为通用X86服务器和云环境部署,单机的处理能力有限,必然会带来更高的部署复杂度,服务器的数量会变得比较多。应用微服务后,系统间服务数量增加,交互更加频繁,交易路径变得更为复杂,风险点增多,一旦出现问题后,故障的定位和分析和应急处置上都变得更加复杂。

X86服务器是互联网应用基本计算资源,例如Google、阿里等公司,每个数据中心动辄部署上万台、几十万台和百万台X86服务器,进行动态资源调度。开源操作系统Linux、开源web服务器Apache、开源数据库MySQL、开源脚本语言Php/Perl……这些著名的开源软件支撑了互联网公司发展。开源软件的发展同样离不开互联网发展的支持。初期的开源软件代码缺陷和设计缺陷很多,正是通过应用发现软件缺陷、不断修补的方式,既支持了互联网公司的发展,又促进了开源软件的发展。从对开源软件的使用和修改开始,互联网公司就逐步积累和掌握了自主研发能力。

5.自动化部署和运维体系。阿里巴巴开发了一套资产信息采集程序和采集流程,将服务器、网络设备、存贮等资产信息,采集到数据库中。应用系统不再关心具体的资源信息,无论资产还是资源都是处于动态的变化中。通过资产信息和资源的变更流程,资产信息,硬件信息和应用信息的任何变更,必须通过系统进行变更记录,详细记录每个设备的生命周期里的各种变化。变更流程和工作流系统对接,通过工作流系统进行分级审批之后,才能进行相应的变更。以自动化采集为核心的资产管理体系,主动监控确保资源池一致性,保证资产信息的准确性。对资源进行回收和重新分配的时候,先要确保资源的状态。对于资源的数据,必须采取主动监控的做法,确保数据的可靠性,其具体做法是每天对设备的信息进行重新抓取,并与数据库里的状态进行匹配,发现不一致的数据,报警并锁定资源,不允许对资源进行任何操作。通过这种自动化的方式,杜绝人为错误,确保资产数据和资源池信息的数据一致性,是资源池可信的重要保证。

2、架构要求高

2.积极进取的创新精神。

6.成本控制意识和自主掌控能力。互联网企业的IT成本控制意识较强,面对激烈的市场竞争和客户体验的需求,需要敏捷的技术反应,完全依赖通用技术和国际大名牌的IT设备和软件供应商无法满足这类需求。开源和廉价的X86服务器是最佳的选择。短短几年时间,互联网公司的技术研发能力和研发速度,明显强于老牌的IT公司。这是一种以市场需求为导向,以客户体验为基础,以技术架构创新为手段,引领业务和技术创新的新模式。

集中式架构下,架构设计的要求相对简单,主要集中在程序处理结构上。而引入分布式架构和微服务后,对应用系统的架构设计提出了更高的要求。如果既做到组件间解耦数据依赖,改为服务集成,又能够避免服务分布式后带来的一致性问题,是每一位架构师都将面临的难题。

以阿里巴巴为例,短短几年先后自主开发了如下技术产品:分布式文件系统和分布式存储、搜索引擎技术、分布式计算、分布式机房、消息中间件、分布式锁管理、虚拟化和计算资源调度;Apache和Nginx等开源软件定制、Java虚拟机调优(JVM)、开源数据库调优;文件系统优化、网卡协议栈优化、操作系统资源隔离、操作系统资源管理、操作系统内存优化、虚拟化软件底层研发;低功耗处理机、协处理器辅助应用、数据中心省电技术、新一代存储技术、新一代网卡应用。

三、商业银行应用系统的技术基础

3、技术多样化

3.基于场景的需求分析和应用开发。

1.通用信息技术和商业化软件是基础,集中式系统部署。多数商业银行信息化建设遵循通用信息技术的路线,即采用商业化的大、中、小型计算机硬件系统及其配套的编程语言、操作系统、中间件工具软件和数据库,进行集中式部署。例如采用IBM大型机和P系列服务器、Unix操作系统、Oracle或DB2数据库等,采用Cisco公司网络设备和EMC等公司的存贮设备。银行的各种应用基本运行在这样的技术平台上。最近几年,随着云计算理念的普及和X86服务器性能和可用性的不断提升,已经出现规模性部署X86服务器,构建云环境的趋势。

分布式架构下,开源已经成为技术选型的主流,各类开源框架和软件,越来越多的被应用到银行的业务处理中。在开发语言除了现有架构下主要使用的c、java外,也出现了go,scala,python等新型编程语言。技术呈现出多样化的趋势,对我们IT研发人员的能力提出了更高的要求。

总结阿里巴巴开发的原则如下:SOA服务化,所有系统采取服务化模式,系统之间进行必要的分拆和隔离,通过服务调用和消息通知的方式进行协同;BASE和ACID相结合,能够采取BASE模式的业务一定是异步方式,而核心的账务信息一定是采取实时方式,保证ACID;无单点设计、可监控、可测试、可回滚、可禁用、短事务与柔性事务、异步设计、无状态、使用成熟技术、业务分等级、业务可降级、多数据中心部署。

2.面临完全依赖供应商的被动局面。商业银行在信息技术支持和保障能力、技术进步和创新能力、技术采购议价能力、设备升级周期和扩容、成本控制等方面,很大程度上依赖信息技术供应商。从历史看,商业银行应用系统大多采用三层架构:服务层、应用层和数据层,最近几年逐步加入ESB层。每层采用双机或集群技术支撑业务应用。早期以纵向(scale-up)升级扩容为主,现在逐步采用横向(scale-out)扩容方式或虚拟化方式。这种历史发展过程中形成的架构和技术路线,很难适应发展迅速的互联网时代应用需求。

4、更新迭代更快

4.平台化建设理念,提高开发效率和系统质量。

3.交易系统突出资金安全和核算的准确性,数据一致性要求高,客户体验差。从模拟手工流程一路走来,商业银行信息化建设始终围绕内部业务管理、经营和风险控制的目标。应用系统存在存在如下问题:一是烟囱式结构,渠道不统一,整合性差;二是应用范围小,非企业级;三是标准不一致和数据质量差;四是着眼银行内部流程,对外客户体验不佳;五是网上银行和手机银行等具有互联网特征的应用,仍然构建在传统的技术架构上,其应用系统也主要是把柜面应用搬到网上银行和手机银行之上而已。

当前的技术发展用日新月异来形容,一点也不夸张,我们还在谈互联网转型的时候,各类公有云就遍地开花了,我们开始谈云计算,servless和Faas就来了,我们谈servless,区块链、AI、物联网、量子计算又来了。技术的更新迭代速度太快了,未来充满了不确定性。

苹果公司的App store提供标准的开发平台,全球开发者可以充分发挥自己的聪明才智,开发个性化的应用,并通过苹果应用商店发布。苹果公司向开发者提供了应用程序开发框架,以方便开发者的开发工作。开发框架包含三类组件:应用程序接口库、开发工具和测试模拟器。

四、5点启示

编辑:科技技术 本文来源:【新豪天地】中华夏族民共和国农行布满式框架

关键词: 新豪天地