编者说明:在2018数据库大会上,招商银行的资深数据库架构师周伟,分享了招行金融科技数据开放平台的建设经验。这个主题引起了现场听众的广泛关注,我们在此整理发布出来,以其让更多用户能够借鉴到招商银行的成功经验(关注本公众号,回复2018DTCC ,可以在根目录下找到本文PPT)。

作者: 周伟 招商银行 数据库架构师

个人介绍:招商银行数据库管理室数据架构组Leader, 从事数据库行业14年,所负责的信用卡代授权数据架构, 解决了主机下移的性能问题,并适应FinTech时代高并发、 高可用、可扩展的业务场景,成功经受住双十一促销节海量支付请求的考验。

以下是分享内容整理。


招商银行行长田惠宇讲过这样一段话:金融科技银行就是『以科技敏捷带动业务敏捷』,创造最佳客户体验,实现效率、成本、风险的最佳平衡。在此思想指导之下,招商银行的金融科技建设迅速展开推进。

在金融科技的进程中,招商银行逐步从投资巨大、集中式的主机系统,迁移和转换到分布式架构,以X86和云计算为基础的新平台模式。

为贯彻招行『移动优先』战略,持续提升运维保障水平,招商银行制定了明确的『数据开放平台应对策略』,并提出了四大解决方案:

  1. 通过应用读写分离、数据多活等,构建金融高可用架构;

  2. 通过运维标准化、流程化、自动化,提供云服务能力;

  3. 加强DevOps建设,完善自动化发布;

  4. 进行分布式计算联合创新,构建弹性伸缩能力

在这四大原则的指导之下,具体的数据架构规划建设逐层展开。

在从主机下移到开放架构,首先需要获取的是高可用,这是金融系统最基础的保障要求。而Oracle提供的丰富MAA架构,正是高可用的成熟解决方案。比如Oracle的 Extended RAC,可以构建多站点的双活架构,确保业务的可用性。

(关于扩展RAC集群的知识,请参考云和恩墨的成功案例:通过扩展RAC集群,打造多站点数据库双活架构)

那么招商银行的数据库建设,有哪些具体的落地要求呢?

在实践中,招行形成了兼顾可用性和扩展性的5大要求:

  1. 读写分离;

  2. 分库分表;

  3. 数据双活;

  4. 无状态冗余;

  5. 数据放通;

其中前三项比较好理解,后两项我们展开说明一下。

无状态冗余是指在应急的时候,通过预先创建的数据库或表快速接管『无状态』的应用,使得业务可以在数据库服务能力受损时继续办理,确保业务连续性不受影响

在这种情况下,冗余库可能使的某些业务交易受损,但是核心流程不受影响,在主生产库恢复之后,可以通过数据合并确保数据的一致性。

编者注:这种『无状态冗余』充分体现了提前预案的重要性,很多企业在系统架构时,未考虑应急情况,则主生产流程上出现任何问题,都可以导致业务全面中断。所以,一个真正高可用的架构,要充分考虑各种可能出现的异常,并且做出提前的预案。

招商银行的『数据放通』是指,在关键路径上有不强依赖数据库的备选路径,在数据库正常情况下,业务操作通过首选路径,同步写入数据库;如果数据库不正常,则通过消息队列、本地缓存或者日志文件落地数据,通过异步写入数据库,使业务连续性不受数据库可用性的影响

为了确保整个系统的高可用,招商银行也对投产发布进行了严格的管控。在准入判断时,对于新增系统设备,必须满足『第二级准入条件』,也就是前面所说的5大要求,确保整体制度、高可用架构的规范落地

招商银行通过持续的DevOps建设,应用发布的自动化平台极大的提高了系统的发布效率,将以前以月计算的发布周期缩短到以周或者天计算。极大提高的应用的敏捷性:

在后端数据库环境的部署上,也实现了全流程的自动化,完成一套环境的构建,从一到两周缩短到不到两小时即可完成。

招商银行的数据库运维操作,遵循了从原子化标准化、到流程编排的自动化演进过程,已经实现了工具化和平台化,下图展示了一键导出导入的功能设计,从流程、脚本,到前端自助式的页面,效率大大提升。

在数据双活架构上,招商银行实现了成熟的设计和迭代落地,下图展示了代授权业务的异地数据双活设计,整体设计的概要如下:

  1. 深圳和上海双数据中心;

  2. 每个数据中心是2节点的RAC集群;

  3. 数据库根据客户号后两位将数据拆分;

  4. RAC不同节点访问数据严格隔离;

  5. 四个节点分别访问四部分数据;

  6. 深圳和上海之间通过OGG进行数据同步;

这个架构是兼顾性能和高可用的典型架构,数据访问隔离确保RAC集群的高性能,数据异地访问隔离,确保同步的有效性。在这个架构中,本地节点失效,RAC来保障,站点失效,异地来保障

为了减少对于生产的影响,确保日志的有效落地,在两地还分别设立了本地日志落地点,在此进行日志抽取分析:

对于无状态冗余系统,其高可用架构设计如下图:

对于某些查询密集型功能,其静态数据查询,实现了读写分离的设计。确保分散主库的读压力,例如,对于用户绑卡列表查询,这个展示在用户登录之后的信息,查询需求非常大,但是不做数据操作修改,最适合读写分离改造。所以按照以下逻辑架构进行了专门的设计:

最后,感谢周伟老师授权社区发表和分享招商银行的成功经验。他的团队正在扩充人手感兴趣的可以关注招聘信息:


资源下载

关注公众号:数据和云(OraNews)回复关键字获取

2018DTCC , 数据库大会PPT

