基于金融行业的云数据库实践

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: 高级产品专家.时慢在2018云栖大会·上海峰会中做了题为《基于金融行业的云数据库实践》的分享,就金融行业应用架构的变迁、阿里云数据库、金融级可靠性原理揭秘、数据安全等方面的内容做了深入的分析。

摘要:高级产品专家.时慢在2018云栖大会·上海峰会中做了题为《基于金融行业的云数据库实践》的分享,就金融行业应用架构的变迁、阿里云数据库、金融级可靠性原理揭秘、数据安全等方面的内容做了深入的分析。

传统金融架构缺点

0dc78af8bd43738f7493e0e8f983db2bbd4f92e9 

很多金融企业都在考虑数据库是不是要做分布式的改造。那究竟什么样的业务场景才需要做数据库分布式架构呢?首先我们要明白传统金融行业应用架构和互联网的分布式应用架构有什么不同。其实从资源层面、数据层面、中间件层面、应用的开发层面等都有一个鲜明的对比。

1、资源层面。传统的应用架构在使用微型机、存储设备等一些物理硬件。而目前在互联网分布式应用下,阿里云在使用公有云、私有云、混合云等一些混合式的架构。

2、数据层面。传统的应用在使用集中化的数据库,比如Oracle、SQLserver等数据库,为什么叫集中化的数据库?因为传统应用为了实现多个节点之间共享和最大限度的保证数据的一致性,习惯把数据文件存放在一台集中化的存储设备里面。而在互联网分布式应用下,阿里云一直倡导去集中化的数据库的理念,所以目前阿里云在使用MySQL、HBase、Redis等一些分布式的架构。

3、中间件层面。传统应用在使用WebLogic/WAS/MQ等等,目前为了做一些微服务的改造,阿里云在使用Swarm/K8S/Mesos等等一些架构来基于微服务做一些调度。

4从应用架构、应用框架来说,传统的应用在使用Spring/Struts/SOA,现在阿里云在使用一些微服务架构。

5传统企业的开发运维采用可控发布,保守运维,经常一个新功能的发布动辄几周甚至几个月的时间才能上线。而现在阿里云在使用DevOps,应用可以随时上线。

因此在目前分布式的改造之下,阿里云认为传统金融行业对数据库有更高的要求,总结起来就是需要敏捷、分布式、低成本等特点。由于每一个微服务都对应一个小的数据库,需要大量的数据去支持一个业务,因此需要灵活性的调度,所以对敏捷性是有要求的。同时因为量级比较大,也希望实现分布式结构。并且由于使用的数据库多了,使用商业数据库成本太大,因此需要降低成本。

丰富的云上数据库

金融行业需要什么样的数据库呢?阿里云认为金融行业做互联网的创新,需要的数据库主要有以下特点:

1、自主可控:基于开放架构,基于开源的优化。

2、高可用:跨机房容灾,满足金融级业务系统全天候对外提供稳定可靠的客户服务。

3、高性能:互联网+金融的创新业务所需的流量弹性。

4、支持云:私有云和公有云互通一致的体感,降低使用和运维难度。

5、易运维:大体量自动化、运维体系合规化要求(基线、环境适配、管理体系等)。

6、数据安全: 审计&数据强一致性&多中心容灾部署。

7、成本优化:IT总体拥有成本必须下降。

 

983405c7ef0ac41924d970966c17f37ab076d589 

基于以上特点,阿里云提供了丰富的云上数据库。例如关系型数据库有MySQL、SQL Server PostgreSQL、PPAS(⾼高度兼容Oracle)、POLARDB。NoSQL数据库有Redis、MongoDB、HBase、Memcache。混合分析数据库有HybridDB for MySQL、HybridDB for PostgreSQL。搜索与时序数据库有OpenSearch、Elasticsearch、HiTSDB。另外还提供像DTS、DMS、HDM等数据库服务与工具。

fef231d8df686d2991b80d28ab7616ae70ecc7b6 

