云数据库架构演进与实践

 

如今,大型企业如金融企业和银行等,在下一代的微服务架构转型要求下,需要基础软件和数据平台能够实现原生的云化,以满足微服务架构的需求。

微服务,也就是一种面向服务的,有特定边界的松散耦合的架构。

主要特点包括,每一个微服务是一个独立的自治系统,可以不依赖外部组件独立运行;对应用只暴露接口,用户可以灵活的调整过每个微服务的使用;业务粒度足够小。

在企业架构“云化”的过程中,数据库的云化是最为重要也是难度较大的一个部分。数据库云平台(dbPaaS)是一类支持弹性扩张、多租户、自我管理、并能够运行在云服务提供商的基础设施(IaaS)之上的数据库管理系统(DBMS)或存储管理系统。

根据Gartner报告预测,数据库云平台市场份额将会在下一个五年中翻倍,而70%的用户将开始使用dbPaaS数据库云平台。因此,为了满足各类应用程序对数据库云平台的需求,同时为了减少私有云部署中对大量不同类型数据存储产品的运维复杂性,数据库的架构演进将是未来十年数据库转型的主要方向之一。

 

云数据库的技术需求

在业务和应用进行“云化”的过程中,云数据库因为在整体架构中的重要地位,在云化改造中的重要性不言而喻。云数据库的核心需求有一下几点,主要有:

  • 弹性扩张能力:数据库容量需要根据业务弹性扩展,满足不同业务的容量需求;
  • 弹性部署与随需应变能力:除了数据库的存储,其他数据库功能也需要根据应用的需求,进行弹性的部署调整;
  • 数据可靠性与服务持续能力:数据的可靠安全,全时在线是所有业务的必须要求;
  • 计算存储分离:将计算和存储资源灵活配置,既可以选择多种计算方式也可以同时对应多种存储方式,满足更多业务需求;
  • 多模式存储能力:结构化、非结构化、半结构化和图等多类型数据的存储;
  • 自我管理能力:提供零停机维护、持续集成、以及滚动升级能力,提升开发人员效率;
  • 自我监控以及问题修复能力:故障监控和问题修复,降低运维成本;
  • 是否满足特定应用场景:针对特定场景的可插拔组件或工具;
  • 监管与安全:满足监管的要求,保证数据的安全。

云数据库需要满足这些技术要求,除了在功能上的具体提升,在整体架构上更需要进行升级和“进化”。

云数据库架构方向

云数据库架构是其能否承载应用架构“云化”的关键点,随着技术和业务的发展,云数据库的架构出现了几个主要的发展方向:

  • 在dbPaaS平台中,计算-存储层分离将会成为主流技术方向。通过将协议解析、计算等模块与底层存储解耦,数据库云平台将存储层进行分片以实现存储的弹性水平扩张,同时通过计算层的无状态设计允许计算层通过增加节点数量线性提升计算能力,已达到整个数据库云平台的弹性水平扩张。
  • 多模架构成为主流趋势,Multi-model的架构在一个数据库平台就可以支持多种存储方式,大大减少运维和开发的成本。传统数据库中例如IBM、Oracle等早已经提供关系型、OO、甚至XML等存储引擎。而新一代数据库则更提供NewSQL、JSON、图、对象存储等多种类型数据存储引擎。
  • 云数据库平台将会提供多种混合模式的数据服务 – 关系型与非关系型。该模式使用户能够在同一平台中结合不同数据存储类型的特点,为新一代IT应用系统提供混合数据存储解决方案。
  • 更符合微服务业务架构的要求,微服务要求各个服务模块之间尽量松耦合和可独立扩展。因此对于数据库,也同样会针对不同的业务,进行不同侧重的配置,无论是传统的“读写分离”或者现在流行的HTAP都是围绕这个要求展开的。

针对这几个主要的发展方向,我们就将详细来探讨云数据库的几个重要技术特点。

1)存储-SQL 分离

针对云数据库的需求和架构方向,一种新的数据库架构也在渐渐成为主流,也就是数据库的 “存储-SQL分离”架构。

