数据库技术新版图 -Serverless 数据库

本文涉及的产品
函数计算FC,每月15万CU 3个月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 数据库的发展已走过近四十年,作为基础软件之一,数据库称得上是一个“古老”的领域。而随着新技术的涌现,这个传统的领域也正不断焕发出新的生机。如果说云时代的到来推动了数据库的变革,那么,与 Serverless 的结合,则再次为数据库的发展添了把火。Serverless 数据库会成为未来的趋势吗?又该如何让 Serverless 数据库从概念走向落地?亚马逊云科技 Tech Talk 特别邀请资深数据库专家马丽丽带来分享《 Serverless 数据库为应用开发带来的变革》。

为什么我们需要 Serverless 数据库?

从自建数据库到迁移上云,云数据库帮助企业和开发者省掉了很大一部分精力。开发者不再需要进行数据库的安装或备份工作,然而,数据库的选型难题却并未得到很好的解决。尽管云上数据库能够提供一些监控信息,但在多数场景下,工作负载是不均衡的,波峰和波谷往往差异极大,那么在这样的情况下该如何进行数据库选型呢?一般来说,有以下几个方式:

第一,为了避免数据库成为瓶颈,开发者可以按照波峰的方式进行部署。但工作负载不是始终都处于波峰,如果统一按照波峰位置部署数据库,就会带来资源浪费,提升成本。

第二,开发者可考虑按照波峰波谷的工作负载,配置一个平均值。这样成本的确有所节约,但问题是,一旦工作负载达到波峰,数据库将成为瓶颈,严重影响终端用户的体验。

第三,也是开发者现阶段最为常用的方式,即对不同指标进行监控,设置预警,比如设置当监测到 CPU 利用率到达 80% 的时候,系统发送告警信息,然后由开发或运维人员手动对数据库容量进行调整。尽管这样的方式的确可行,但却会耗费大量的时间成本。

从以上 3 种方式可以看出,在预算有限的情况下,依赖持续的监控和手动对数据库容量进行调整是非常困难的。是否有一种方式能够解决数据库这方面的痛点?Serverless 数据库正是这样一种切实有效的解决方案。

Serverless 数据库可按需求自动缩放配置,根据应用程序的需求自动扩展容量,并内置高可用和容错能力,采用 Serverless 数据库开发者将无需考虑选型问题,只需要关注如何设计数据库模式,怎样查询数据,及如何进行相应的优化即可。

image.png

Serverless 数据库给应用开发带来的改变

自动扩展容量,解决了开发者面临的数据库选型难的问题。那么,Serverless 数据库的出现,为应用开发又带来了哪些改变呢?马丽丽将 Serverless 数据库数据库的应用场景概括为以下四种。

  • 利用 Serverless 数据库开发多租户的 SaaS 应用

最初在 SaaS 应用的数据库实现上,对于多租户的数据管理来说,每个租户的数据都是单独放在一个数据库里的,因此每个租户都会占用一个数据库,这样就会产生成千上万个数据库,成本高昂。

针对这一问题,当时的解决办法是将多个用户的数据库部署同一个 Aurora 集群来提高利用率和成本效率,这样一定程度上能够解决多租户 SaaS 应用研发的痛点,但会牺牲单个数据用户数据库操作的粒度。

而采用 Serverless 数据库,可辅助进行多租户的 SaaS 应用开发,把每个租户对应到一个 Serverless 数据库,随着应用的变化,可对每个租户数据库的容量进行自动收缩或扩展。

  • 利用 Serverless 数据库支撑企业中同时发展的多个应用程序

在企业内部,也常常会出现要运行很多应用程序的情况,少则几百,多则甚至达到几千个应用程序,每个应用程序由一个或多个数据库支持。逐步发展的应用程序要求需要调整数据库容量,在有限预算内的调整各个数据库非常困难。而通过 Serverless 数据库就可以自动根据应用程序对数据库的需求进行调整。

  • 利用 Serverless 数据库简化分库分表的数据库容量选择

