招商银行:打造业界的分布式数据库
随着云计算、大数据等技术的快速发展,招商银行与时俱进,引入这些先进的创新技术,实现业务上的高速发展,从而更好地服务客户。

文/招商银行总行数据中心应用与数据库管理室经理 田永江
作为中国第一个给客户撑伞、第一个有排队机、第一个给客户发牛奶的银行,30年来,招商银行迅猛发展,在英国权威金融杂志《银行家》公布的2018年全球银行1000强中位列第20位;在2018《财富》世界500强榜单中,招商银行名列第213位。
招商银行数字化转型的基石
近些年,随着云计算、大数据等技术的快速发展,招商银行与时俱进,引入这些先进的创新技术,实现业务上的高速发展,从而更好地服务客户。在招商银行的数字化变革过程中,以下三点尤为突出:
首先是基础设施的高速发展。从蛇口机房到南山数据中心,从南京灾备数据中心到上海数据中心,再到平湖数据中心,基础设施的逐步升级和扩容满足了招商银行不断增长的业务需求。
其次是通过人才培养及创新储备,应对科技对产业的冲击。招商银行管理层认为未来唯一有可能颠覆银行的就是科技,而不是严格的监管、小贷公司或者互联网金融企业,真正的冲击来自于科技。正因为如此,招商银行全行上下对科技的重视程度非常高,招商银行业务部门30%-40%的工作人员,将其30%-40%的精力投入到与科技相关的工作和学习上;招商银行还设立了专项基金来鼓励创新型项目以支持业务更好发展,并取得了丰硕的成果,例如,基于华为FusionInsight大数据解决方案构建的招商银行信用卡统一风控平台上线后,风险案件数降低50%,半年减少损失超亿元,信用卡发卡时间从15天左右缩短到5分钟。招商银行是最早实现刷脸取款的银行,现在也可以提供30万以下贷款分钟级放款、“一闪通”支付等创新服务。
最重要的是,招商银行始终以客户为中心,坚持“因您而变”的经营服务理念,始终记得为客户提供好服务是招商银行存在的价值——做好银行相关的金融服务,做金融科技(FinTech)其实都是为了办好业务,为客户服务。任何的技术发展都围绕着满足客户需求,改善客户体验,为客户创造更大的价值,包括创造更多的收益,提供更便捷、更快速、更贴心的服务等。
在变革过程中,招商银行数据中心应用与数据库管理室一直在思考如何为客户和业务提供更好的IT支撑服务,如何降低运营成本,比如尽量使用X86平台。针对系统组网和数据库架构,招商银行制定了严格的架构标准,如读写分离、分库、双活、无状态多活等,并建立了落地实施能力。随着这些标准架构的逐步推广,招商银行把数据库管理工作从以前那种死扛,就是一出问题必须要解决,否则业务就不能恢复,发展到现在的多数情况下即使出了问题也不影响业务,或者少影响业务。这是一个思路的演变过程,也是一种能力的巨大提升。

