开发者学习笔记【阿里云云数据库助理工程师(ACA)认证:云原生分布式数据库PolarDB-X(一)】
课程地址:https://edu.aliyun.com/course/3112080/lesson/19088
云原生分布式数据库PolarDB-X(一)
内容介绍:
一、分布式数据库架构演进之路
二、云原生分布式数据库PolarDB-X整体介绍
三、云原生分布式数据库PolarDB-X应用实践
课程目标
本节课程的目标主要包括:
1、了解数据库架构演进。
2、了解云原生分布式数据库PolarDB-X 的产品架构
3、分布式数据库典型的应用场景和用户案例
首先是分布式数据库架构演进之路。
一、分布式数据库架构演进之路
1.数据库系统架构演进
众所周知,关系型数据库自上世纪70年代由IBM研究员科德博士提出之后,历经几十年的发展,目前已经成为了企业业务数据的主要存储方式。
当前,客户主要的部署形态还是以单机主备的形态为主,典型的数据库代表,包括商用型的Oracle数据库以及传统的开源数据库MYSQL等等,这种部署方式,数据库依赖的是本地的CPU和内存。
随着互联网时代的到来,企业业务的发展,客户的数据需要更好的扩展性,同时希望保留一定兼容性的能力,基于以上需求,诞生出了云时代主要的共享形态的产品架构,包括阿里云的PolarDB、DWS的Aurora、腾讯的CynosDB、TaurusDB等。
这种架构的优势在兼容MYSQL的生态的情况下,易于实现事务的一致性、兼容性,无需多层的复杂管理,缺点是DB节点的扩展能力受限,当前存储扩展能力以及IO性能依赖高端共享存储的性能。
随着业务进一步发展,面向海量的数据存储以及千万级的高并发访问的业务场景,共享存储已经无法满足业务需求,在5G 时代的到来,有很多的数据库演进到分布式的水平拓展架构中,称为scale out,优势在于有良好的水平扩展能力,数据高可靠性,多副本的协议,无需共享存储,这种产品架构带来的劣势是计算及存储能力扩展行需要扩展情况下灵活性不足,对于分布式来说,分布式查询带有额外的开销。
2. 阿里云分布式数据库架构演进理念
3.
基于以上的分布式演进的架构,看一下阿里云分布式数据库架构演进的理念,分布式领域的技术站主要包括基于MYSQL生态的、原生MYSQL加上分布式计算的架构,可以很好的兼容MYSQL的这个开放生态,同时提供稳定可控的数据库服务。随着这个newSQL时代的到来,对于分布式的存储,分布式的计算,还有弹性的扩展能力,都带来很大的一个业务需求,这里面,以TiDB、Cockroach、YugabyteDB等等这样的一批产品,逐渐满足了客户一定的业务需求,提供了水平扩展和分布式的能力,polarDB-X同样,目前打造的2.0产品是支持这种分布式的架构。但是在公共云上发现基于polarDB、Aurora这种存储资源池化、极具弹性能力的这个数据库,得到了很多业务的认可,在这种需求的情况下,polarDB-X秉承的云原生加分布式的设计理念,同样支持基于这样的存储资源池化的架构,来进一步衍生出来它极具弹性的原生分布式产品架构。
3.阿里云数据库完整的闭环生态
了解完架构之后,再看一下polarDB-X在阿里云数据库整个的完整闭环生态里面处于什么位置,首先它主要面向的是在线的实时的数据处理能力,会兼容rds的存储,或者是基于共享存储的polarDB的存储,同时基于阿里云完整的工具生态链,可以实现对异构数据库的迁移上云。
同时在云上可以实现完整的生态打通,包括使用DPS的工具同步到下游的数仓、大数据,以及通过的DPS备份工具实现离线的备份、转储,同时面向业务开发提供了基于DMS的独性化的数据库开发和企业管理能力,在输出形态上,稍后也会展开,在公共云上、企业版、敏捷版上都有产品形态的输出,满足不同业务场景和客户对数据安全可靠要求的不同程度的需求。
4. polarDB-X 支撑双11集团电商业务
polarDB-X有效的支撑了阿里集团内部双11的电商业务。由于polarDB-X早期是以DRDS的分布式中间件的形态出现的,从阿里云诞生的第一天开始以及阿里巴巴双11的第一届开始,就已经参与到核心电商业务的高频发业务的理念,同时在最近的2020年双11,非常良好的支撑了双11 1.4亿次每秒的峰值的考验,在阿里云电商业务的周边,还输出了包括金融云、零售云、物流云等等不同云形态的一个数据库产品。
二、云原生分布式数据库PolarDB-X整体介绍
接下来介绍PolarDB-X六大主要特性,三大交互形态以及PolarDB-X 2.0的整体架构。
1. PolarDB-X 云原生分布式数据库六大特性
(1)云原生
基于存储计算分离架构,资源池化高效管理,实现分钟级弹性变配
(2)透明分布式
突破单机瓶颈上限,单机平滑演进,上下游生态兼容,在线扩缩容业务无需改造,承载千万级业务并发
(3)金融级可靠
强—致性事务保障,基于Paxos协议,数据副本跨可用区RPO为0,确保数据零丢失
(4)性能强劲
峰值TPS每秒可达1.4亿次,完美抵御2020年双十一流量峰值考验
(5)混合负载
在线数据实时分析,提供TP和AP强隔离性,历史归档压缩,海量PB级数据大集中
(6)自研产品
阿里巴巴自主研发、安全可控,符合国家相关行业认证资质要求
首先PolarDB-X主要的六大特性,第一个是云原生基于计算存储分离的架构,可以充分的利用云存储资源池化高效的管理,实现分钟级的弹性变配,充分满足业务的弹性需求。第二个特点是透明分布式,这个功能是能够实现PolarDB作为MYSQL的一个大的数据库的形态。支撑MYSQL从单机平滑演进的PolarDB-X,支撑的上下游的生态兼容,稍后也会展开介绍。
同时作为分布式数据库,原生就支持在线的扩缩容,对业务来的话透明分布式无需业务改造,可以承载千万级的业务并发。面向高可靠性,提供的是金融级的可靠性的标准,在保证事物在关系型数据库要求的强一致性前提下,同时对于存储节点,基于TP的协议能够实现数据副本的跨可用区,PO为零,确保数据的零丢失,性能方面作为分布式数据库可以实现按需的扩展计算资源和存储资源,实现线性的性能扩展能力。
在2020年双11已经看到了可以抵御每秒高达1.4亿次峰值的考验。作为5G LT时代,尤其是数字化转型的业务,客户希望将更多的数据存储在关系型数据库里面,提供一个实时的在线数据分析能力,同时也要承担主要的交易型数据,也是TP数据这样的强一致性和稳定的表现,在这种业务需求的情况下,提供了混合负载的htap的一个能力,保障了TP和AP强隔离,历史归档数据的压缩,以及支撑海量PP级数据的大集中。作为一款自研的产品,阿里巴巴自主研发,安全可控,符合国家相关的认证资质标准。
2. 混合云多形态的统一支付
虽然作为一个云原生分布式数据库,在公共云上提供了弹性的计算存储分离的架构,有一些客户同样在线下也会希望有产品形态输出,PolarDB-X这款产品不单单在公共云、行业云上有着良好的表现,同时也规模化的在企业版和敏捷版上输出,企业版的定位是面向中大规模的企业客户,提供同时容灾的能力,对于敏捷版客户来,就是面向的小规模的部署,同时支撑20到100个节点的规模。
目前PolarDB-X在整个业内已经支撑超过1000+以上的大型客户核心业务,同时输出形态也从早期的专有云到公共云,实现一个完整的混合云的输出的闭环。
3. PolarDB-X 2.0整体架构
(1)元数据服务(Global Meta Service,GMS)
提供全局授时服务(TSO)
维护Table/Schema、Statistic等Meta信息
维护账号、权限等安全信息
(2)存储节点(Date Node,DN)
基于多数派Paxos共识协议的高可靠存储
处理分布式MVCC事务的可见性判断
(3)计算节点(Compute Node,CN)
基于无状态的SQL引擎提供分布式路由和计算
处理分布式事务的2PC协调、全局索引维护等
(4)日志节点(Change Data Capture,cDC)
提供兼容MySQL生态的binlog协议和数据格式
提供兼容MySQL Replication主从复制的交互
接下来介绍一下今年主推的PolarDB-X2.0整体架构,作为一款面向newSQL的产品定位。PolarDB-X2.0产品,首先基于元数据的服务,提供全局一致的服务,同时在元数据服务里面还包含了维护Table/Schema、Statistic等元数据信息,此外,还会维护账号权限,包括推出了三权分类的这个能力,都会在这里面得到维护。
在存储节点方面,提供了基于多数派的Paxos共识协议,来保障存储节点多副本的一致性和可靠性,面向分布式的MVCC事务,也提供了可见性的判断。作为一个计算存储分离的架构,计算节点computer CN,基于无状态的SQL引擎来提供分布式路由和计算能力,基于强大的RBO和CPU的能力,也可以支持面向HTAP的混合负载的业务场景。
同时在处理分布式事务的时候,采用了两阶段的这个协调,以及全局索引的维护,使得应用的体验更加透明,更加友好。作为一个大号的MYSQL数据库,推出的日志节点的能力,打通了上下游的生态,提供兼容MYSQL生态的binlog协议和数据格式,同时提供跟MYSQL基于主从复制的交互,在2.0的形态下,可以基于PolarDB-X作为主库,MYSQL作为从库,或者两个交换作为MYSQL的从库这样的能力都是可以的。