分布式架构在银行IT系统的运用分析

Posted twt企业IT社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分布式架构在银行IT系统的运用分析相关的知识,希望对你有一定的参考价值。

来源:《金融电子化》2016年12月刊



文 / 上海华瑞银行副行长兼首席信息官 孙中东


随着互联网、移动互联网、大数据、社交网络等信息技术的蓬勃发展,互联网金融应运而生,对传统商业银行网点经营带来全面而系统性的冲击。很多传统银行正在努力向互联网化转型,一些新兴的民营银行更是直接抛弃线下网点,互联网成为了这些机构唯一的客户触点,完全打破了所有已知的银行运营模式。一个看似简单的愿景:“任何人在任何地点、任何时间、任何场景下,通过多种手段均可使用银行服务”,将令新一代银行站上互联网的风口浪尖——来自不同阶层、不同背景的海量客户,以及随之而来的海量交易、海量数据。这将是互联网银行从第一天起就要面对的挑战,而分布式架构和云计算技术将成为架构师手中的利器。

分布式架构在银行IT 系统的运用分析

比较传统银行IT 应用架构和互联网企业的IT 架构,发现二者走了完全不同的道路。传统银行走的是集中式交易处理道路,多数银行的核心系统采用了集群数据库架构。反观互联网企业系统的应用架构,他们为了提供高伸缩性、高变化的服务,普遍采用开源、横向扩展的分布式计算模式,如在Web 应用架构中普遍采用的无共享分布式架构。

互联网应用面对数以亿计的用户,每天的浏览记录达十亿、百亿条,数据量达TB、PB 级,可伸缩性对于系统架构至关重要。而这样做的前提便是放弃对一致性的严格要求,转而将重心放在可用性和分区容错性上。目前主流的互联网公司在分布式框架下的设计原则高度一致性:首先做到“能分则分”,把问题分解成易于处理的模块,如果不切分就无法扩展规模,比如电商的用户数据、商品数据、购买数据不断分摊到更多的主机上处理;第二做到“能异步则异步”,用异步原则解决伸缩性、响应延迟等问题;第三做到“能自动则自动“,让更多的手工调整变成自动调整,借助机器学习的方式完成;第四做到“记住所有失败”,互联网应用无法避免错误,但应该记录分析所有错误来不断提升应用体验。

很多银行都在尝试从集中式向分布式架构的转型,然而银行系统对于资金账户安全性及交易一致性的要求远超互联网公司。银行的核心IT 能力必须保证交易一致性和高可用性,向客户提供可靠的金融服务。对于一个面向互联网的银行,合适的架构设计需要围绕业务对于数据的事务处理特性来决策,银行业务特性需要集中式和分布式的系统架构共存。同时银行的系统架构需要具有开放、外联、安全的特征,能够提API 级的接口服务,与其他产业相结合,吸引更多客户,构建以API 为核心的全新生态坏境。

对于商业银行,可以将其应用系统分为传统金融服务和面向互联网服务两类,根据集中式、分布式共存的复合型架构进行设计和建设。

金融服务类系统为保证资金账户安全性及交易一致性,可以采用集中式的架构设计,以传统关系型数据库为核心进行系统建设,采用成熟的集群和高可用方案保证业务连续性。虽然目前分布式数据库在OLAP 应用中得到了广泛使用,但仍无法满足OLTP 的需求,还有很长的路要走。

面向互联网的系统通常面对高并发、大数据量、需灵活扩展等需求,可以采用分布式架构进行建设。目前在应用层、缓存层、数据层都有较为成熟的分布式软件,比如应用层有Spring Cloud Netflix 等分布式微服务架构,缓存层有Redis、Memchached 等分布式缓存系统,数据层有Hdfs、Hbase、Spark、Storm 等分布式数据处理系统。通过合理的分布式架构设计,可以动态灵活地根据系统的负载增加处理节点,快速提升系统的吞吐量并减少不必要的资源浪费,避免由于单个节点失效而使整个系统崩溃的危险。