存储-SQL分离架构,即指数据库的存储引擎和SQL引擎两部分互相松耦合独立工作的架构。通常这一架构,分为存储、SQL和元数据 三个部分。

  • 存储层:即数据库的存储引擎,存储引擎负责处理数据的存储管理。同时包含路由及事务控制,保障数据的ACID特性。此外,存储层还应还具备索引、查询条件过滤、排序等一系列功能。
  • SQL层:SQL层主要负责处理SQL请求,上层直接面对应用程序,将应用程序的访问请求分发给存储层,并且接受存储层返回的数据结果。
  • 元数据区:元数据区负责存储整个数据库的所有元数据信息。

典型的云数据库架构示意

对于这一架构,其实MySQL数据库当前的架构是有一些类似的。

MySQL数据库的SQL、存储分离的架构,在架构较为灵活,而其开源的生态也支持将不同的产品、引擎和工具进行充分的对接。在存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离。这种架构可以根据业务的需求和实际需要选择合适的存储引擎。

MySQL数据库整体技术模块架构

如上图所示,MySQL 的存储引擎可以挂载多种不同的产品,每个引擎都能提供不同的技术特性。其中包括InnoDB、MyISAM等架构。

存储与SQL分离的架构,目前在数据库业界十分流行,AWS的Aurora数据库在SQL访问上也采用了类似的架构。SequoiaDB 3.0 目前在MySQL兼容上,主要也是采取“SQL-存储分离“的架构。

SequoiaDB 3.0 MySQL 兼容逻辑架构

SequoiaDB 3.0使用了MySQL数据库原生的SQL解析器,天然支持MySQL协议并可以做到100%语法兼容。在该架构中,MySQL协议解析层作为SQL解析和分发的角色,直接面对应用程序,每一个MySQL服务的接入节点都是一个独立支持读写操作的MySQL进程。而数据存储和管理层,则完全由巨杉数据库的分布式数据库引擎实现。简单来说,SequoiaDB 3.0作为MySQL的InnoDB替换引擎,在天然支持MySQL的全部语法和功能的同时,提供了数据库存储层弹性扩张的能力。

2)多模Multi-Model

企业使用云数据库对接的应用越来越多,需求多种多样,传统的做法是在dbPaaS里面提供十几个不同的数据库产品分别应对各种需求,这样的方法在系统增加后,整体维护性和数据一致性管理成本很高,会影响到整个系统的使用。

云数据库的“多模”示意图

为了实现业务数据的统一管理和数据融合,新型数据库需要具备多模式(Multi-Model)数据管理和存储的能力。数据库多模Multi-Model是指同一个数据库支持多个存储引擎,可以同时满足应用程序对于结构化、半结构化、非结构化数据的统一管理需求。

通常来说,结构化数据特指表单类型的数据存储结构,典型应用包括银行核心交易等传统业务;而半结构化数据则在用户画像、物联网设备日志采集、应用点击流分析等场景中得到大规模使用;非结构化数据则对应着海量的的图片、视频、和文档处理等业务,在金融科技的发展下增长迅速。

多模式数据管理能力,使得金融级数据库能够进行跨部门、跨业务的数据统一存储与管理,实现多业务数据融合,支撑多样化的金融服务。

 

在架构上,刚刚提到的多模Multi-model也是针对云数据库需求的,则使得数据库使用一套数据管理体系可以支撑多种数据类型,因此支持多种业务模式,大大降低使用和运维的成本。

 

3)灾备和多活

对于应用程序来说,开发人员并不希望在设计应用的过程当中花费大量的精力来考虑底层数据高可用、灾备与多活时应用的切换逻辑。一般来说,一个成熟的dbPaaS层应当尽可能将底层的数据多副本同步、灾难切换、高可用接管等一系列操作进行封装,对于应用程序做到完全透明。

