开工福利|免费学 2200+ 精品线上课,企业成员人人可得! 了解详情
写点什么

无服务器计算能够颠覆关系型数据库市场吗?

  • 2018-07-21
  • 本文字数:2517 字

    阅读完需:约 8 分钟

无服务器计算(Serverless Computing)过去两年的发展势头迅猛,其概念在于转向不需要基础设施管理的应用程序,这些应用程序只在活跃的时候才会消耗资源。在公有云领域,无服务器通常是指供应商根据工作负载动态地管理服务器资源。 AWS Lambda 是无服务器计算的领头羊,微软 Azure Functions(及其他)也迅速迎头赶上。无服务器框架的定价通常基于应用程序消耗的实际资源量,而不是预先购买的容量。用于无状态应用程序的无服务器解决方案在下一代软件架构中将得到普及,那么这将给关系型数据库留有多少余地?关系型数据库对于很多(如果不是大多数)应用程序来说仍然是一个关键组件。

在过去几年中,当说到部署关系数据库时,完全可以参考那些可靠且经过验证的模型:从庞大的单体应用到微服务,再到 PaaS 解决方案。我们既可以部署单个“大型”服务器,运行一个大型单体或可供数十个应用程序使用的数据库,也可以选择微服务架构,开发一系列独立的小型模块化服务,每个服务都可以实现独特的功能和业务目标。云解决方案为我们提供了通过基础设施即代码来部署数据库的能力,我们甚至可以利用平台即服务解决方案,从而大大降低数据库的运营开销和复杂性。

然而,所有这些模型仍然依赖数据库服务器,无论是在本地、云端还是使用 PaaS。我们可以基于预测的工作负载特征来调配数据库容量,这些特征决定了服务器的大小和配置。当然,我们可以根据实际工作负载(取决于所使用的数据库技术)来伸缩数据库,不过这一过程并不一定需要经常进行。

相反,我们应该根据周期性事件进行伸缩,例如即将到来的假日,节假日将为电子商务应用程序生成额外的交易,或者为公司的 SaaS 产品新增的客户而伸缩。如果工作负载是相对可预测或相对稳定的,那么使用专用数据库服务器就说得过去。尽管流量可能会出现高峰和低谷,但它们通常遵循可预测的模式。我们可能需要在一年中对数据库进行多次伸缩,但并不会在一天中进行多次。不经常进行伸缩的数据库模型最适合传统应用。

下一代应用程序引入了下一代挑战。我们所面对的工作负载可能是零星、间歇性的,而且难以预料。例如,数据库查询或事务的流量高峰可能每天(甚至每个月)只持续几分钟或几小时。以之前的电子商务应用程序为例,为了以防万一,我们的数据库如何在不必事先过度配置资源的情况下应对限时抢购事件?对于其他工作负载也存在类似的挑战,从在线游戏到股票交易,甚至是数据分析(分析套件可能在一天中的几个小时产生大量的数据库负载)。大多数数据库管理员告诉我们,我们应该根据预测的高峰工作负载调整数据库的大小。如果说伸缩数据库是一项繁杂而琐碎的工作,那么这绝对算得上是一种传统的智慧和正确的范式。

无服务器数据库意味着什么?

要在数据库领域应用无服务器计算范式,首先需要解耦数据架构的存储层和处理层。解耦存储和计算并不完全是一个新概念。这个想法已经在 NoSQL 和大数据分析领域(Amazon EMR、微软的 Azure DLS 和 DLA 等)以及各种关系数据库技术(Oracle RAC、NuoDB)中得到一定程度的实现。

然而,纯粹的存储和计算解耦并不完全算得上是无服务器。要达到完全的无服务器,在不处理数据的时候就不应该运行任何计算,同时还能按需提供自动伸缩。

实质上,就是要部署这样的一个数据架构——数据库层将根据应用程序工作负载自动启动、关闭和伸缩,同时具备服务器、实例或集群的概念。我们只需要定义好数据库端点并连接应用程序,底层数据库技术将根据应用程序需求扩展存储和计算资源。

除了性能和灵活性方面的优势外,无服务器数据库模型还可以提供高水平的成本效益。例如,按秒支付数据库容量的费用,并且仅在数据库处于活跃状态时才需支付,而不是事先选择数据库实例的大小。

无服务器数据库技术的发展状况

现在有很多可伸缩的关系数据库技术提供了读取或读写伸缩功能(Oracle RAC、Amazon Aurora、Percona XtraDB、ClustrixDB、NuoDB 等)。不过它们都不是本地无服务器产品。当然,现在也有针对无服务器数据库的创新解决方案,其中就包括 FaunaDB(无服务器和全局复制的 NoSQL 数据库)、Google Cloud Spanner(强一致的分布式关系型数据库)或 Microsoft Cosmos DB(具有灵活一致性模型的无模式的多模型数据库)。但是想要使用这些数据库技术的传统应用程序将不得不进行大量的重写或重新平台化。例如,尽管 Google Spanner 是一个具有完整 ACID 功能的关系型数据库(并且拥有独特的数据库技术),但它依赖定制客户端库来实现连接,并提供了一种 SQL 变体,通过自定义的 API 来处理事务。