最近引发全球热议的区块链技术,就是一种分布式架构的应用。从数据的维度看:可以把区块链看作是一种分布式数据库(分布式共享账簿)。这里的“分布式”体现为数据的分布式存储、分布式记录(由区块链的参与者集体维护)。从技术维度看:区块链并不是一种单一的、全新的技术,而是多种现有技术(如加密算法、P2P 文件传输等)整合的结果,这些技术与数据库巧妙地组合在一起,形成一种新的数据记录、传递、存储与呈现的方式。从架构维度看:区块链是在没有中央控制点的分布式对等网络下,使用分布式集体运作的方法,构建了一个P2P 的自组织网络;并通过复杂的校验机制,区块链数据库能够保持完整性、连续性和一致性。区块链技术有两个非常重要的特点:一是每一个区块上记录的交易是上一个区块形成之后、该区块被创建前发生的所有价值交换活动,保证了数据库的完整性。二是在绝大多数情况下,一旦新区块完成后被加入到区块链的最后,此区块的数据记录就再也不能改变或删除,保证了数据库的严谨性,即无法被篡改。这两个特点确保了区块链技术在金融业务中使用的可行性和安全性,提升了区块链技术在金融科技领域的地位。

分布式架构向云计算架构升级转型

为了适应互联网环境下计算资源弹性变化和快速部署等需求,越来越多的企业都在应用云计算的理念和技术重新构建信息系统的业务支持模式、改变IT 设施供给方式、优化IT投入成本、提升安全运营水平、改善客户服务体验。目前各家银行都在积极探索使用云计算技术,采用计算虚拟化、容器虚拟化、分布式存储、网络虚拟化等技术建立资源池,形成资源弹性供给、灵活调度和动态计量的私有云平台。

目前基于IaaS 的基础资源云平台已经在银行得到广泛使用,通过IaaS 云平台可以将整个银行的IT 基础资源高效共享、统一调度、集中管理,有效提高了IT 资产的利用率和自动化运维能力,降低了数据中心的运维成本。对于新兴的民营银行,云平台更是成为新一代基础架构建设的基石,可以帮助民营银行快速搭建起安全可靠的系统环境。

继IaaS 和SaaS 爆发式增长后,PaaS 也随着Docker 容器技术的发展迎来新的风口。云计算专家们纷纷认为容器有望成为全新的通用型PaaS 云技术,未来基于Docker 技术的Paas 平台将迎来全面爆发。Docker 提出的“Build once,Run anywhere,Configure once,Run anything” 理念,使其支持者坚信Docker 将改变云计算的未来。当IaaS 云提升了资源的交付形式后,容器云将改变产品的迭代方式,提高产品迭代的速度,在这个“唯快不变”的时代,这一特性的颠覆性和吸引力将不言而喻。通过使用基于Docker 技术的PaaS 平台能为银行IT 系统架构带来重要提升。

快速部署:虚拟化技术可以将基础环境准备时间由过去的几天缩短到几分钟,而Docker 由于是创建一个容器进程而无需启动操作系统,这个过程更是缩短到秒级。同时容器技术和持续集成的结合,极大地提升了应用系统从开发测试环境到生产环境的部署效率。

简化配置:将运行环境和配置放在代码中然后部署,同一个Docker 的配置可以在不同的环境中使用,降低了硬件要求和应用环境之间耦合度。

轻量资源:和IDC 模式或虚拟机模式相比,Docker 占用资源更少。当需要新增一个“操作系统”时,仅需添加或减小镜像即可。在一台服务器上可以布署100 ~ 1000 个容器。

多租户环境:使用Docker 可以为每个租户应用层的多个实例创建隔离环境 ,提升资源利用率,减少管理成本。

目前Google、Aws、FaceBook 等互联网巨头都积极投入到云计算技术的研发,而传统数据库巨头Oracle 也已全面向云转型,并于近期推出了全新Oracle 数据库平台即服务。

可以看到,无论是云计算的发展趋势还是监管机构的指导意见,银行IT 系统架构向云平台的主动转型已势在必行;但银行系统架构的复杂性以及对于系统安全、稳定的高要求,预示着转型的路不好走,银行IT 团队需要更加深入地了解掌握相关技术,制订稳健可行的转型方案。



以上是关于分布式架构在银行IT系统的运用分析的主要内容,如果未能解决你的问题,请参考以下文章

《金融电子化》 曲家文:分布式架构应用实践及分布式技术在银行业应用趋势

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

中国银行分布式架构的创新研究与实践

《行业观察》第一期:分布式架构在农业银行的应用实践与展望

曲家文:分布式架构应用实践及分布式技术在银行业应用趋势

《金融电子化》励跃:数据中心分布式架构转型思考