在传统的应用程序开发中,开发者使用中间件容器对数据源进行配置,底层使用F5或其他虚拟IP地址对多个数据源进行封装。但是,在云化的演变过程中,底层的数据库从单一节点向分布式节点过渡,对于上层的应用程序一方面希望尽可能减少应用程序设计时对分库分表的依赖,另一方面更希望在数据节点切换,甚至数据中心灾难接管的过程当中做到应用透明无感知。

SequoiaDB 3.0则引入了异地多活的架构,应用程序可以从任意接入节点以读写的方式访问本地数据库。在数据读写的过程当中,巨杉数据库能够从底层有效地进行数据一致性控制,对多个地区本地写入的数据进行远程复制,确保多个站点所读写的数据完全一致。

另外,灾难发生时巨杉数据库提供对应用程序透明的数据切换与接管机制,动态调整底层数据分布拓扑逻辑,能够动态有效地排除故障数据中心内的节点,做到其他站点无感知地继续提供数据服务。

多活相比于传统的高可用来说,不仅在性能和安全性上实现了更大的提升,而这一架构也能在多活数据中心中充分的应用软硬件设备,减少冗余。

云数据库架构优势

在技术驱动的需求下,云数据库架构具备了几项主要的业务价值:

  • 无需分库分表:此前,一种数据库分布式改造的方向是关系型数据库往分布式架构改造,MySQL分库分表就是其中一种方案。如今,存储-SQL分离的架构,在数据存储层已经实现原生分步实施,就避免了复杂冗长的“分库分表”方案。
  • 灵活支撑业务需求:存储和SQL层都可以实现服务、存储的弹性调整,灵活地支撑业务的需求。
  • 多存储引擎兼容:由于SQL和存储层的分离,在保持SQL接口不变的情况下,底层存储引擎可以支撑多个不同引擎,实现多种数据引擎的同时兼容。
  • 完全兼容已有应用:由于SQL层更多使用已有的标准SQL解析器,因此对于原有应用在SQL上可以实现完全的兼容,没有任何应用改造的投入。
  • 数据安全可用:分布式的存储和松耦合的架构,数据拥有安全的多副本,松耦合则大大增强了整个系统的容错性。相比传统单点架构,可以很好的实现数据双活甚至多活的架构,满足“两地三中心”“三地五中心”的合规监管安全要求。

云数据库应用场景

在新架构驱动下,云数据库目前在多个场景下已经开始实现落地应用。

传统交易服务

在传统中心化交易型业务中,高性能、高吞吐量的数据存储与处理能力,ACID以及安全都是非常重要的特性。例如,在一个典型的银行业务中,为了满足高峰时期的在线交易量,交易型数据库需要在亿级记录条数的数据库中每秒处理上千比交易。同时,为了满足生产系统的健壮性与可靠性,传统交易服务对于底层数据存储的安全性、高可用性、两地三中心部署能力都有着非常明确的要求。

因此云数据库既需要将传统交易型业务逐渐转移至云平台,同时也需要在满足安全性和合规监管方面,为用户提供更好的支持。

历史数据服务

近年来,随着IT技术与大数据的不断发展,越来越多的企业将数据作为自身宝贵的资产进行长期保留。这使得一些传统应用程序的历史数据包袱越来越重,最终数据库不堪重负导致应用整体性能低下。另一方面,随着大数据需求的不断增加,曾经已经归档的数据需要重新在线以满足在线化、实时化使用、查询和分析等等要求,这就要求将原有庞大的离线数据进行“在线化”。这些需求使得历史数据管理成为必须。

对于历史数据服务来说,由于对外提供应用程序的直接访问,其健壮性、可靠性、可配置一致性策略、性能与并发能力都是极为值得关注的。同时,相对传统交易服务来说,强一致和ACID反倒并不是最关注的点。鉴于一些企业直接将部分报表和自助查询运行在历史服务平台上,HTAP的能力也是值得关注的特性。

云数据库在扩展性和性能上通过分布式的架构满足了这些需求,将历史数据很好的管理起来。

实时在线服务

