今天阿里数据库不再是简单的电商业务,而是涵盖了视频娱乐、IM、地图、在线零售、新零售、物流、在线旅游、音乐、IoT等纵多领域。2017年双十一交易额达1682亿,数据库交易峰值也以数十倍的速度在增长。超大规模的业务压力,在阿里巴巴内部淬炼出了一套完整的企业数据库解决方案:超大数据分库分表技术、毫秒级别的跨地区数据传输、秒级RPO的备份技术、混合云数据库管理、支撑数万研发的数据库devops平台、基于机器学习的智能数据库优化技术。
超大数据规模下的分库分表技术实践
在阿里巴巴去IOE的浪潮中,数据库面临的第一个问题就是,运行在普通PC Server上的MySQL在单机容量、性能等方面无法直接替换原来的存储和小型机架构。另外,如果单个MySQL数据库太大,给数据库备份、DDL变更等都会带来很大的复杂度。DRDS就是在这样的背景下产生的,通过DRDS的分库分表功能,化整为零,一方面让核心数据库的压力分到多个分库中,实现了性能和容量的巨大的扩展能力;另外,单个较小库表也给维护带来很大的便利。在刚刚过去的的双十一,交易核心库承担约32.5万/秒的交易创建,如果是传统的集中式架构很难想象需要怎样的硬件支撑。
毫秒级延迟的数据传输服务
在两年前,阿里巴巴上线了数据中心异地双活项目。阿里在全国很多地方都有数据中心,异地双活一个最大的挑战就是如何在毫秒的级别实现跨地区数据中心的数据同步。如果这个延迟很大,举个例子,卖家更改了一个商品描述、或者修改了价格,那么有的地区的用户可能很久才能看到,这对买家和买家体验上都是巨大的牺牲。
阿里云早在2010年就开始在数据库流技术上做了很大的投入,通过在网络传输、并发写入等方面的极致优化,保证了多数据中心毫秒级的数据复制延迟。
2015年,我们在阿里云上也以产品的形式输出阿里巴巴数据流技术:数据传输DTS(https://www.aliyun.com/product/dts )。除了复杂异地多活,DTS还可以解决很多企业内部数据流的问题,例如在线数据库上的数据变更,可能同时有数个下游需要这些数据,比如数据仓库、搜索、相关业务、实时大屏等。在云端,我们的一个典型的客户的场景,当有新的用户进行某个操作(或者是一次购买,或者是某次签到),那么下游的运营系统,可能要实时对用户行为进行一次分析,同时根据智能的分析,决定向用户推送某个实用的信息或者运营消息等。
基于数据流技术的,秒级RPO备份技术
数据传输DTS是通过日志获取的方式来获得数据变更。这项技术的另一个创新应用就是,实现秒级RPO的在线数据备份。我们先对数据库进行一次全量备份,然后使用DTS相同在线日志获取技术获取最新的数据库日志,然后对日志进行存储归档,从而实现秒级RPO的备份解决方案。
这次云栖大会,我们也重磅发布了我们“数据库备份”产品,让云上的用户也可以使用这项技术进行数据库备份。针对云环境的特殊性,我们新增了加密传输和存储模块,存储的目标也支持标准、低频、归档多种OSS存储类型,让用户可以更低成本、更安全的使用秒级RPO的数据备份解决。
支撑数十个机房,数十万实例的混合云数据库管控技术
阿里巴巴数据库管控系统发展至今已经到了第四代架构,第四代架构是基于BASE理论和微服务架构下完成,实现了管控系统的多机房容灾问题。另外,海量的数据库管理也带来更多的挑战:全网秒级监控让您轻松掌握数据库上千个指标,抓住数据库每一个细节;异地多活让你如何通过一键完成异地数据库搭建,实现异地数据库服务;一般管控系统更多聚焦在运维层面,而阿里的企业级服务还具备更多垂直的数据库能力,例如数据轨迹、数据回滚、数据库压测、业务大盘等。
支撑数万数据库用户的DevOps数据管理平台
企业规模快速发展,带来的两个大的挑战,管理的数据库数量巨大,使用数据库员工也非常多。但是,DBA团队却很难以相同的比率增长。具体的,我们发现,DBA业务压力巨大,需要处理事情繁多;同时,新入职的员工,对于数据库开发标准并不熟悉,给线上数据库的稳定性带了很大隐患。
既要有DBA的安全把控能力,又希望高效支撑大量业务的发展,阿里数据库团队研发了自己的企业数据库管理平台:iDB。企业内部的研发、测试等人员,可以使用iDB完成大部分数据库相关的操作,包括数据查询、数据变更、结构变更、实例申请等等。另外,iDB产品中还继承了大量DBA的经验,比如判断哪些DDL会锁表、InnoDB表结构设计是需要主要哪些问题等等。
iDB上可以闭环完成所有的数据库服务,包括实例申请、库表设计、变更发布、数据查询、数据变更、逻辑表查询、数据库下线等全生命周期的数据库实例管理。同时,通过平台集成的数据库能力,让研发有了更强数据库能力,也保障了线上业务的稳定。
基于机器学习的智能数据库性能优化技术
随着阿里巴巴快速扩张,传统的DBA支持的性能优化模式的弊端很快就体现出来:被动优化(监控/报警/慢SQL/应用报错等);优化过程耗时耗力且低效,较难形成闭环;优化结果受限于人的局限性;优化操作大规模复杂场景下缺乏扩展性;优化决策过程中数据价值缺失;DBA专家紧缺与数据库服务要求高效及时之间的矛盾越来越突出。
智能数据库性能优化技术在性能优化上分五大部分:收集、分析、预测、优化、验证。可以完整的、自助的完成优化并评估优化的效果。给企业带来多方面的价值。信息透明:向开发人员提供全面专业的数据库 信息分析和展示。自助化服务:全面专业的诊断优化建议,诊断流 程闭环,提供自助优化服务。自诊断、自优化:基于海量数据和机器学习的自诊断、自优化能力。降低成本:发现规模化优化点,优化资源管理,降低计算和存储成本。专家经验产品化:DBA专家优化经验转服务产品化,降低人工成本,提高服务质量和效率。主动优化:持续主动优化数据库性能,提高数据库稳定性。