一篇文章读懂阿里企业级数据库实践

数据库
超大规模的业务压力,在阿里巴巴内部淬炼出了一套完整的企业数据库解决方案:超大数据规模的分库分表技术、毫秒级别的跨地区数据传输、秒级RPO的备份技术、混合云数据库管理、支撑数万研发的数据库devops平台、基于机器学习的智能数据库优化技术。

“在昨天下午北京云栖大会TechInsight,阿里巴巴数据库团队的8位专家一同分享了阿里数据库***实践。超大规模的业务压力,在阿里巴巴内部淬炼出了一套完整的企业数据库解决方案:超大数据规模的分库分表技术、毫秒级别的跨地区数据传输、秒级RPO的备份技术、混合云数据库管理、支撑数万研发的数据库devops平台、基于机器学习的智能数据库优化技术。” 

钉钉、优酷、高德、盒马、菜鸟、飞猪、虾米、阿里智能,现在阿里巴巴的业务已经不再是几年前的淘宝天猫了。对于阿里数据库技术团队也不再是简单电商场景了。今天阿里的数据库不再是简单的电商业务,而是涵盖了视频娱乐、IM、地图、在线零售、新零售、物流、在线旅游、音乐、IoT等等纵多领域。同时,双十一交易从2012年的191亿增长到了2017年1682亿,数据库上的交易峰值也以数十倍的速度在增长。另外,阿里巴巴的全球化战略,给数据库基础服务带来新的挑战。 

丰富的业务场景、极端的业务压力、全球化的挑战,让阿里数据库技术团队淬炼出一套适合企业的数据库的实践。 

超大数据规模下的分库分表技术实践 

在阿里巴巴去IOE的浪潮中,数据库面临的***个问题就是,运行在普通PC Server上的MySQL在单机容量、性能等方面无法直接替换原来的存储和小型机架构。另外,如果单个MySQL数据库太大,给数据库备份、DDL变更等都会带来很大的复杂度。DRDS(内部版本为TDDL)就是在这样的背景下产生的,通过DRDS的分库分表功能,化整为零,一方面让核心数据库的压力分到多个分库中,实现了性能和容量的巨大的扩展能力;另外,单个较小库表也给维护带来很大的便利。在刚刚过去的的双十一,交易核心库承担约32.5万/秒的交易创建,如果是传统的集中式架构很难想象需要怎样的硬件支撑。

毫秒级延迟的数据传输服务 

在两年前,阿里巴巴上线了数据中心异地双活项目。阿里在全国很多地方都有数据中心,异地双活一个***的挑战就是如何在毫秒的级别实现跨地区数据中心的数据同步。如果这个延迟很大,举个例子,卖家更改了一个商品描述、或者修改了价格,那么有的地区的用户可能很久才能看到,这对买家和买家体验上都是巨大的牺牲。 

我们早在2010年就开始在数据库流技术做了很大的投入,通过在网络传输、并发写入等方面的***优化,保证了多数据中心毫秒级的数据复制延迟。 

2015年,我们在阿里云上也以产品的形式输出阿里巴巴数据流技术:数据传输DTS。除了复杂异地多活,DTS还可以解决很多企业内部数据流的问题,例如在线数据库上的数据变更,可能同时有数个下游需要这些数据,比如数据仓库、搜索、相关业务、实时大屏等。在云端,我们的一个典型的客户的场景,当有新的用户进行某个操作(或者是一次购买,或者是某次签到),那么下游的运营系统,可能要实时对用户行为进行一次分析,同时根据智能的分析,决定向用户推送某个实用的信息或者运营消息等。 

基于数据流技术的,秒级RPO备份技术 

数据传输DTS是通过日志获取的方式来获得数据变更。这项技术的另一个创新应用就是,实现秒级RPO的在线数据备份,这种备份构想已经通过“数据库备份DBS”产品在阿里云上赋能企业用户。我们先对数据库进行一次全量备份,然后使用DTS相同在线日志获取技术获取***的数据库日志,然后对日志进行存储归档,从而实现秒级RPO的备份解决方案。 

目前,云上的用户已经可以DBS进行数据库备份。针对云环境的特殊性,我们新增了加密传输和存储模块,存储的目标也支持标准、低频、归档多种OSS存储类型,让用户可以更低成本、更安全的使用秒级RPO的数据备份解决。 

支撑数十个机房,数十万实例的混合云数据库管控技术 