支持真正无服务器的关系型数据库,一方面要具有完整的服务器抽象和伸缩能力,另一方面要完整地支持 ANSI SQL 和 ACID,这是一个相对较新的创新解决方案。

例如,亚马逊在去年的 Re:Invent 大会上发布了令人兴奋的 Aurora MySQL 数据库无服务器版本,该版本将于 2018 年晚些时候可用。根据亚马逊的说法,Aurora Serverless 专门针对“可变性大的工作负载,这种新的配置可以基于实际使用数据库资源的数量按秒付费。”亚马逊表示,Aurora Serverless 用户只需要为数据库处于活跃状态时所使用的资源支付费用。亚马逊本质上构建了一个基于事件驱动的计算平台数据库。用户提供端点,该端点充当了一个代理的角色,它将查询流量路由到可快速伸缩的数据库资源上。根据 Amazon 提供的信息,即使是在进行伸缩操作时,仍然可以保持连接的活动状态。伸缩速度很快,新资源将在几秒钟内就能上线。

未来会怎样

技术的发展推动了开发和应用程序部署模式的变化,这一切都是那么不可思议。支持 API 驱动的操作和伸缩对于下一代数据架构来说变得越来越重要,无服务器数据库将成为一个重要组件。

当前 RDBMS 技术的亮点之一是将无服务器计算的优势与灵活的关系型数据模型以及现有应用程序兼容的 ANSI SQL 和 ACID 结合起来。无论哪个数据库供应商先达到顶级水平,并发布完全关系型和完全无服务器的数据库引擎,那么肯定会在市场上留下重要的标记。因此,对于亚马逊、甲骨文、微软、谷歌和其他公司来说,一场数据库创新战开始打响了!

英文原文: https://www.infoworld.com/article/3261414/database/is-serverless-computing-a-game-changer-for-the-relational-database-market.html

感谢张婵对本文的审校。

2018-07-21 20:381489

评论

发布
暂无评论
发现更多内容

Linux之nl命令

入门小站

Linux

容器化 | 在 Kubernetes 上部署 RadonDB MySQL 集群

RadonDB

MySQL Kubernetes 容器

为什么 Python 没有函数重载?如何用装饰器实现函数重载?

Python猫

Python

浩若烟海事半功倍|利用Docker容器技术构建自动化分布式web测试集群Selenium Grid

刘悦的技术博客

Docker Python3 测试 单元测试 测试环境 selenium

从2021钉峰会,看钉钉生态背后的强大赋能力

ToB行业头条

钉钉

AI论文解读:基于Transformer的多目标跟踪方法TrackFormer

华为云开发者联盟

预测 Transformer 多目标跟踪 TrackFormer 跟踪目标

在线sitemap链接提取工具

入门小站

工具

一步步设计版本控制系统

Java·课代表

git 版本控制 版本管理

数据结构——顺序表

若尘

数据结构 6月日更

架构师实战营 模块七总结

代廉洁

架构实战营

JAVA 面向对象 (十三)-- 关键字static

加百利

Java 6月日更

Rust从0到1-自动化测试-测试组织

rust 单元测试 集成测试 自动化测试

前端 JavaScript 中的三种 for 循环语句总结

编程三昧

JavaScript 大前端 for循环

冰泉奶茶香牙膏好不好?奶茶控的宝藏牙膏就是它

Geek_50a546

页面制作的15个CSS技巧

devpoint

CSS css3 Flex 6月日更

[译] D8 类库脱糖

Antway

6月日更

12种mysql常见错误总结 +分析示例

李阿柯

MySQL 面试 常见问题

可视化搭建的一些思考和实践

白玉兰开源

全网最详细XSS跨站脚本攻击,不是过来打死我!!

网络安全学海

程序员 网络安全 信息安全 XSS 漏洞修复

带你认识9种常用卷积神经网络

华为云开发者联盟

神经网络 深度学习 卷积神经网络 图像 卷积

使用 Scala 宏解决对象转换

GrowingIO技术专栏

scala protobuf 元编程 macro

30分钟接入SDK 融云是如何让开发者做到开箱即用的?

融云 RongCloud

JavaScript学习(十一)---RegExp对象

空城机

JavaScript 大前端 6月日更

APP 开发技术如何进行选型 ?

程序员海军

大前端 App 技术选型 APP开发

代码管理工具:Git和SVN

正向成长

git svn

EasyRecovery——一款专业的数据恢复软件

淋雨

文件恢复 Easyrecovery破解 免费恢复软件 硬盘数据恢复

计算机网络的 89 个核心概念

苹果看辽宁体育

后端 计算机网络 网络

基于 Web 引擎扩展技术的 RTC 混合开发框架实践

白玉兰开源

大前端

网络攻防学习笔记 Day57

穿过生命散发芬芳

网络攻防 6月日更

使用SpringCloud的openFeign组件踩坑纪实

小江

dubbo Feign spring-cloud

为什么switch的case没有break不行

叫我阿柒啊

Switch case break

无服务器计算能够颠覆关系型数据库市场吗?_语言 & 开发_David Yahalom_InfoQ精选文章