对于这么多数据库类型和不同数据库引擎而言,阿里云还有很多不同的版本。以MySQL为例,有基础版、高可用版、金融版。基础版是在ECS的基础上,加云盘上部署的MySQL数据库,它提供非常高的性价比,价格基本上跟你买一个ECS加一个云盘是一样的,但是阿里云在此之上已经集成好了数据库产品。高可用版做了主从数据的复制,可以保证数据库的数据可用性。当主节点宕机以后,阿里云可以快速的把业务切换到从节点去,从而保证数据库的可用性,同时还有很多企业级的功能,包括读写分离,读写分离是做数据库横向扩展最便捷的一种方式,应用不用做任何更改,把写入在主节点执行,把查询在只读节点执行,无形之中增强了主库的能力。

1c892539aa977f88e627ff716ef329dd97d33eaf 

金融版是跨三机房、三节点的三副本的版本,默认实现了同城三机房的容灾。金融版直接部署在三个机房,它可以保证数据在三个机房做复制,并且当一个机房不管是因为电源的故障还是因为光纤的故障而失效,整个数据库也不会受到影响,数据库主节点会自动迁移到另外两个机房之一,继续提供服务,同时金融版集成了SQL审计、高频监控等。

金融级可靠性原理揭秘

阿里云金融版数据库能做到数据的高可用、一致性主要从以下方面来考虑:

1、数据复制的演进——双通道binlog复制

de1512db5b27b3fb3594467e9f198314e4b70595 

做数据库的高可用是一定要做数据复制的。MySQL原生提供两种方式的复制,一种是异步复制,比如是一主一从,中间做异步复制。但是从节点势必会引起延迟,当主节点发生故障的时候,这个时候不知道从节点的数据是不是最新的,因此如果切换从节点,很有可能会造成数据的丢失。为了解决这个问题,MySQL官方提供了另一种方式,半同步复制。半同步复制也是一主一从,主节点在写入数据的同时,会产生日志,然后发送日志给从节点。因此当主节点宕机,至少可以保证从节点是有数据的。但是同时也会产生另一个问题,当主节点在等从节点响应的时候,如果发生网络的故障,最终还是降级成异步。因此阿里云在AliSQL上做了增强,叫做双通道复制,也就是说同时有一条半同步复制通道和异步复制通道,通过这两个通道可以确定性的得知当前主数据库和从数据库的数据是否一致。

2、拜占庭将军问题与分布式一致性算法

4bbc43577de267d051bc285a5eeeeafb3da2adc6 

拜占庭将军问题在分布式领域是一个比较传统的问题,为了解决拜占庭将军问题,十几年前有一个Paxos算法,但是Paxos算法过于复杂,在很长一段时间都没有计算机语言可以实现,后来Paxos算法做了简化,即Raft算法。通过Raft算法可以解决分布式一致性问题,因此阿里云把Raft算法放到了MySQL内核里面。底层维护了三个数据库节点,一主两备的复制拓扑结构意味着每个节点都是全量的数据,数据库事务日志(Log)从主库同步复制到所有的备库,当集群中超过半数的节点都写入成功后,事务才能完成提交。虽然是同步复制,但由于是三个点,因此单个节点的故障不会影响到实例整体的可用性。这种设计的好处显而易见,即在不损失可用性的情况下,通过较高的数据冗余度来换取更好的可靠性,同时支持跨机房的部署方式,具备机房容灾能力。 

3、对数据安全的重视

b83ad199b0faaff0ed4b85272085f38260bd43f4 

安全是根植于阿里云内核的原生功能。从安全的角度,阿里云做了事前、事中、事后三个方面的安全审计,事前阿里云可以做VPC专有网络、IP白名单、防暴力破解、灵活账号权限管理等,事中做了 SSL加密、TDE加密、拦截SQL注入攻击,事后可以做 SQL审计、克隆实例等。

划时代数据库 - POLARDB

fe1a4c1770a6a29880be14e0f3609c3cc1c1223c

2018年5月,阿里云发布了一款划时代的数据库POLARDB,POLARDB具有MySQL的特点,与MySQL达到了100%的兼容。只要业务系统是基于MySQL开发的,迁移到POLARDB上也毫无问题,而且性能上相比MySQL提升了6 - 10倍,最大规格支持64核,512G,支持的存储容量达到100TB。

