招商银行周伟:Fintech数据开放平台之数据库军规和内功修炼(含PPT)
编者说明:在2018数据库大会上,招商银行的资深数据库架构师周伟,分享了招行金融科技数据开放平台的建设经验。这个主题引起了现场听众的广泛关注,我们在此整理发布出来,以其让更多用户能够借鉴到招商银行的成功经验(关注本公众号,回复:2018DTCC ,可以在根目录下找到本文PPT)。
作者: 周伟 招商银行 数据库架构师
个人介绍:招商银行数据库管理室数据架构组Leader, 从事数据库行业14年,所负责的信用卡代授权数据架构, 解决了主机下移的性能问题,并适应FinTech时代高并发、 高可用、可扩展的业务场景,成功经受住双十一促销节海量支付请求的考验。
以下是分享内容整理。
招商银行行长田惠宇讲过这样一段话:金融科技银行就是『以科技敏捷带动业务敏捷』,创造最佳客户体验,实现效率、成本、风险的最佳平衡。在此思想指导之下,招商银行的金融科技建设迅速展开推进。
在金融科技的进程中,招商银行逐步从投资巨大、集中式的主机系统,迁移和转换到分布式架构,以X86和云计算为基础的新平台模式。
为贯彻招行『移动优先』战略,持续提升运维保障水平,招商银行制定了明确的『数据开放平台应对策略』,并提出了四大解决方案:
通过应用读写分离、数据多活等,构建金融高可用架构;
通过运维标准化、流程化、自动化,提供云服务能力;
加强DevOps建设,完善自动化发布;
进行分布式计算联合创新,构建弹性伸缩能力
在这四大原则的指导之下,具体的数据架构规划建设逐层展开。
在从主机下移到开放架构,首先需要获取的是高可用,这是金融系统最基础的保障要求。而Oracle提供的丰富MAA架构,正是高可用的成熟解决方案。比如Oracle的 Extended RAC,可以构建多站点的双活架构,确保业务的可用性。
(关于扩展RAC集群的知识,请参考云和恩墨的成功案例:通过扩展RAC集群,打造多站点数据库双活架构)
那么招商银行的数据库建设,有哪些具体的落地要求呢?
在实践中,招行形成了兼顾可用性和扩展性的5大要求:
读写分离;
分库分表;
数据双活;
无状态冗余;
数据放通;
其中前三项比较好理解,后两项我们展开说明一下。
无状态冗余是指在应急的时候,通过预先创建的数据库或表快速接管『无状态』的应用,使得业务可以在数据库服务能力受损时继续办理,确保业务连续性不受影响。
在这种情况下,冗余库可能使的某些业务交易受损,但是核心流程不受影响,在主生产库恢复之后,可以通过数据合并确保数据的一致性。
编者注:这种『无状态冗余』充分体现了提前预案的重要性,很多企业在系统架构时,未考虑应急情况,则主生产流程上出现任何问题,都可以导致业务全面中断。所以,一个真正高可用的架构,要充分考虑各种可能出现的异常,并且做出提前的预案。
招商银行的『数据放通』是指,在关键路径上有不强依赖数据库的备选路径,在数据库正常情况下,业务操作通过首选路径,同步写入数据库;如果数据库不正常,则通过消息队列、本地缓存或者日志文件落地数据,通过异步写入数据库,使业务连续性不受数据库可用性的影响。
为了确保整个系统的高可用,招商银行也对投产发布进行了严格的管控。在准入判断时,对于新增系统设备,必须满足『第二级准入条件』,也就是前面所说的5大要求,确保整体制度、高可用架构的规范落地:
招商银行通过持续的DevOps建设,应用发布的自动化平台极大的提高了系统的发布效率,将以前以月计算的发布周期缩短到以周或者天计算。极大提高的应用的敏捷性:
在后端数据库环境的部署上,也实现了全流程的自动化,完成一套环境的构建,从一到两周缩短到不到两小时即可完成。
招商银行的数据库运维操作,遵循了从原子化标准化、到流程编排的自动化演进过程,已经实现了工具化和平台化,下图展示了一键导出导入的功能设计,从流程、脚本,到前端自助式的页面,效率大大提升。
在数据双活架构上,招商银行实现了成熟的设计和迭代落地,下图展示了代授权业务的异地数据双活设计,整体设计的概要如下:
深圳和上海双数据中心;
每个数据中心是2节点的RAC集群;
数据库根据客户号后两位将数据拆分;
RAC不同节点访问数据严格隔离;
四个节点分别访问四部分数据;
深圳和上海之间通过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)相关推荐
- 新华智云基于MaxCompute建设媒体大数据开放平台
摘要:随着自媒体的发展,传统媒体面临着巨大的压力和挑战,新华智云运用大数据和人工智能技术,致力于为媒体行业赋能.通过媒体大数据开放平台,将媒体行业全网数据汇总起来,借助平台数据处理能力和算法能力,将有 ...
- 2020版中国开放数据(Open Data)及政府数据开放平台汇总
2020版中国开放数据(Open Data)及政府数据开放平台汇总 链接 北京市 北京市政务数据资源网 http://www.bjdata.gov.cn/jkfb/index.htm 56家单位.11 ...
- 基于MaxCompute的媒体大数据开放平台建设
随着自媒体的发展,传统媒体面临着巨大的压力和挑战,新华智云运用大数据和人工智能技术,致力于为媒体行业赋能.通过媒体大数据开放平台,将媒体行业全网数据汇总起来,借助平台数据处理能力和算法能力,将有价值数 ...
- 数据集:国外最全的开放数据(Open Data)及政府数据开放平台汇总
2015年国际科学理事会发布<Open Data in a Big Data World>协议.该协议是"2015年国际科学"的成果,是国际科学四大顶级代表(国际科学理 ...
- 美年大健康:健康大数据开放平台在路上
"美年健康作为中国最大的大健康数据中心和最大的流量入口平台,目前已经与阿里云展开合作,双方共建云计算平台,并开展了健康体检.医学影像等核心大数据分析及合作应用.通过与阿里云的强强联手, 美年 ...
- 深圳:2018年底建成政府大数据开放平台
最新一期的深圳市政府公报披露,深圳市政府印发<深圳市促进大数据发展行动计划(2016-2018年)>(下称<计划>),规定到2018年底,建成完善的大数据基础设施,形成较完善的 ...
- 中国气象网 气象数据开放平台 API使用方法 (Android)(已废弃)
2016.7.25更新: 原来的接口已经停用了,现在换了http://www.weatherdt.com/ 这个基本都要求收费了,没有在研究,声明一下. ======================= ...
- 数据中台应用原型下载-深圳市政府数据开放平台低保真原型设计-Axure9
一.深圳市数据开放平台地址: 深圳市政府数据开放平台 (sz.gov.cn) 二.深圳市数据开放平台低保真原型效果图: 1.首页 2.数据目录 3.创新比赛 4.成果展示 5.开发者中心 6.开放统计 ...
- 中国气象网 气象数据开放平台 API用法 (Android)
因为要做个天气应用.须要找个天气的API.上网上搜了下都是那几个,并且基本都过时了.百度有个天气API,只是貌似仅仅能提供当天的.网上提到的中国气象接口的文章,大都用的时旧API,有的被封了,有的永远 ...
最新文章
- rmi 反序列化漏洞_提醒:Apache Dubbo存在反序列化漏洞
- sample solution
- asp.net服务器端跳转页面的三种方法
- 汉诺塔递归算法进阶_进阶python 1递归
- Android SlidingMenu 仿网易新闻客户端布局
- 一行Java代码实现游戏中交换装备
- RecycleView实现多布局可展开列表
- Java 类加载机制概述、类加载流程、自定义类加载器
- pmp 第六版 模拟卷2疑难问题
- C语言libxml用法,c语言libxml2库的安装和使用.....
- 三星入职测试GSAT(global samsung aptitude test)
- 百度分享异步加载问题、分页,无效果解决
- Python爬虫之scrapy_redis原理分析并实现断点续爬以及分布式爬虫
- 阿里云服务器:域名解析步骤
- 进口红酒清关流程|外贸行业 进口红酒清关流程
- Rancher简介和部署
- 哈佛学霸用Python分析相亲网站数据后,写了份完美约会经验贴
- Struts2的值栈和对象栈
- 新颖的自我介绍_有创意的自我介绍五篇
- 9.17 实现KEY1,KEY2,KEY3三个按键按下打印信息
热门文章
- raspberry pi_构建自己的Raspberry Pi龙卷风预警系统
- 简历人才库系统_人才招聘简历的3种选择
- 教程 | Hadoop集群搭建和简单应用
- JavaScript 存储Cookie
- Linux设置串口永久权限
- oracle获取上年年初,【Oracle】TRUNC:获取去年年初和年末,获取月初和月末;
- java怎么连elk_从Java应用程序登录到ELK而无需解析日志
- adfs服务器获取信息失败,在ADFS服务器上SAML LogOutRequest处理失败
- tikz 折线 箭头_问一个关于latex中,使用tikz画图的问题,如何使箭头上方的权值不居中(因为居中会互相重叠)...
- oracle如何快速查找,Oracle 如何快速查找和删除重复记录