当前位置:电子银行 > 正文
中国建设银行分布式架构应用实践

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

  一、为什么要分布式

  (一)为什么银行需要分布式架构,主要有以下几点原因:

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

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

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

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

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

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

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

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

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

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

  (三)分布式架构带来的挑战以及如何应对?

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

  1、运维复杂度

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

  2、架构要求高

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

  3、技术多样化

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

  4、更新迭代更快

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

  5、服务治理

  现在谈分布式架构,不可避免一定会谈到微服务。微服务已经在互联网企业得到了广泛的应用,取得了很好的效果。金融机构也都很早就开始了对于微服务的研究和应用。这里不就不谈微服务的实现技术和应用模式了,我只想提一点,并不是用了rpc,系统拆小了,就算是实现了微服务架构。微服务的挑战更多大的在于可持续性。可持续性主要体现在变化后的系统架构,是否能够更加灵活的支持业务需求的发展,应对更多生产环境的不确定性,给客户带来更好的体验。而实现上述这些要求的核心就是服务治理,包括服务流程设计、颗粒度、流控、降级、熔断等。

  分布式架构有那么多优点,那么是不是意味着我们应该彻底抛弃集中式架构,全部向分布式架构迁移呢?

  我们认为并不是这样的。建设银行认为,在当前环境下,“集中+分布式”的融合架构仍然是大型商业银行的最佳架构选择。建设银行在传统集中式核心系统采用模型驱动的开发方法进行应用组件化改造,而分布式核心则借鉴互联网最新技术进行全新开发。“双模式”融合架构发挥主机可用性高、稳定、可靠、管理简单的优点,将对私存款与借记卡这类交易量大、可用性和一致性要求高、需求变动不频繁的关键应用仍然保留在主机上;而将交易量大、可用性要求高但一致性要求略低的重要应用的部分功能部署在分布式平台上。总体上,系统将逐步从大型机、小型机集中式架构向X86分布式架构过渡。

  我们认为大型商业银行在应对分布式架构挑战时,可以采取以下具体措施。

  1、做好业务架构的顶层设计;

  2、以企业级的视角,建立新的IT架构,更好的承接业务能力;

  3、通过基础平台框架、工具的研发,沉淀技术能力,赋能上层应用开发;

  4、走“软件定义基础设施之路”,加大对云计算的研究投入;

  5、应用研发向敏捷转型,建立对于业务需求和市场的快速响应能力。

  通过上面的分析,我们看到,分布式架构的优势与挑战同在。

  二、建设银行分布式架构应用实践与探索

  建设银行这些年在分布式架构的应用上,都做了哪些探索实践?

  大家都是知道建设银行在过去的六年中,主要就是在建设新一代的核心系统。我们的新一代系统,本身就是一个企业级分布式架构的转型。我们实现是从业务转型开始的。

  第一步,通过战略规划,梳理了全行的业务、数据和产品,构建出涵盖全行经营管理的业务价值链,然后通过解读转型发展战略、十二五规划以及与部门访谈,提炼出26个业务方向,进一步分解为102个转型举措,最终形成114个业务组件,搭建出我行业务架构的框架。这26个业务方向、102个转型举措、114个业务组件,就是建行未来业务发展的蓝图。

  接着,通过企业级建模,采用标准化、结构化的语言描述业务流程、数据与产品,既覆盖现状,又体现业界领先水平。

  最后,依据建模成果进行IT架构设计及开发。

  企业级建模成果,由新一代IT架构承接,由7层12平台所构成,7层分别是渠道整合层、客户服务整合层、应用集成层、外联集成层、产品服务层、数据集成层、管理分析层。12P分别是P1客户渠道整合平台,P2员工渠道整合平台,P3客户服务整合平台,P4企业级服务总线,P5外联集成平台,P6、P7、P8产品服务平台,P9数据集成平台、P10管理分析服务平台,P11管理分析服务平台,P12在线交易数据服务平台

  整个企业级架构是以“组件化”“服务化”的思想设计的,它的原理如同搭积木,系统释放出来的服务功能如同一个个积木块,客户看到的最终功能是这些“积木块”的组合。调整某个积木块不会影响其他积木块,调整后的积木块重新组合,就产生一个新的功能。新一代架构的灵活性就体现在这里。现在,收到业务需求,先看业务模型中有没有对应的积木块。如果有,积木块拼凑就可以了;如果没有,修订模型后再开发。大大提高了开发的速度。

  三、分布式架构的未来之路

  当前,金融科技的概念被越来越多的提及,各类新技术层出不穷,分布式架构的未来之路在哪里呢。

  互联网的出现,促使在线用户数爆炸式增长,超过了过往企业级的上限,但是IOE技术不是没有满足性能要求就是没有满足成本要求。因此,迅速催生了以分布式计算为代表的云计算技术。业务的发展,又加速了数据的沉淀,2011年大数据概念脱颖而出之前,相关技术已经酝酿已久。4G网络的发展,使智能手机迅速普及,人们的上网体验从PC互联网切入移动互联网时代。与此同时,大数据的蓬勃发展在2016年促成了人工智能的爆发,人工智能的许多算法其实早在几十年前就已经提出。2017年,很快成为区块链爆发元年,但在技术界看,区块链是分布式数据存储、点对点传输、共识算法、加密算法等技术的综合应用。随着5G时代的到来,我们判断物联网、工业互联网、量子计算等等必然会成为潮流。

  回顾互联网颠覆IOE的历程,我们发现所有技术的集合自力更生地从无到有,从简单到复杂地成长起来了。我们可以说技术从自身创生了自身。这种机制便是组合进化。真实世界中,技术是高度可重构的,它们是流动的东西,永远不会静止,永远不会完结,永远不会完美。

  这种形式下我们如何应对呢,我们认为主要有以下几项具体的应对措施:

  1、业务优先

  银行IT的根本使命是支持业务的发展和转型,做好金融服务是本质。

  2、开放共享

  银行IT必须尽快建立“开放共享”的理念,从架构设计到技术路线的选择都应该更加开放,通过开放的平台,连接更多的客户与金融服务,只有这样才能快速发展。

  3、平台战略

  现在IT应该迅速从“任务实施”向“平台赋能”转型,通过业务平台和技术平台的建设,一方面赋能上层应用开发,另一方面建立专业化的研究型团队,持续的开展技术的研究和创新。

  4、与云结合

  All in Cloud、软件定义已经成为未来基础设施发展方向的共识,通过云的弹性伸缩和服务化的能力,可以让银行的基础设施更好的应对未来技术的变化。

  5、敏捷精益

  传统的瀑布式开发模式已经很难满足今天的竞争形势,必须尽快在现有研发体系中植入敏捷文化,建设配套的工具链,并积极开展敏捷工程实践,实现应用研发的敏捷转型,建立对市场和客户的快速响应能力。

  架构是为业务价值服务的,没有业务价值的架构就是没有成长的土壤。通过技术的创新突破赋能银行业务才是未来的方向,技术发展到今天,已经不是原来简单的业务提需求,IT实现功能的信息化阶段,人工智能、区块链、云计算、大数据、物联网等金融科技新技术,已经呈现出颠覆式的影响力,未来技术与业务的融合程度将进一步加深。

(文章根据会议发言整理)

相关链接:

作者:王申科 来源:互联网金融工作委员会 发布时间:2018-06-04 06:23:34
 
 
  我要发表留言  查看所有评论
 

*
 限制字数显示剩余字数,最大长度: 500 还剩: 500
用户名:
       尊重网上道德,承担一切因您的行为而直接或间接导致的民事或刑事法律责任