当数据放在单一的关系型数据库中容量受限时,往往需要进行分库分表操作。在进行分库分表时,分几份,如何分呢?需要写入可扩展性的应用程序将其数据库分散到多个节点以提高吞吐量,但预测每个节点的容量既困难又低效。创建的节点过少,必须在停机期间重新分配数据,创建的节点过多,成本较高,因为所有节点的利用率都不同。有了 Serverless 数据库,可以考虑相对灵活的设定容量,因为随着业务的变化,Serverless 数据库 可自动进行扩展和收缩,而不需要额外的运维。

  • 结合 Serverless 数据库实现全栈 Serverless 应用架构

在应用研发的过程中,越来越多的开发者接受了无服务器的理念,并尝试采用无服务器,所谓无服务器就是不需要管理服务器,从而实现自动缩放能力,并且按需付费、内置高可用、容错能力保证。当数据库也采用 Serverless,就可以实现端到端的 Serverless 架构,进一步提升用户体验。

Serverless 数据库在应用程序如何重新开发、维护,如多租户管理、分库分表、无服务器化等方面均起到不可替代的作用。那么该如何让 Serverless 数据库从抽象的概念走向具体的落地实践呢?

Serverless 数据库从概念到落地

事实上,Serverless 数据库并非这两年才有的新概念。早在 2004 年的时候,由于亚马逊的电商网站面临数据库扩展性的挑战,Serverless 数据库的探索之旅便已经启程。

当时,亚马逊内部自研了名为 Dynamo 的分布式键值存储,以解决数据库扩展性方面的挑战。在进行一系列内部实践后,亚马逊于 2012 年正式对外推出可商用的 Amazon DynamoDB,DynamoDB 在发布之初就被定义为 Serverless 架构。而当初发表的论文《Dynamo: Amazon's Highly Available Key-value Store》也凭借着对 NoSQL 的启发与深远影响,在操作系统领域顶级学术会议 SOSP2017 上,获得了 Hall of Fame Award 终身成就奖。如今,DynamoDB 已发展整整十年,并在众多领域都有着非常广泛的应用。与此同时,在 NoSQL 领域,亚马逊云科技也不断在 Serverless 数据库方面进行着探索,形成了完善的 Serverless 数据库服务体系。

image.png

马丽丽着重对专为云平台打造的关系型数据库 Amazon Aurora 展开介绍。

首先,在性能方面,Amazon Aurora 跟开源引擎完全兼容,可获得 5 倍于标准 MySQL 以及 3 倍于标准 PostgreSQL 的吞吐量,并行查询加速联机分析处理 (OLAP);其次,在高可用方面,Amazon Aurora 能实现可用区 (AZ)+1 的高可用,Global Database 可以完成跨区容灾备份;第三,在扩展性方面,Amazon Aurora 支持 15 个只读副本自动扩展,Aurora Serverless,高达 128T 存储;第四,在成本方面,Amazon Aurora 提供商用级数据库性能的同时,成本仅为其 1/10,存储无需预置按用量付费。

从架构上来看,Amazon Aurora 架构支持 Serverless。它采用计算与存储分离的架构,可以做到存储层的快速扩展,从而提升数据分析方面的能力。Amazon Aurora 还采用了独特的日志即数据库的理念,省去节点跟存储层数据传输的量,以达到性能的提升。

image.png

Amazon Aurora Serverless 目前为 V1 版本,马丽丽透露,V2 版本已支持预览版。相比于 V1 版本,V2 最显著的提升在于可立即扩容以支持高要求的应用程序。它能够一秒内实现 CPU 和内存资源的原地扩展,运行中的数十万项事务不会因为扩展受到影响。不仅如此,它还能持续监控和扩展计算节点。在保持状态的同时,对空闲实例后台移动 (例如,缓冲池、连接),缩放 scale down 速度是 V1 的 15 倍。

此外,V2 版本能够在容量调整时做到更细粒度,并能够依据多个维度进行容量调整。更值得一提的是 Amazon Aurora Serverless 支持跨 AZ 的高可用部署和读取扩展,通过持续的监控和尽可能大的利用缓冲池,V2 原地扩展可以做到秒级别。

在全球扩展方面,Aurora Serverless V2 支持全球数据库。全球数据库可以满足用户的两个需求:跨区域的故障恢复和增强应用程序的就近访问。如果在从区域部署 Aurora serverless V2 用来支持跨区域灾难恢复,它在空闲时会占用较低的资源,一旦发生故障恢复从区域提升为主区域时,Serverless 数据库能够快速扩容来支撑应用访问,这样能够带来空闲时数据库成本的节约。如果在从区域部署 Aurora serverless V2 用来支持本区域应用程序的就近访问,它可以根据本地应用程序的访问负载进行独立于主区域的自动扩展,进而提供更多的灵活性。随着国内越来越多企业出海诉求的涌现,Amazon Aurora Serverless V2 将在很大程度上满足业界对于全球数据库的需求。

