产品简介
DRDS 是一款基于 RDS for MySQL 、采用分库分表技术进行扩展的分布式 OLTP 数据库服务产品,产品目标旨在提升数据存储容量、并发吞吐、复杂计算效率三个方面的扩展性需求。
DRDS 核心能力采用标准关系型数据库技术实现,构建与公共云( cloud native ),配合完善的管控运维及产品化能力,使其具备稳定可靠、高度可扩展、持续可运维、类传统单机 MySQL 数据库体验的特点。
DRDS 在公共云和专有云沉淀多年,历经各界天猫双十一核心交易业务及各行业阿里云客户业务的考验。承载大量用户核心在线业务,横跨互联网、金融&支付、教育、通信、公共事业等多行业,是阿里巴巴集团内部所有在线核心业务及众多阿里云客户业务接入分布式数据库的事实标准。
产品特点
稳定
对于绝大部分应用而言,关系型数据库所承担的职责是整个数据管理系统中最为核心基础的,不光直接影响到终端用户的服务体验,同时也是业务数据的最后一道保险,所以稳定性是数据库最为核心的选型因素。
DRDS 的稳定性建立在对久经考验的 MySQL 合理使用的基础上,单机 MySQL 在高并发、大量数据存储和复杂计算场景下,呈现出相对弱势的状态。
DRDS 将数据拆分到多个 RDS MySQL,使每个 RDS MySQL 承担合适的并发、数据存储和计算负载,各个 RDS MySQL 处于稳定状态,DRDS 层面处理分布式逻辑a,最终得到一个具有稳定可靠、高度扩展性的分布式关系型数据库系统。
相比于全自研分布式 NewSQL 数据库,DRDS 产品始终以持续稳定性和可运维性作为第一要务,同时通过标准数据库技术弥补与单机数据库的体验差异,让用户便捷、快速地上手使用,充分发挥产品的业务价值。
高度可扩展
相比传统单机关系型数据库,DRDS 采用分层架构可确保在并发、计算、数据存储三个方面均可线性扩展,通过增加 DRDS 节点 和 RDS for MySQL 实例达到水平扩展效果。
相比基于分布式存储的新型 cloud native 数据库,理论上 DRDS 的扩展性没有上限,打消业务在快速发展的过程中针对数据库扩展性产生的后顾之忧与运维压力。
持续可运维
关系型数据库对于绝大部分应用而言需要 7 * 24 小时稳定工作,持续可运维是数据库的核心关键能力。
DRDS 在公共云和专有云持续深耕多年,提供丰富的产品化能力及完备的运维体系,通过完整的 OpenAPI 可让业务自行定时与集成。
生命周期管理
- 实例创建、重启、释放
- 数据库创建、删除
- 数据白屏化操作
容量管理
- 水平拆分、垂直拆分
- 读写分离
- 分析型只读实例
- 并发型只读实例
- 弹性变配
- 平滑扩容、热点扩容
- 拆分变更
安全与审计
- VPC
- IP 白名单
- 账号与权限管理
- SQL 审计与分析
容灾管理
- 一体化备份恢复(快速&一致性)
- SQL 闪回
- 表回收站
- 多可用区实例容灾部署
监控告警
- 自有分层监控
- 云监控接入与关键指标报警管理
数据生态
- DTS 数据迁移、同步、订阅
- 数据集成
- DMS 数据管理
- QuickBi 集成
- 搜索OpenSearch、Elasticsearch
- 大数据计算与数据仓库
标准类关系型数据库能力
传统关系型数据库具备良好的用户认知和使用习惯,DRDS 采用标准关系型数据库技术实现,在提供分布式扩展能力的基础之上,大幅兼容单机 MySQL 使用体验。
通过 RDS for MySQL 提供稳定的存储支持,DRDS 内核专注于分布式 SQL 层,整个分布式 SQL 层如同大部分单机关系型数据库,分为网络和协议层、SQL 解析层、优化层和执行层。其中优化层包含逻辑优化和物理优化,执行层包含单机两阶段执行、单机并行执行( Parallel Query )和多机并行执行( DAG ),采用多种传统单机数据库优化和执行技术。
与单机数据库不同的是,DRDS 将数据拆分逻辑加入到了 SQL 优化和执行过程中,与其他分布式数据库不同的是,在面向 OLTP 场景时,DRDS 着重关注因分布式而带来的代价,提供了包括自定义数据拆分、算子 move-arround 和 pushdown、join 和 aggregation 的 co-located 优化和计算、分布式事务的处理和优化、分布式全局二级索引、面对远超单机数据容量的外置 DAG 计算等技术。
适用场景
按应用类型选择
DRDS 能够很好的服务面向个人客户、消费者、设备的事务型业务,关注响应时间,SQL 偏向点查点写,具备较高并发特征,类似互联网、移动互联网、互联网+业务(通信、支付&金融、教育、出行、零售餐饮等)有非常好的效果。
针对传统的企业级应用,因为数据不断扩充,急需更强计算能力的在线事务数据库,DRDS 最近两年在复杂 SQL 优化、并行执行、分布式事务等方面进展较大,很好的满足这种诉求,因为天然的数据分片,数据处理并行度效果不错。
按容量选择
OLTP 业务领域,容量包含并发度、数据存储、复杂 SQL 响应时间 3 个维度。任意一个维度已经出现问题,或者按照业务规划,在不久的未来就会出现。那么 DRDS 是一个合适的选择。
对于业务发展初期选择分布式还是不选择分布式,总会面临很多考量,但是从数据库角度出发来看,业务使用的 SQL、数据类型、事务、索引、其他功能是确定的,对于大部分业务来说,只要 SQL 支持度、数据类型、事务、索引支持比较完整,并且有有效手段在各种极端情况下具备能力扩展,那么这项技术对于业务的未来发展,较低概率存在瓶颈效应,相反,它可能是所有方案中最有生命力的方式。
按成本选择
业务对于数据库的成本考量,分为 3 个部分,
1、业务开发上手使用难度,
2、长期稳定性和性能表现,
3、服务持有成本。
业务开发上手难度过高,往往会导致项目延期,业务效果差强人意。对于一个新型数据库而言,如何有效兼容现有流行数据库使用习惯、功能支持完整度至关重要。DRDS 兼容 MySQL 生态,对于主流的客户端、驱动有着较好兼容性,SQL 兼容层面,已经比较少碰到功能报错问题,业务迅速进行功能对接成为可能。
长期稳定性和性能表现,因为 DRDS 将数据、负载分担到多个 RDS 中,所以面对逐步加大的工作负载,DRDS 相比大规格单机数据库有着更好的稳定性表现,性能表现层面,因为天然分布式,并发表现是其强项,配合单机并行计算、多机 DAG 计算,能够覆盖大部分在线数据的复杂计算需求。
服务持有成本方面,按照相等负载对标其他方案, DRDS 使用相对低配 RDS ,展现出的成本曲线随着 RDS 数量上升,相比其他方案,成本曲线趋向平缓。DRDS 的客户群体中,不乏 1 个 DRDS 下挂载几十个 RDS 实现数据高效存取和计算的需求。
按应用生命周期发展选择
DRDS 除了提供水平拆分能力,也提供了垂直拆分能力,并且应对极端热点,提供热点拆分能力,很好的满足了业务在整个生命周期中对数据库的诉求,可在业务发展的各个阶段切入。每个阶段的转换,DRDS 又提供各项能力保驾护航。
产品架构
业务架构
DRDS 在业务构建数据管理体系所处的位置如下图所示, DRDS 承担业务面向在线事务数据存取与计算的诉求,通过数据集成、数据传输产品,和缓存产品、大数据生态配合使用。
内核架构
DRDS 使用体验兼容 MySQL 体系 , 采用标准关系型数据库技术实现,并且大幅度增强其适应分布式场景的能力,因为有 MySQL 存储支持,所以 DRDS 内核技术能力展现主要是在分布式 SQL 层。
整个分布式 SQL 层如同大部分传统单机关系型数据库,分为网络和协议层、SQL 解析层、优化层和执行层,其中优化层包含逻辑优化和物理优化,执行层包含单机两阶段执行、单机并行执行和多机并行执行,应用了多种传统单机数据库优化和执行技术。
和单机数据库不同的是,DRDS 将数据拆分逻辑加入到了 SQL 优化和执行过程中,并且和其他分布式数据库不同的是,在面向 OLTP 场景时,DRDS 特别关注分布式所带来的代价,提供了包括数据拆分的可定制化(指定拆分字段和算法)、算子 move-arround 和 pushdown 、 join 和 aggregation 的 co-located 优化和计算 、分布式事务的处理和优化、分布式全局二级索引、面对远超单机数据容量的外置 DAG 计算等核心技术。
部署架构
DRDS 服务部署在公有云上,采取多种方式确保生产安全,其中包括
- 支持 VPC、IP 白名单、非对称账号密码、TLS 等方式,确保数据服务安全
- 使用独享高性能物理资源、实例间充分隔离、支持多可用区实例,确保数据服务稳定
- 支撑系统采用多 region 隔离部署、核心数据服务 SLA 与管控 SLA 解绑,确保不出现系统性问题
目前 DRDS 已经在国内大部分 region 部署,并且具备海外输出能力,逐步开放海外各 region , 助力业务区域扩张。