写点什么

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

  • 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:381371

评论

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

2021年阿里+腾讯+快手offer都已拿到,Java开发环境

Java 程序员 后端

2021最新Java开发面试大全,马士兵java入门教程,美团Java面试

Java 程序员 后端

2021最新大厂Java面试集合,java基础入门视频教程,重磅来袭

Java 程序员 后端

云栖大会第二天:ACK Anywhere 来了

阿里巴巴云原生

阿里云 容器 云原生 ACK Anywhere

2021百度Java岗面试真题收录解析,Java开发者必看避坑指南

Java 程序员 后端

2021我是如何拿到小米、京东、字节的offer,Java篇

Java 程序员 后端

2021新鲜出炉阿里巴巴面试真题,王道训练营java百度云盘,阿里高级算法专家

Java 程序员 后端

2021最新Java知识体系总结,上个月成功拿到阿里P7offer

Java 程序员 后端

2021最新Java知识体系总结,史上最全

Java 程序员 后端

2021最新Java大厂面试真题大全,附学习笔记+面试整理+进阶书籍

Java 程序员 后端

云栖第一天:解密两个100%背后的云原生

阿里巴巴云原生

阿里云 云原生 公有云 云栖大会

2021最新Java开发面试大全,阿里Java面试题库

Java 程序员 后端

2021最新中高阶Java面试题总结,牛笔了

Java 程序员 后端

2021金九银十面试季,java零基础入门视频教程,成功入职腾讯

Java 程序员 后端

2021新一波程序员跳槽季,零基础如何成为高级Java开发

Java 程序员 后端

2021最新网易Java面经,裸辞奋战25天三面美团

Java 程序员 后端

2021最新网易Java面经,还在等机会

Java 程序员 后端

2021网易Java高级面试题总结,初级Java程序员面试题

Java 程序员 后端

2021最新Java面试笔试,尚硅谷linux笔记文档,Java中级工程师面试题

Java 程序员 后端

2021最新网易Java面试题目,华为Java面试题及答案

Java 程序员 后端

027云原生之服务网格应用

穿过生命散发芬芳

云原生 10月月更

Go 语言实现 gRPC 的发布订阅模式,REST 接口和超时控制

AlwaysBeta

golang gRPC Go 语言 publish REST API

2021最新Java开发面试解答,Java编程教程入门

Java 程序员 后端

2021最新Java算法相关面试大,Java程序员技术路线

Java 程序员 后端

云栖·追踪云原生|Serverless入围阿里云十大核心技术

阿里巴巴云原生

阿里云 Serverless 云栖大会 技术代表

【内含福利】得物、B站技术大佬分享系统稳定性保障干货,邀您共赴上海交流!

TakinTalks稳定性社区

运维 性能测试 系统稳定性 压力测试

一图看懂云栖大会「云原生」重磅发布

阿里巴巴云原生

容器 云原生 云栖大会 ACK Anywhere

2021最新Java大厂面试真题大全,不明白JVM虚拟机还怎么面试

Java 后端

2021最新Java面试真题解析,mysql汉化教程,全网首发!

Java 程序员 后端

2021最新Java高频精选面试题讲解,开源新作

Java 程序员 后端

2021最新中高级Java面试题目,一份字节跳动面试官给你的Java技术面试指南

Java 程序员 后端

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