去年 12 月,权威咨询机构 Gartner 发布了报告——2021 Gartner Magic Quadrant for Cloud Database Management System。亚马逊云科技连续七年被评为云数据库领导者,在“执行能力”上获得 20 家参评厂商的最高位置。

image.png

就像云技术的引入催生了一代创新一样,亚马逊云科技相信下一波创新浪潮是由数据驱动的。对于数据库,马丽丽在分享的最后谈到:“无服务器化架构是数据库未来发展的必然趋势之一。”

了解更多软件开发与相关领域知识,点击访问 InfoQ 官网:https://www.infoq.cn/,获取更多精彩内容!

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
1月前
|
数据库 索引
深入探索数据库索引技术:回表与索引下推解析
【10月更文挑战第15天】在数据库查询优化的领域中,回表和索引下推是两个核心概念,它们对于提高查询性能至关重要。本文将详细解释这两个术语,并探讨它们在数据库操作中的作用和影响。
50 3
|
1月前
|
数据库 索引
深入理解数据库索引技术:回表与索引下推详解
【10月更文挑战第23天】 在数据库查询性能优化中,索引的使用是提升查询效率的关键。然而,并非所有的索引都能直接加速查询。本文将深入探讨两个重要的数据库索引技术:回表和索引下推,解释它们的概念、工作原理以及对性能的影响。
60 3
|
2月前
|
存储 缓存 监控
数据库优化技术:提升性能与效率的关键策略
【10月更文挑战第15天】数据库优化技术:提升性能与效率的关键策略
79 8
|
2月前
|
存储 NoSQL 关系型数据库
数据库技术深度解析:从基础到进阶
【10月更文挑战第17天】数据库技术深度解析:从基础到进阶
78 0
|
1月前
|
负载均衡 网络协议 数据库
选择适合自己的数据库多实例负载均衡技术
【10月更文挑战第23天】选择适合自己的数据库多实例负载均衡技术需要全面考虑多种因素。通过深入的分析和评估,结合自身的实际情况,能够做出明智的决策,为数据库系统的高效运行提供有力保障。
111 61
|
15天前
|
关系型数据库 Serverless 分布式数据库
PolarDB Serverless 模式通过自动扩缩容技术,根据实际工作负载动态调整资源,提高系统灵活性与成本效益
PolarDB Serverless 模式通过自动扩缩容技术,根据实际工作负载动态调整资源,提高系统灵活性与成本效益。用户无需预配高固定资源,仅需为实际使用付费,有效应对流量突变,降低总体成本。示例代码展示了基本数据库操作,强调了合理规划、监控评估及结合其他云服务的重要性,助力企业数字化转型。
25 6
|
2月前
|
存储 运维 监控
Elasticsearch Serverless 高性价比智能日志分析关键技术解读
本文解析了Elasticsearch Serverless在智能日志分析领域的关键技术、优势及应用价值。
Elasticsearch Serverless 高性价比智能日志分析关键技术解读
|
1月前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
47 3
|
1月前
|
缓存 负载均衡 监控
数据库多实例的负载均衡技术深入
【10月更文挑战第23天】数据库多实例负载均衡技术是确保数据库系统高效运行的重要手段。通过合理选择负载均衡策略、实时监控实例状态、不断优化调整,能够实现资源的最优分配和系统性能的提升。在实际应用中,需要根据具体情况灵活运用各种负载均衡技术,并结合其他相关技术,以满足不断变化的业务需求。
|
1月前
|
Java 数据库连接 数据库
优化之路:Java连接池技术助力数据库性能飞跃
在Java应用开发中,数据库操作常成为性能瓶颈。频繁的数据库连接建立和断开增加了系统开销,导致性能下降。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接,显著减少连接开销,提升系统性能。文章详细介绍了连接池的优势、选择标准、使用方法及优化策略,帮助开发者实现数据库性能的飞跃。
30 4

热门文章

最新文章

相关产品

  • 函数计算