当前位置: 首页 > 科技观察

无服务器计算将改变关系数据库的游戏规则

时间:2023-03-16 13:22:10 科技观察

无服务器计算将改变关系数据库的游戏规则,从单个数据库服务器变为根本没有数据库服务器。无服务器计算范式能否改变关系数据库技术格局?无服务器计算在过去两年开始受到关注,这个概念就是将应用程序移动到不需要仅在运行时管理和使用的基础架构。资源。在公共云中,无服务器通常转化为提供商根据工作负载需求动态管理服务器资源分配的解决方案。AWSLambda处于领先地位,而MicrosoftAzureFunctions(和其他)正在迅速赶上。无服务器计算框架的定价通常基于应用程序消耗的实际资源量,而不是预先购买的容量。随着这些用于无状态应用程序的无服务器计算解决方案在下一代软件架构中越来越受欢迎和采用,这些解决方案会离开关系数据库吗?仍然是许多(如果不是大多数)应用程序组件的关键。在过去的几年中,在部署关系数据库时,您已经有了几个可靠且经过验证的模型:从单体微服务到微服务,再到平台即服务解决方案。您可以部署一个运行单一或统一数据库的“大型”服务器,该数据库可为数十个应用程序提供支持。还可以选择依赖面向微服务的架构和一组独立的小型模块化服务,每个服务都可以实现独特的流程并实现特定的业务目标。采用云解决方案还使您能够通过基础设施即代码部署数据库,甚至利用平台即服务解决方案,这大大降低了我们数据库的运营开销和复杂性。但是,所有这些模型仍然依赖于数据库服务器的配置。无论是在本地、云端还是使用PaaS。您可以根据确定服务器大小和配置的预测工作负载特征来配置数据库容量。当然,数据库可以放大、缩小或扩展以响应工作负载(取决于所使用的数据库技术),但这个过程并不意味着要经常进行。相反,应根据重复发生的事件进行扩展,例如即将到来的假期,这将为您的电子商务应用程序生成额外的交易,或者将新的大客户添加到您公司的SaaS产品中作为响应。拥有专用数据库服务器对于可预测且相对稳定的工作负载最有意义。可能有高峰和低谷,但它们通常遵循可预测的模式。您可能需要每年多次调整数据库大小,但一天中调整的次数不多。不频繁的数据库扩展是传统应用程序的最佳模型。下一代应用程序带来了下一代挑战。其中一些工作负载可能是零星的、间歇性的和不可预测的。例如,数据库查询或事务的突发可能每天(甚至每月)只持续几分钟或几小时。使用与之前相同的电子商务应用程序示例,您的数据库如何在不必预先过度配置数据库服务器的情况下为闪购活动提供支持?其他工作负载也存在类似的挑战,从在线游戏到股票交易甚至分析(如果您的分析套件每天仅产生几个小时的大量数据库负载会怎样)?大多数DBA会声明您应该根据预计的峰值工作负载调整数据库大小。如果可能的话,扩展数据库的过程是一件苦差事,这是传统智慧和正确的范例。无服务器计算对数据库意味着什么?为了利用数据库空间的无服务器计算范式,首先需要分离数据架构的存储层和处理层。解耦存储和计算并不是一个全新的概念。这个想法已经在NoSQL和大数据分析领域(AmazonEMR、Microsoft的AzureDLS和DLA等)以及各种关系数据库技术(OracleRAC、NuoDB)中得到了一定程度的实施。但是,存储和计算的纯粹解耦并不完全是您所说的无服务器。对于完全无服务器计算,在不处理数据期间不应存在计算,同时还提供按需自动缩放。从本质上讲,部署一个数据架构,其中数据库层将根据应用程序工作负载自动启动、关闭和扩展/收缩,同时抽象出服务器、实例或集群的概念。您只需要定义数据库端点并连接您的应用程序;底层数据库技术将根据应用程序需求扩展存储和计算资源。除了性能和灵活性方面的优势,无服务器计算数据库模型还可以提供高水平的成本效益。例如,按每秒使用的数据库容量付费,并且仅在数据库处于活动状态时付费,而不是提前选择数据库实例的大小。无服务器计算的数据库技术现状有大量可扩展的关系数据库技术提供读或读/写扩展(OracleRAC、AmazonAurora、PerconaXtraDB、ClustrixDB、NuoDB等)。但是,这些不是本地无服务器计算产品。也有针对无服务器计算数据库的创新解决方案,包括例如FaunaDB(无服务器和全球复制的NoSQL数据库)、GoogleCloudSpanner(全球分布式和强一致的关系数据库)或MicrosoftCosmosDB(模式不可知的多模式数据库)模型).但是,想要使用这些数据库技术的遗留应用程序将不得不进行大量重写或大量重新平台化。例如,虽然GoogleSpanner是一个具有完整ACID功能的关系数据库(并且具有独特的数据库技术),但它依赖于自定义客户端库进行连接,并提供一个SQL变体,其中事务由自定义API处理。支持真正的无服务器计算和真正的关系数据库,一方面具有完整的服务器抽象/可扩展性,另一方面具有完整的ANSISQL和ACID支持,是一个相对较新的创新和成熟的方案;特别是来自云空间中的公共供应商(亚马逊、微软、谷歌和甲骨文)。例如,亚马逊在去年的Re:Invent大会上发布的最令人兴奋的公告之一是AuroraMySQL数据库的无服务器版本,将于2018年晚些时候发布。据亚马逊称,AuroraServerless旨在“如果发生快速变化,这个新的配置允许您随时为数据库资源付费。”亚马逊表示,AuroraServerless用户只需支付数据库处于活动状态时的处理费用(以及使用的存储费用)。亚马逊本质上是建立了一个事件驱动计算平台的数据库。用户提供一个端点作为代理,将查询路由到快速扩展的数据库资源队列。据Amazon称,AuroraServerless将允许您的连接保持活动状态,即使进行扩展操作也是如此。扩展也应该很快,新资源会在几秒钟内上线。未来是什么样子看到技术变革如何推动开发和应用程序部署模式发生变化,真是令人难以置信。支持API驱动的操作和扩展对于下一代数据架构变得越来越重要,无服务器数据库成为一个固有的重要组件。当前RDBMS技术的圣杯之一是将无服务器计算的优势与开发人员熟知的灵活关系数据模型以及与现有应用程序兼容的完整ANSISQL和ACID支持相结合。似乎无论哪个数据库供应商率先走在前沿并发布完全关系型和完全无服务器的数据库引擎,都肯定会在市场上留下重要的印记。所以亚马逊、甲骨文、微软、谷歌和其他公司,数据库创新峰会正在进行中!