当前大部分企业的生产业务系统与后台的数据加工、分析与查询系统都是通过T+1的方式进行数据ETL。而最近随着流处理技术的兴起,越来越多的企业开始基于流处理技术构建T+0的数据总线,以实现不同业务流程之间实时数据对接。譬如说,用户资产视图就可以利用流处理技术,在提供用户全资产视图查询的优秀用户体验的同时,大幅度减轻其对后台生产系统造成的查询压力。

对于实时在线服务来说,数据库的层面最为关注性能、吞吐量、可靠性、与可用性。而对于强一致、ACID、与HTAP来说并不构成其最重要的特性。

在线业务的数据多样化和性能都需要云架构的数据库提供更灵活高效的支持。

影像存储服务

很多行业在业务运营中会产生大量纸质凭证,在信息化处理和监管要求下,这些纸质的凭证都需要扫描成影像文件并长期保存。随着互联网技术以及集中作业中心等理念的深入推广,大量行业普遍需要建设统一的影像管理平台。

对于典型的影像平台来说,其存储的数据总体量极大,使用传统存储的单位成本很高,需要进行生命周期管理时对运维又非常复杂。因此,对于逐年递增的海量影像数据来说,大部分企业都存在查询难、管理难、扩容难的几大痛点。

同时,由于影像存储服务已经成为很多流程的一部分,其稳定性、可靠性与健壮性与核心交易系统处于同一级别。因此,影像存储服务最关注的层面在于可靠性、一致性、可扩展性、吞吐量、以及非结构化存储的多模特性。而其对于交易的ACID、HTAP等特性并不重点关注。

小结

云数据库是未来数据库发展的一个重要方向,云数据库架构随着云化要求也需要进行相应的迭代,未来在云数据库架构的演进还会随着需求的变化而持续发展。

其中对于多模数据引擎、计算存储分离等将是云数据库技术演进的重点方向。

巨杉也会持续关注架构的迭代演进,同时也在技术和架构上针对云架构进行更多的创新。

原文地址:https://www.cnblogs.com/sequoiadbsql/p/9320657.html

时间: 2024-11-05 16:05:49

云数据库架构演进与实践的相关文章

零基础学云计算及云数据库架构师【Linux系统配置及网络配置12.28-1.4】

这周内容很多都是分析系统底层信息内容,同学们似乎都是似懂非懂,老师基本是挑一些重点说一下,记个笔记,我还是根据老师讲的,再对照鸟哥梳理一遍.关于开机流程分析,rhel6和rhel7有很大的不同,服务也是,需要额外梳理一下. 这周生病了,从怀孕到生娃,再到现在,将近两年时间没生过病,没想到2015年最后几天却重感冒了,还好迎来元旦,可以稍微休息一下,养养精神!新年快乐哈! 本周的内容需要实际操作的其实不多,但是需要理解的特别多,所以需要厘清关系,理清思路,多用形象深动的例子来理解会好些. 本周内容

云数据库 MariaDB 版

基于MariaDB企业版全球独家合作认证,提供Oracle兼容性及众多企业级数据库特性.支持包括MySQL InnoDB等多种存储引擎,为不同需求的用户提供灵活的选择. 请看视频简介 优势 Oracle兼容性支持包括PL/SQL.序列.动态SQL及Package等语法和对象 企业版独家合作全球唯一MariaDB企业版合作云厂商,提供更高的数据库稳定性保障 支持多种存储引擎针对不同业务需求,您可以灵活选用InnoDB.MyRocks储存引擎 企业级数据库特性支持窗口函数.在线数据溯源恢复.在线添加

大数据时代数据库-云HBase架构&生态&实践

摘要: 2018第九届中国数据库技术大会,阿里云高级技术专家.架构师封神(曹龙)带来题为大数据时代数据库-云HBase架构&生态&实践的演讲.主要内容有三个方面:首先介绍了业务挑战带来的架构演进,其次分析了ApsaraDB HBase及生态,最后分享了大数据数据库的实际案例. 2018第九届中国数据库技术大会,阿里云高级技术专家.架构师封神(曹龙)带来题为大数据时代数据库-云HBase架构&生态&实践的演讲.主要内容有三个方面:首先介绍了业务挑战带来的架构演进,其次分析了A