2017DTC,2017 DTC 大会 PPT

DBALIFE ,“DBA 的一天”海报

DBA04 ,DBA 手记4 电子书

122ARCH ,Oracle 12.2体系结构图

2017OOW ,Oracle OpenWorld 资料

PRELECTION ,大讲堂讲师课程资料

近期文章

仅仅使用AWR做报告? 性能优化还未入门

实战课堂:一则CPU 100%的故障分析

杨廷琨:如何编写高效SQL(含PPT)

一份高达555页的技术PPT会是什么样子?

大象起舞:用PostgreSQL解海盗分金问题

招商银行周伟:Fintech数据开放平台之数据库军规和内功修炼(含PPT)相关推荐

  1. 新华智云基于MaxCompute建设媒体大数据开放平台

    摘要:随着自媒体的发展,传统媒体面临着巨大的压力和挑战,新华智云运用大数据和人工智能技术,致力于为媒体行业赋能.通过媒体大数据开放平台,将媒体行业全网数据汇总起来,借助平台数据处理能力和算法能力,将有 ...

  2. 2020版中国开放数据(Open Data)及政府数据开放平台汇总

    2020版中国开放数据(Open Data)及政府数据开放平台汇总 链接 北京市 北京市政务数据资源网 http://www.bjdata.gov.cn/jkfb/index.htm 56家单位.11 ...

  3. 基于MaxCompute的媒体大数据开放平台建设

    随着自媒体的发展,传统媒体面临着巨大的压力和挑战,新华智云运用大数据和人工智能技术,致力于为媒体行业赋能.通过媒体大数据开放平台,将媒体行业全网数据汇总起来,借助平台数据处理能力和算法能力,将有价值数 ...

  4. 数据集:国外最全的开放数据(Open Data)及政府数据开放平台汇总

    2015年国际科学理事会发布<Open Data in a Big Data World>协议.该协议是"2015年国际科学"的成果,是国际科学四大顶级代表(国际科学理 ...

  5. 美年大健康:健康大数据开放平台在路上

    "美年健康作为中国最大的大健康数据中心和最大的流量入口平台,目前已经与阿里云展开合作,双方共建云计算平台,并开展了健康体检.医学影像等核心大数据分析及合作应用.通过与阿里云的强强联手, 美年 ...

  6. 深圳:2018年底建成政府大数据开放平台

    最新一期的深圳市政府公报披露,深圳市政府印发<深圳市促进大数据发展行动计划(2016-2018年)>(下称<计划>),规定到2018年底,建成完善的大数据基础设施,形成较完善的 ...

  7. 中国气象网 气象数据开放平台 API使用方法 (Android)(已废弃)

    2016.7.25更新: 原来的接口已经停用了,现在换了http://www.weatherdt.com/ 这个基本都要求收费了,没有在研究,声明一下. ======================= ...

  8. 数据中台应用原型下载-深圳市政府数据开放平台低保真原型设计-Axure9

    一.深圳市数据开放平台地址: 深圳市政府数据开放平台 (sz.gov.cn) 二.深圳市数据开放平台低保真原型效果图: 1.首页 2.数据目录 3.创新比赛 4.成果展示 5.开发者中心 6.开放统计 ...

  9. 中国气象网 气象数据开放平台 API用法 (Android)

    因为要做个天气应用.须要找个天气的API.上网上搜了下都是那几个,并且基本都过时了.百度有个天气API,只是貌似仅仅能提供当天的.网上提到的中国气象接口的文章,大都用的时旧API,有的被封了,有的永远 ...

最新文章

  1. rmi 反序列化漏洞_提醒:Apache Dubbo存在反序列化漏洞
  2. sample solution
  3. asp.net服务器端跳转页面的三种方法
  4. 汉诺塔递归算法进阶_进阶python 1递归
  5. Android SlidingMenu 仿网易新闻客户端布局
  6. 一行Java代码实现游戏中交换装备
  7. RecycleView实现多布局可展开列表
  8. Java 类加载机制概述、类加载流程、自定义类加载器
  9. pmp 第六版 模拟卷2疑难问题
  10. C语言libxml用法,c语言libxml2库的安装和使用.....
  11. 三星入职测试GSAT(global samsung aptitude test)
  12. 百度分享异步加载问题、分页,无效果解决
  13. Python爬虫之scrapy_redis原理分析并实现断点续爬以及分布式爬虫
  14. 阿里云服务器:域名解析步骤
  15. 进口红酒清关流程|外贸行业 进口红酒清关流程
  16. Rancher简介和部署
  17. 哈佛学霸用Python分析相亲网站数据后,写了份完美约会经验贴
  18. Struts2的值栈和对象栈
  19. 新颖的自我介绍_有创意的自我介绍五篇
  20. 9.17 实现KEY1,KEY2,KEY3三个按键按下打印信息

热门文章

  1. raspberry pi_构建自己的Raspberry Pi龙卷风预警系统
  2. 简历人才库系统_人才招聘简历的3种选择
  3. 教程 | Hadoop集群搭建和简单应用
  4. JavaScript 存储Cookie
  5. Linux设置串口永久权限
  6. oracle获取上年年初,【Oracle】TRUNC:获取去年年初和年末,获取月初和月末;
  7. java怎么连elk_从Java应用程序登录到ELK而无需解析日志
  8. adfs服务器获取信息失败,在ADFS服务器上SAML LogOutRequest处理失败
  9. tikz 折线 箭头_问一个关于latex中,使用tikz画图的问题,如何使箭头上方的权值不居中(因为居中会互相重叠)...
  10. oracle如何快速查找,Oracle 如何快速查找和删除重复记录