8f8069c67426ce491cb404f232731902b1ef80c8 

POLARDB解决了TCP/IP协议原始的延迟问题,并且放弃了MySQL基于binlog的逻辑复制,而是基于innodb的redolog实现了物理复制去提升整个数据库的性能。所以阿里云也希望大家逐渐尝试,当MySQL遇到性能瓶颈,可以往POLARDB迁移,而不是分库分表等做一些复杂的操作。POLARDB经过 半年多试商用,目前已经正式上线,如果大家对POLARDB有任何疑问,都可以加阿里云高级产品专家时慢的钉钉咨询。

本文由云栖志愿小组黄小凡整理

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3月前
|
存储 负载均衡 安全
高效管理大型数据库:分片与复制的策略与实践
在当今数据驱动的世界中,管理和优化大型数据库系统是每个企业的关键任务。特别是在面对数据量迅速增长的情况下,如何确保系统的高可用性和性能成为重要挑战。本文探讨了两种核心技术——分片(Sharding)和复制(Replication),以及它们在实际应用中的策略与实践。通过对比这两种技术的优缺点,并结合具体案例分析,本文旨在为数据库管理员和开发者提供一套高效管理大型数据库的综合方案。
|
8天前
|
存储 人工智能 安全
Snowflake在云数据平台中的创新实践
Snowflake在云数据平台中的创新实践
27 4
|
8天前
|
存储 安全 算法
Snowflake在云数据平台中的创新实践
Snowflake在云数据平台中的创新实践
21 2
|
13天前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
31 3
|
25天前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第21天】本文探讨了MongoDB Atlas的核心特性、实践应用及对云原生数据库未来的思考。MongoDB Atlas作为MongoDB的云原生版本,提供全球分布式、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了云原生数据库的未来趋势,如架构灵活性、智能化运维和混合云支持,并分享了实施MongoDB Atlas的最佳实践。
|
20天前
|
机器学习/深度学习 存储 SQL
数据仓库革新:Snowflake在云数据平台中的创新实践
【10月更文挑战第27天】Snowflake作为云原生数据仓库的领导者,以其多租户、事务性、安全的特性,支持高度可扩展性和弹性,全面兼容SQL及多种数据类型。本文探讨了Snowflake在现代化数据仓库迁移、实时数据分析、数据存储与管理及机器学习集成等领域的创新实践和应用案例,展示了其在云数据平台中的强大优势和未来潜力。
34 2
|
26天前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第20天】本文探讨了MongoDB Atlas的核心特性、实践应用及对未来云原生数据库的思考。MongoDB Atlas作为云原生数据库服务,具备全球分布、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了实施MongoDB Atlas的最佳实践和职业心得,展望了云原生数据库的发展趋势。
|
21天前
|
存储 运维 Cloud Native
数据仓库革新:Snowflake在云数据平台中的创新实践
【10月更文挑战第26天】随着大数据时代的到来,数据仓库正经历重大变革。本文探讨了Snowflake在云数据平台中的创新应用,通过弹性扩展、高性能查询、数据安全、多数据源接入和云原生架构等最佳实践,展示了其独特优势,帮助企业提升数据处理和分析效率,保障数据安全,降低运维成本,推动业务快速发展。
41 2
|
28天前
|
SQL Java 数据库
Spring Boot与Flyway:数据库版本控制的自动化实践
【10月更文挑战第19天】 在软件开发中,数据库的版本控制是一个至关重要的环节,它确保了数据库结构的一致性和项目的顺利迭代。Spring Boot结合Flyway提供了一种自动化的数据库版本控制解决方案,极大地简化了数据库迁移管理。本文将详细介绍如何使用Spring Boot和Flyway实现数据库版本的自动化控制。
26 2
|
1月前
|
SQL 关系型数据库 MySQL
Go语言项目高效对接SQL数据库:实践技巧与方法
在Go语言项目中,与SQL数据库进行对接是一项基础且重要的任务
62 11