【IT名人堂】何云飞:阿里云数据库的架构演进之路

[IT名人堂]何云飞:阿里云数据库的架构演进之路 原文转载自:IT168 ? 如果说淘宝革了零售的命,那么DT革了企业IT消费的命.在阿里巴巴看来,DT时代,企业IT消费的模式变成了“云服务+数据”,阿里云将打造一个像淘宝电商一样多方共赢的云生态.而作为阿里云庞大帝国的重要成员,阿里云RDS为社交网站.电子商务网站.手机App提供了可靠的数据存储服务.好的架构不是设计出来的,而是演化出来的,那么RDS经历了怎样的架构演进?本期名人堂我们邀请到了阿里云RDS首席产品架构师何云飞,为我们揭秘RDS的

《云计算架构技术与实践》连载21:2.4.6 数据库云

版权所有,未经华为书面许可,请勿转载或转发. 2.4.6 数据库云 基于云计算总体架构下的数据库云解决方案,如图2-34所示. 图2-34 数据库云解决方案架构子系统组合 数据库云主要指的是基于云平台构建的结构化/半结构化数据库处理系统. 数据库云可以基于虚拟化平台,也可以基于物理平台直接构建. 在性能要求高的场景下,一般基于物理平台构建,系统无需弹性计算部分(图中虚线表现):而在要求容量很大,应用用户很多的情况下,则可采用基于虚拟化平台构建的形式. 数据库云一般以数据库一体机的形态出现,会在以

Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式百度云实战分享

muke慕课实战课程分享QQ313675301 新增课程: Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式百度云实战分享 后端开发: 1.高级java软件架构师实战培训视频教程2.大型SpringMVC,Mybatis,Redis,Solr,Nginx,SSM分布式电商项目视频教程3.Spark Streaming实时流处理项目实战4.Java校招面试 Google面试官亲授5.Java开发企业级权限管理系统6.Java大牛 带你从0到上线开发企业级电商项目7.Java

基于AWS的云服务架构最佳实践

ZZ from: http://blog.csdn.net/wireless_com/article/details/43305701 近年来,对于打造高度可扩展的应用程序,软件架构师们挖掘了若干相关理念,并以最佳实践的方式加以实施.在今天的"信息时代",这些理念更加适用于不断增长的数据集,不可预知的流量模式,以及快速响应时间的需求.本文将强调并重申其中的一些传统观念,并讨论他们如何在融合云计算的发展,还将讨论由于云计算的动态性而产生的一些前所未有的概念(如弹性). 本文的目标是面向云

《云计算架构技术与实践》之云接入的典型应用

桌面云的概念和价值 云接入的典型应用就是我们最常见到的桌面云. 什么是桌面云,桌面云的定义是:"可以通过瘦客户端或者其他任何与网络相连的设备来访问跨平台的应用程序以及整个客户桌面."也就是说我们只需要一个瘦客户端设备,或者其他任何可以连接网络的设备,通过专用程序或者浏览器,就可以访问驻留在服务器端的个人桌面以及各种应用,并且用户体验和我们使用传统的个人电脑是一模一 样的. 桌面云的业务价值很多,除了上面提到的随时随地访问桌面以外,还有下面一些重要的业务价值. 集中化管理 在使用传统桌面

什么是最适合云数据库的架构设计?

分布式数据库技术发展多年,但是在应用.业务的驱动下,分布式数据库的架构一直在不断发展和演进. 开源金融级分布式数据库SequoiaDB,经过6年的研发,坚持从零开始打造数据库核心引擎.在技术探索中,选择了更适合云数据库场景的架构和引擎设计.本文也将详细展开,介绍目前SequoiaDB的架构与设计理念. SequoiaDB近日也完成由嘉实投资领投的C轮融资.本轮的领投方为嘉实投资,启明创投与DCM作为早期投资方跟投.SequoiaDB巨杉数据库一直坚持技术驱动产品,专注打造金融级分布式数据库,成为