阿里巴巴数据库管控系统发展至今已经到了第四代架构,第四代架构是基于BASE理论和微服务架构下完成,实现了管控系统的多机房容灾问题。另外,海量的数据库管理也带来更多的挑战:全网秒级监控让您轻松掌握数据库上千个指标,抓住数据库每一个细节;异地多活让你如何通过一键完成异地数据库搭建,实现异地数据库服务;一般管控系统更多聚焦在运维层面,而阿里的企业级服务还具备更多垂直的数据库能力,例如数据轨迹、数据回滚、数据库压测、业务大盘等。 

支撑数万数据库用户的DevOps数据管理平台 

企业规模快速发展,带来的两个大的挑战,管理的数据库数量巨大,使用数据库员工也非常多。但是,DBA团队却很难以相同的比率增长。具体的,我们发现,DBA业务压力巨大,需要处理事情繁多;同时,新入职的员工,对于数据库开发标准并不熟悉,给线上数据库的稳定性带了很大隐患。 

既要有DBA的安全把控能力,又希望高效支撑大量业务的发展,阿里数据库团队研发了自己的企业数据库管理平台:iDB。企业内部的研发、测试等人员,可以使用iDB完成大部分数据库相关的操作,包括数据查询、数据变更、结构变更、实例申请等等。另外,iDB产品中还继承了大量DBA的经验,比如判断哪些DDL会锁表、InnoDB表结构设计是需要主要哪些问题等等。 

iDB上可以闭环完成所有的数据库服务,包括实例申请、库表设计、变更发布、数据查询、数据变更、逻辑表查询、数据库下线等全生命周期的数据库实例管理。同时,通过平台集成的数据库能力,让研发有了更强数据库能力,也保障了线上业务的稳定。

我们已经将iDB的设计理念通过数据管理DMS企业版进行云上输出,根据企业流程定制数据库DevOps生命周期,期待DMS企业版能够大放光彩。

基于机器学习的智能数据库性能优化技术 

随着阿里巴巴快速扩张,传统的DBA支持的性能优化模式的弊端很快就体现出来:被动优化(监控/报警/慢SQL/应用报错等);优化过程耗时耗力且低效,较难形成闭环;优化结果受限于人的局限性;优化操作大规模复杂场景下缺乏扩展性;优化决策过程中数据价值缺失;DBA专家紧缺与数据库服务要求高效及时之间的矛盾越来越突出。 

智能数据库性能优化技术在性能优化上分五大部分:收集、分析、预测、优化、验证。可以完整的、自助的完成优化并评估优化的效果。给企业带来多方面的价值。信息透明:向开发人员提供全面专业的数据库信息分析和展示。自助化服务:全面专业的诊断优化建议,诊断流 程闭环,提供自助优化服务。自诊断、自优化:基于海量数据和机器学习的自诊断、自优化能力。降低成本:发现规模化优化点,优化资源管理,降低计算和存储成本。专家经验产品化:DBA专家优化经验转服务产品化,降低人工成本,提高服务质量和效率。主动优化:持续主动优化数据库性能,提高数据库稳定性。 

责任编辑:庞桂玉 来源: 阿里巴巴数据库技术
相关推荐

2020-04-22 13:27:20

数据分析模块解决

2019-09-24 14:19:12

PythonC语言文章

2021-05-09 09:06:24

Python批处理命令

2018-04-09 16:35:10

数据库MySQLInnoDB

2017-09-04 13:44:00

Java

2017-06-08 22:41:34

框架标签

2016-07-01 14:55:07

开源数据库

2021-05-31 08:59:57

Java数据库访问JDBC

2021-04-22 09:01:35

MongoDB数据库NoSql数据库

2020-10-09 08:15:11

JsBridge

2015-10-22 14:32:44

微服务PaaS应用开发

2014-05-14 11:15:02

历史起源iOSAndroid

2023-05-12 08:19:12

Netty程序框架

2022-02-21 09:44:45

Git开源分布式

2019-04-17 15:16:00

Sparkshuffle算法

2021-04-09 08:40:51

网络保险网络安全网络风险

2021-06-30 00:20:12

Hangfire.NET平台

2017-09-05 08:52:37

Git程序员命令

2024-01-30 09:31:53

SQL语言数据库

2022-05-26 06:05:16

MySQL数据库
点赞
收藏

51CTO技术栈公众号