【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

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

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

评论

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

分类树,我从2s优化到0.1s

Java你猿哥

Java 算法 ssm 分类树

采用Excel作为设计器的开源中国式报表引擎:NopReport

canonical

开源 低代码 报表 BI 报表 中国式报表

XDSL:通用的领域特定语言设计

canonical

开源 低代码 dsl 领域特定语言 领域语言工作台

BSN-DDC基础网络详解(十一):官方门户OpenAPI说明及开发资料汇总

BSN研习社

《银河护卫队3》观后感:AI、人生

无人之路

AI 电影

可逆计算:下一代软件构造理论

canonical

低代码 软件架构 函数式编程 领域驱动模型DDD 中台架构 低代码平台

如何在不修改基础产品源码的情况下实现定制化开发

canonical

开源 低代码 定制化 迭代增量开发 可扩展性

这份阿里逆天的Redis手册,于内卷中首次亮相了

Java你猿哥

Java redis 面试 Redis 核心技术与实战 redis 底层原理

解耦远不止依赖注入

canonical

架构设计 解耦 依赖注入

关于 ModelScope 的视频 “AI 换脸” 优化方案

北桥苏

Python ModelScope

从可逆计算看开源低代码平台Skyve的设计

canonical

开源 低代码 架构设计 低代码平台 扩展机制

led大屏幕存在的问题

Dylan

LED显示屏 全彩LED显示屏 led显示屏厂家

低代码平台中的自动化测试

canonical

开源 低代码 自动化测试 自动化测试框架 低代码平台

一图看懂CodeArts Deploy 5大特性,带你玩转部署服务

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 5 月 PK 榜

中移链合约常用开发介绍(四)工程树目录

BSN研习社

分库分表的 21 条法则,hold 住!

程序员小富

分库分表 springboot 分库表

问鼎CodeXGLUE榜单,华为云UniXcoder-VESO-v1算法取得突破

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 5 月 PK 榜

从张量积看低代码平台的设计

canonical

开源 低代码 架构设计 低代码平台 领域模型

不是单例的单例——巧用ClassLoader

PPPHUANG

单例模式 ClassLoader ContextClassLoader Java web

为什么说百度AMIS框架是一个优秀的设计

canonical

开源 前端架构 低代码 低代码平台 百度AMIS

宝兰德应用服务器软件与华为云GaussDB完成兼容互认证

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 5 月 PK 榜

再见!Fastjson!

Java你猿哥

Java ssm Fastjson

Y组合子的一个启发式推导

canonical

函数式编程 函数式 Lambda演算 Y组合子 不动点

如果重写SpringBoot,我们会做哪些不同的选择?

canonical

开源 低代码 架构设计 springboot spring ioc

性能优化多重要?凭借华为791页Mysql金字塔性能调优手册,进阿里

做梦都在改BUG

Java MySQL 性能优化 性能调优

云原生背景下如何配置 JVM 内存

做梦都在改BUG

Java 容器 云原生 JVM

低代码平台中的GraphQL引擎

canonical

开源 低代码 领域驱动模型DDD 中台架构 graphql 低代码平台

你管这破玩意叫缓存穿透?还是缓存击穿?

做梦都在改BUG

Java 数据库 redis 缓存穿透 缓存击穿

支持GraalVM原生编译的开源低代码平台:Nop Platform

canonical

开源 低代码 GraalVM Quarkus 低代码平台

系统学Java,看这篇Java综合笔记万字总结就够了!纯干货分享

Java你猿哥

Java spring 面试 ssm 多线程与高并发

Paxos的魔法学研究报告

canonical

paxos协议 共识算法 分布式, 分布式算法 深入理解分布式共识算法

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