一、浅谈云原生
(一)云原生,是未来使用云的标准方式
我认为云原生是未来使用云的标准方式,云计算资源无处不在、取之不尽、用之不竭,不用关心云资源在哪里、有多少。就像今天我们使用自来水一样,没有⼈会费尽心思考虑水从哪里来。
(二)阿里云全面引领云原生分布式数据库发展方向
阿里云在云原生数据库领域做了多年的实践、尝试与探索,与开发者一起成长。我们认为接下来云原生数据库必须关注和发展的领域有以下五个:
1)云原生分布式
将云原生和分布式技术深度融合,将Share Nothing、Share Storage、Share Everything架构深度融合。
2)智能化
利用AI、机器学习的技术,让数据库系统能够实现自动驾驶的能力,让开发者可以更好地管理和使用数据库的服务,如自动调参、索引推荐、异常检测等。
3)安全可信
安全可信的能力十分重要,比如说如何确保数据是全链路的、加密的、安全的,在存储、传输、计算过程中都能够提供安全可信的能力。
4)在离线一体化
减少数据链路,数据从在线处理、到在线分析、到离线的存储,能否提供一体化的体验,让开发者可以更简单、更便捷地访问和处理数据。
5)物联网多模
面对AIOT、物联网、车联网的蓬勃发展,能否打造一个面向开发者与应用的物联网多模的数据库。
以上是我们认为接下来非常重要的五个方向,也正因为在这些方向的耕耘,阿里云在去年获得了Gartner全球数据库领导者的突破。
二、阿里云数据库 – 数据管理生命周期
相信对于任何一个开发者而言,在数据层面最关心的是数据管理生命周期。下面站在开发者的视角,阐述数据的全链路生命周期到底是什么。
第一步是数据的生产和集成,在这一步如何更高效地做数据集成、数据清洗、数据传输、数据备份。当做完这步以后,下一步是数据的实时处理,这里面就是我们非常熟悉的传统关系型数据库、在线交易、OLTP等。紧接着就是数据分析和发现,用户如何做数据脱敏、数据的血缘关系等。
以上就是数据管理的生命全周期,我们在上面构建不同的解决方案,和开发者、合作伙伴一起面向应用、行业、客户去打造最终的Killer APP。
下面就从生命周期的各个阶段来阐述一下我们为开发者提供了哪些工具,开发者基于这些工具可以做哪些事情。
(一)数据生产与集成
数据生产与集成是数据的第一生命周期,就像新生儿一样,数据来到这个世界必须要经历采集,然后是存储和处理。
如上图所示,在这个过程中阿里云提供了DTS(Data Transmission Service),支持17种以上不同的数据源,可以做实时增量或者全量的同步,让应用非常简洁地实现数据从多元异构的数据源到多元异构的目标端实时的数据同步。
DBS可以实现跨云的备份、云上云下数据备份的统一,让数据在多云多端之间无缝流动。
DMS(Database Management Service)可以帮助用户做任务编排、数据分析、血缘分析等一系列事情。
以上构成了阿里云在数据生产和集成的基础能力。
(二)数据实时处理
数据生产和集成之后是数据的实时处理。
作为开发者,我们最关心的就是确保在任何情况下,在线交易场景的应用永远在线、数据永远不丢失,在这里我们提供了不同的选择。
1)云数据库 RDS:提供企业级数据库自治能力
首先,阿里云提供自己的云数据库RDS。
每个云厂商都有RDS,阿里云的RDS和其他RDS有什么不同呢?
发展到云原生数据库2.0,阿里云RDS最大的特点就是提供企业级的数据库自治能力(Autonomous Database Service)。
首先,通过Kubernetes构建一个云原生的管控平台,所有的管控能力都进行了微服务化和容器化部署,这样可以屏蔽底层多元异构的资源,为开发者提供一个云原生的开发环境和部署环境。
在这个上面,我们利用AI和Machine Learning的技术,构建了自动驾驶数据库平台。为开发者提供了许多能力,比如自动压测,我们可以自动生成压测数据,让它的工作负载与在真实环境几乎一样,这样开发者可以更好地调测在线系统。另外,我们提供了索引推荐、参数调优等一系列自动化自治服务能力。
此外,困扰开发者的许多问题,比如在线应用运行速度变得很慢,线程池被打满等,通过DAS(Database Autonomy Service)可以帮助开发者更快更好地发现与解决。
2)云原生关系型数据库 PolarDB
除了阿里云RDS之外,云原生数据库2.0最核心的能力之一就是云原生关系型数据库PolarDB。
为了让开发者能够更好地在PolarDB上开发应用,我们确保PolarDB 100% 兼容 MySQL、100% 兼容 PostgreSQL、高度兼容 Oracle 语法,让开发者实现轻松上云。
很多企业和开发者有向全球部署的需求,比如在线教育、游戏,需要我们的应用能够就近服务用户,阿里云推出了全球部署的能力,称为Global Database。这表示PolarDB可以实现跨AZ(Available Zone)的部署,实现RPO等于0,非常低的RTO。通过跨AZ的能力数据实时同步,可以实现用户在开发者的应用上就近访问。
为了让开发者更好地体验到阿里云的产品,我们推出了I/O带宽免费、性价比更高的PolarDB实例,价格仅为其他云厂商云原生数据库的30%—40%。
除此之外,我们还进行了性能测试。
我们用开发者非常熟悉的SysBench,连接事务处理、读写混合测试,测试了CPU 密集型和I/O密集型。
如上图所示,我们对比了PolarDB和CPU密集型、I/O密集型两个云原生数据库在SysBench上的标准性能测试,可以看到Polar DB在两种不同工作负载的情况下都展现出非常优异的性能。
3)云原生分布式数据库PolarDB-X
开发者经常面临海量数据高并发、超高并发的场景。针对这种场景,阿里云推出了PolarDB-X,即PolarDB的分布式版本,也就是将云原生架构存储计算分离,上面再构建一层架构来支持一体化分布式数据库。
PolarDB-X支持海量高并发、全局二级索引、HTAP复杂查询、分布式事务、在线弹性扩展。
以上图的全局二级索引为例,它支持ACID,这样让开发者可以更关注业务应用的开发,而不需要关注分库、分表这样复杂的逻辑。
我们用X-Paxos来支持两个数据副本、一个日志副本,而且我们的三副本可以做到跨AZ部署、支持同城跨机房的RPO等于0。
(三)数据分析与发现
实时数据库处理之后,当积累了大量的交易数据,如何在数据里面发现信息?这就来到了数据分析和发现阶段。
云原生数据仓库AnalyticDB(简称ADB)是云原生架构,计算存储分离,计算资源按需弹性,相对传统方式,成本可以下降3倍。
我们在这种云原生的架构上实现了冷热数据分层,1TB可以低至114元/月,一份存储多种计算是未来数据分析领域发展的大趋势,用一个存储多种计算引擎可以让我们适应工作负载,到底是离线的ETL、还是在线的交互式分析,整体成本可以大幅度下降。
利用前文的这些技术,可以帮助开发者实现在离线一体化的开发和应用,支持离线ETL以及在线的交互式分析,本质上就是将MTB架构和BSP模型完美地结合在一起。
我们也高度兼容生态,并且我们很快会推出Spark兼容版,将这些开源的生态在我们的云原生数仓ADB里面完美结合,实现基于负载的智能化调度和混合应用的支持。
(四)数据开发和管理
最后是数据开发和管理。
我们面向数据库开发者提供一站式的在线数据平台,阿里云的开发者社区支持了几十万数据库开发者利用DMS的能力,访问和管理多元异构的数据库资源。
DMS支持开发者们所有耳熟能详的数据库,从阿里云的PolarDB、PolarDB-X、RDS、AnalyticDB等,再到MySQL、Oracle、SQL Server等。
接入以后,它提供数据资产、数据库设计、数据库开发、数据集成、数据服务等一站式的能力,帮助开发者实现数据化运维、容灾/多活、T+1/实时/归档、数据集中处理、BI报表、多维分析等能力。
三、阿里云数据库开源发布
(一)阿里云数据库产品开源路径
阿里云作为全球云原生数据库的领导者,将成为第一家宣布核心的云原生数据库技术进行开源的云厂商,邀请开发者一起共建云原生数据库2.0。
作为全球数据库领导者,我们将云原生数据库PolarDB for PG Paxos高可用集群版开源,目前在Github上开源公开访问。
在9月份,我们会推出基于HLC混合时钟的高扩展分布式版本,在明年会推出Share Nothing的Sharding和插件化版本,在MySQL生态很早就开源了RDS AliSQL,如今做一个重磅升级,RDS会推出RDS GalaxySQL,之后会推出Paxos高可用性版,然后是云原生的分布式版。
(二)阿里云数据库开源计划:打造云原生分布式数据库生态
我们看一下具体做哪些事情?
上图中是我们为MySQL和PG生态两大社区准备开源的组件。
数据库正在加速云化,云原生以及分布式技术正在重塑数据库整个技术栈。阿里云在自身互联网业务和云数据库服务有丰富的实践经验,在高可用、分布式、云原生、存计分离有技术积累。这些技术以组件和系统的方式开放出来,与开源社区一起共建云原生分布式数据库生态。所有开源的组件都采用对开发者最友好的协议,遵循Apache Version 2.0协议,欢迎开发者和我们一起共建全球领先、有中国特色的云原生数据库2.0社区。
比如通过开源的PolarDB for PG版本,利用X-Paxos协议,帮助开发者快速实现RPO等于0,兼容及高可用数据库。抛弃传统的主备模式,走向三节点的模式,所有开源的组件都是即插即拔即用,让开发者快速享受到PolarDB的能力,并且基于现有的PG、MySQL生态持续发展,欢迎大家加入云原生数据库2.0的开源社区。
源码开放地址:https://github.com/alibaba/PolarDB-for-PostgreSQL
【相关阅读】
阿里云开源PolarDB数据库,与社区共建云原生分布式数据库生态