招商银行在这些领域的尝试与互联网金融企业的差异性在于:招商银行是在非常严格的监管以及为客户负责的前提下进行规划实施,是在考虑了可用性、安全性和客户体验的前提下,实现的高可用、高扩展和高弹性。现在招商银行在数据库架构标准和实施能力方面,丝毫不逊色于互联网企业。
而软件和应用会逐渐演变成公共的基础设施服务,并趋于垄断,谁能把它做到最好,大家就跟谁合作,银行只要用它的服务就好了,没必要自己去做。这种合作将是银行与互联网企业或科技公司合作的主要类型之一。但是,应用具体能解决什么问题,用在哪个业务中,怎么用好,这是银行需要思考的,别人代替不了。
打造金融业的分布式关系型数据库
无论做哪种业务创新,都是IT与数据先行,如何保障信息安全,如何优化数据库往往非常关键。
分布式数据库具有分库和横向扩展的特点,能够降低对单机单库的依赖,例如:同样的业务量,如果只靠一台服务器,那这台服务器的上限就是业务的上限。一旦服务器上限不能满足性能容量需求,就必须使用多个数据库。而多数据库会带来一些新问题,如管理成本高,原来管1-2个数据库,分库后可能达到10个甚至更多;另外,每个分数据库的故障率与单数据库的故障率相差无几,总体的可用率不一定上升。要解决这个问题,需要从资源与成本、可用性、开发难度等多方面进行考量,而分布式数据库能够解决这个问题,是数据库的一个发展方向。
为什么业界普遍认为分布式关系型数据库是发展方向呢?首先,关系型数据库是不会过时的,尽管它已经发展了三、四十年,但针对一致性要求很高的场景,还是在用,会一直发展下去。其次,单库遇到瓶颈,客户的数量、交易的并发量、吞吐量,都达到了前所未有的量级,并且仍然会加速发展。未来,一旦量子计算等技术在计算机领域取得突破,交易量势必会爆炸式增长,在这样的背景下,分布式关系型数据库是现阶段看来解决这个问题的最佳办法之一。
招商银行通过部署分布式数据库,首先能降低成本,包括硬件成本、人力成本、开发运维成本;其次是改善IT人员体验,包括降低开发和运维管理的难度及工作量;同时具备一些关键性能属性,如硬件资源利用率、单位硬件产出率等;最终是能够支持更大的业务量。
现有的开源数据库内核还达不到像Oracle这样好的性能和功能要求,并且会导致集群规模过大、性价比低、维护成本高。为此,招商银行决定与华为进行分布式数据库联合创新,打造一款有竞争力的、金融行业的分布式数据库产品,为招商银行业务带来更快更好的竞争优势。该分布式数据库的竞争力将瞄准高性能、高安全、高可靠、高扩展四个维度重点打造,采用Latch-Free、NUMA-ware内存加速、3D-XPoint新介质、高性能分布式事务、计算与存储分离、RDMA、GBP、Z-Paxos等技术,构建面向云的Scale-Up、Scale-Out、高可用、高性能能力。双方共同应对“Cloud First”的挑战,利用云、大数据、人工智能等先进技术,结合领先的金融业务实践和优秀资源,将业务与技术进行联接,联合进行分布式数据库技术的研发和产品应用,解决数据库应用上云的问题。
近几年,业界对数据库的能力边界划定逐渐清晰,简单来说,就是满足以一致性为核心的若干要求。数据库是整个数据处理的核心,解决所有的一致性难题。除此之外,应用自己能做、能解决的问题,不要交给数据库,一方面数据库可能并不擅长,另一方面,这属于杀鸡用牛刀,成本太高。一旦由数据库承担更多的这类工作,会影响数据库的各种能力,包括性能容量,同时出问题的机率也会更高。
基于以上考虑,凡是联机交易系统,招商银行都制定了非常明确的规范,什么事情能用数据库,什么事情不能用。这种做法可以简化对数据库的功能需求,从开发角度来讲,降低了研发数据库的难度,缩短了研发周期。
信任构筑合作基础
招商银行选择与华为合作,首先因为双方都秉持以客户为中心的理念。招商银行自成立之日起就是要为客户服务,让客户满意是招商银行存在的唯一价值;华为也是一直秉承“以客户为中心”的理念。两家企业都有追求卓越的精神,双方具备天生的尊重、信任、欣赏关系;其次,招商银行相信华为的实力,华为在数据库领域已有近十年的研发储备,内存数据库、磁盘数据库研发都有储备,并且已经在华为的一些业务领域进行了成功实践。
招商银行和华为都希望通过这个项目实现合作共赢。招商银行在银行业很有代表性,针对银行业的联机交易系统未来会怎么用,数据库应该如何用,需要提供什么样的服务和能力等问题,招商银行能够提出先进的业务需求和具有高挑战性的功能特性。华为相信招商银行的业务能力,相信双方合作研发的数据库不仅适用于银行,还将适用于其他行业。
另外,在公有云上有一款自主研发的数据库也是华为的期望。通过联合创新,一方面帮助华为把这一款数据库研发出来;另一方面招商银行在创新过程中能够一起来研究和把握数据库行业未来的技术发展趋势,参与核心数据库的规划和设计等,能力构建方面必将大有收获,特别是能够培养专业人才。
招商银行与华为的联合创新一共包括三个阶段:2018年是初创期,进行数据库试点商用;2019年进入成长期,达到业界领先水平;2020年达到稳定期,进行规模推广复制。招商银行负责需求和解决方案设计,华为OLTP数据库团队负责技术实现,利用华为在数据库领域的经验进行自主创新,基于新型硬件能力进行基础设施整合,实现云上部署和三高一低的总体目标(高可用、高安全、高性能、低成本),构筑差异化竞争力。在产品架构上将采取三层架构设计,顶层是分布式扩展层,中间层是企业级内核层,能够承载企业级业务的高性能以及通用数据库能力,最底层是分布式存储层,采用云存储技术,构筑软硬件垂直整合的高性能、高可用、Cloud Native云数据库能力。
双方的信任为合作构筑坚实的基础,联合创新能够从业务和技术两方面实现突破。双方联合打造的金融级分布式数据库,将能够为招商银行的数字化转型保驾护航,为招商银行成为“金融科技银行”贡献一份力量。