作者 | 朱宗鹏 左延鹊
来源 | 阿里技术公众号
一 背景与趋势
云计算加速数据库系统演进
首先我们看一下云计算的发展给数据库系统带来了哪些变化?数据库系统是计算机领域三大基础软件系统之一,操作系统、编译系统、数据库系统。上世纪80年代初,数据库系统开始走上了历史舞台,早期的关系型数据库以甲骨文为代表,取得了巨大的商业成功。后来出现了开源的关系型数据库,比如MySQL、Postgres等。到90年代,随着关系型数据库的广泛应用,产生了大量的数据,分析这些结构化的数据对分析型的数据库系统提出了很高的要求。这就是为什么在90年代涌现出了一批分析型数据库系统。世纪更迭,2000年到2010年左右的这段时间是大数据技术走上历史舞台的时代。
数据仓库加速从BigData向Cloud-Native+FastData演进
大数据技术之所以会诞生,其原因可以总结为两个方面:
- 大数据的产生。随着互联网技术的蓬勃发展,尤其是以谷歌为代表的互联网公司,产生了大量的数据。谷歌做搜索推荐引擎,最核心的是不断的爬取全世界所有的网页,动态地对这些网页之间的关联关系进行分析、处理。
- 获取、处理、分析数据的方式不一样。比如说银行最简单的交易、转账,对隔离、一致性、持久性都有非常严格的要求。大数据就不一样,做搜索引擎,少爬一个网页,或者计算的时候没有把这个网页的影响算进去,对最终的搜索结果会有一点影响,但不是特别重要。所以,这种应用场景和传统的联机交易关系型数据库里面的强要求是完全不同的。
这时候大数据系统就出现了,谷歌发表了耳熟能详的分布式文件系统、分布式表格存储、MapReduce三大论文,这奠定了今天大数据的整个技术生态圈的基石。从2010年往后,我们又看到另外一个趋势,就是云计算的热度在这个时候逐渐升温,对我们的数据处理系统产生了一个非常大的影响。我们看到云原生技术在数据处理系统深入的应用,我们看到传统的关系型数据库和传统大数据生态正在快速发生融合。
每个人都在讲云计算,如何深入理解云计算这个概念呢?今天整个计算机领域的技术架构是基于60年代诞生的冯诺依曼架构的,其最核心的是两个部分,计算和存储,计算和存储是紧耦合在一起的。从冯诺依曼架构一直到云计算出现之前,所有的计算体系都是基于这样的架构来实现的。比如一台服务器如果CPU资源不够了,要做高并发处理,需要再加一台服务器。可能内存原本已经够用了,但是为了扩容计算资源带来了一定存储空间的浪费。在对IT资源做预算的时候,就需要按照今年接下来的业务的高峰的峰值评估系统容量,不然系统无法支撑业务,但是这样预算成本是浪费的。
这时候云计算出现了,云计算的本质就是利用分布式技术将资源高效池化,而对应用做到透明的集中式部署。
把云计算、数据库、以及大数据发展结合起来看,数据系统本质上就是对数据从生产、处理、消费、存储的一个全链路的过程。可以看到业界发展的趋势,资源的池化,以云原生、分布式的技术为基础,打造下一代的数据处理系统。我们之所以能够支撑双11,也是因为我们在不断的实践基于这些理念的一些思考。
数据库挑战(双11)
第一张图是我们历年双11的零点交易峰值的曲线,最新的2020年双11的零点的峰值是58万笔/秒。每一笔交易还会有一个拆单的动作,到数据库系统就是每秒几百万TPS。第二张图是我们系统零点负载的瞬间变化曲线。可以看到在一秒钟时间内系统负载瞬间爆发了145倍。
如果我们不是利用这种云原生的技术,只是简单依赖传统技术,是无法满足这种高并发、弹性、高可用的要求的。
我们阿里云利用这些技术在全球的数据库市场也取得了一些成绩。如今在云数据库这个市场营收份额是亚太第一,世界第三。刚发布的2019年到2020年的市场调查结果表明,我们已经进入了领导者象限,这也是中国的基础软件领域第一次进入领导者象限。最右边是市场份额,也是第一次在线下+线上的模式里面超过了甲骨文。
全球云数据库市场格局
看一下业界的趋势。甲骨文是大家都知道传统的数据库厂商,它把传统的基于IOE架构快速向云化发展,也是基于云原生的技术。Snowflake这家软件公司近几年发展迅猛,本质上也是做了资源池化、存储池化、存储计算分离。它把一些传统的数据库能力和传统大数据的能力融合在一起,而底下资源池化。此外,还支持多云部署。这是Snowflake成功的几个关键的因素。
数据库发展趋势 (云原生企业级一体化、数据库大数据一体化)
从架构的角度来讲,数据库系统有哪些变化?最左边就是传统的冯诺依曼架构。最右边是分布式架构。中间就是我们讲的云原生的架构,背后大量的利用了分布式技术。这种资源池化带来的弹性、高可用的能力是显而易见的。
数据库系统架构演进
这是今天三种不同的架构,我们认为有这么几个趋势:
- 大数据和数据库一体化的趋势
- 云原生和分布式技术结合的趋势
- 智能化的趋势
- 软硬件一体化,比如利用高速网络等来提升数据处理系统的性能和效率
- 安全可信,如何确保数据不可更改
这是下一代数据库的几个核心技术:
下一代企业级数据库关键技术
二 核心技术及产品
1 企业级云原生分布式数据库
下面结合我们的核心技术把这些背景、趋势实例化。
云原生关系型数据库PolarDB
第一个是云原生关系型数据库PolarDB。
云原生关系型数据库PolarDB
每个数据块也是分成三个物理节点,虽然下面大量使用分布式技术,但是不用关心分布式带来的挑战,比如说分库分表、分布式的查询,因为对应用是完全透明的,读写的是一份数据,做到了集中式部署。另外存储计算分离,在分钟级别部署一个新的计算节点,或者扩容存储节点。同时在性能上做了大量的优化,非常好的兼容了生态,比如说100%兼容PG,高度兼容甲骨文。性价比在商业数据库中有非常好的竞争优势,在实际的客户案例里面,利用PolarDB甲骨文兼容版替换掉现有的甲骨文,在性能一样的前提下,整体成本不到原来的三分之一。
兼容生态
- 100%兼容 MySQL 5.6, 5.7 and 8.0
- 100%兼容 PostgreSQL 11
- 高度兼容Oracle
存储计算分离
- 5分钟添加只读实例
- 15分钟Scale Up
智能负载均衡
- 透明读写分离
- 自定义应用访问路径
分布式共享存储
- 100TB存储空间
- 分钟备份数TB数据
用户态I/O stack + NVM + RDMA
- 最高6倍社区开源MySQL性能,100万QPS/秒
基于Redo log复制
- 备库/只读实例数据同步毫秒级延时
云原生分布式数据库PolarDB-X
除了云原生的架构,也有分布式架构版的PolarDB。在每个分区里面做这种三节点的架构,同时三节点是利用协议去做数据的一致性保障,而且三节点可以做到同城跨AZ部署。
云原生分布式数据库PolarDB-X
新一代云原生分布式数据库系统
下一代的系统是将云原生技术和分布式技术合二为一,上面是分布式,而下面是云原生的方式实现,带来的好处就是每个分区享受到了云原生带来弹性、高可用的能力,同时上面有分布式带来的水平拓展的能力,解决高并发可能带来的瓶颈问题。
新一代云原生分布式数据库系统
2 云原生数据仓库与数据湖
再看看数据库领域发生的一些其他的变化,比如说数据仓库。
一体化设计成为下一代数据分析系统的核心理念
云原生数据仓库
云原生的数据仓库本质上也是云原生的架构,存储池化、计算池化、存储计算分离。同时实现海量存储弹性,轻量化部署。就像现实生活中的仓库,所有物品都要分门别类放好,所以数据仓库是比较适合已经范式化的数据格式、业务类型比较固定的场景,性价比非常高。这是我们在云原生数仓方面做得一些工作,我们也利用这套架构支持了淘宝天猫对实时交易数据进行在线交互式分析和计算的需求。
云原生数据仓库
AnalyticDB 云原生数据仓库
数据湖
另外一个概念叫数据湖。湖面很平,湖底其实是参差不齐的,所以不同于数据仓库,数据湖的存储是多源异构的,只需要有一个统一的界面对这个数据进行分析、处理。我们打造一个云原生的数据湖解决方案,基于对象存储,对多源异构的数据存储进行统一的分析,非常低成本的实现弹性高可用的能力,并且满足安全性的要求。我们集团各个业务之间,可能需要访问一份数据,但是计算要进行隔离。云上很多用户有这种需求,可以用云原生的数据湖的产品和解决方案去满足这种弹性、高可用的场景。
DLA 云原生数据湖分析 (Serverless,统一元数据+开放存储与分析计算)
3 智能化、安全可信与生态工具
智能化
我们在管控这一层去实现异常检测、安全诊断,我们通过K8S这套编排技术,把多源异构的资源管理起来,打造智能化的运维管控平台。
云原生+智能化数据库管控平台
安全可信
我们做了全加密的数据库,数据进入内核以后不需要解密。今天的安全体系里面还有一个关键的薄弱点,就是数据进入大数据系统进行计算分析的时候必须进行解密。我们利用安全硬件技术做了全加密的流程和保护,实现了不解密也能进行数据加工和处理。
全加密云数据库- ApsaraDB RDS Encrypted
数据库生态工具
从传输、备份到管理,传输采用DTS,做端到端数据的同步,用DBS数据备份做多云多端的逻辑备份、物理备份,DMS做企业级的开发建模的流程。这一整套搭建起了阿里巴巴在双11的核心链路,比如各个单元之间的数据同步,核心数据的容灾备份,用DBS做数据的开发、管理,通过DMS做保障,这就是双11背后的数据库系统技术实践。
多云多端+混合云:数据高速公路,迁移、管理、备份、建仓
三 最佳实践
今年的疫情期间看到各行各业的一个非常大的变化,传统的离线业务和在线业务有一个快速融合,线上线下的边界越来越模糊。这带来的挑战是,业务的波峰波谷的变化越来越剧烈。这是疫情带来必然的变化。数字化的转型是一个必然存在的事实。这种背景下,我们云原生数据库、云原生数据仓,支持了不仅是双11,还有疫情期间各行各业尤其是在线教育、游戏等这些传统的线上线下边界变得越来越模糊的行业。
阿里云数据库技术对抗新冠疫情