简介
许多组织中 数据库 的作用随着时间的推移而发生了变化。虽然对数据的依赖不断增加,以构建应用程序、做出业务决策并在更大的生态系统中提供价值,但在许多情况下,数据库软件和基础设施本身的管理已经发生了转变。
虽然这些资产传统上由组织本身运营,但它们的管理越来越多地外包给外部提供商。这种想法的第一个迭代是转向 *托管数据库*,其中提供商管理基础设施和软件,同时允许用户调整设置和设置扩展策略。
最近,这种想法演变成 *无服务器数据库*,其中整个基础设施、数据存储和底层架构完全由提供商管理,用户只能通过类似 API 的交互访问他们管理的数据。
在本指南中,我们将讨论传统部署的数据库与其无服务器对应物之间的区别。我们将适当地讨论托管数据库产品,以帮助区分提供商提供的不同选项。了解这些不同的概念可以帮助您了解不同产品之间的权衡,并做出明智的决定,了解哪种类型的数据库管理适合您的项目。
查看 Prisma 数据平台,在一个地方管理所有应用程序数据。
传统数据库与托管数据库与无服务器数据库
在我们深入探讨各种策略的优缺点之前,让我们花点时间回顾一下每个系统的工作原理背后的总体思路。
传统数据库
传统数据库是数十年来一直存在的数据库和数据库管理风格。它涉及配置具有适当硬件资源的物理或虚拟服务器,并将其设置为数据库服务器。除了初始安装和配置之外,这种类型的设置还需要
- 持续管理底层基础设施,包括硬件健康状况、资源管理和网络访问
- 维护最新的、稳定的和安全的操作系统,以及
- 配置、优化和管理数据库管理系统
总的来说,此选项提供了大量的控制和灵活性。系统的每个部分都可以被检查、优化和更改,以满足用户和应用程序的需求。
这是以更大的管理负担为代价的。必须维护和优化系统的各个级别,以提供理想的应用程序性能,同时保持系统和数据的可用性和安全性。
托管数据库
托管数据库是大多数云提供商提供的产品,作为管理您自己的基础设施的替代方案。相反,提供商管理服务器配置和数据库软件,并向用户公开选项,让他们可以配置和调整行为。
使用托管数据库,提供商负责
- 持续管理底层基础设施,包括硬件健康状况、资源管理和网络访问
- 维护最新的、稳定的和安全的操作系统,以及
- 管理数据库系统的 *部分*,例如数据库管理系统的健康状况和功能
用户仍然负责
- 对数据库的最佳设置做出决策
- 设置扩展、备份和其他软件级配置的策略
通常,这种配置允许提供商管理组织不特别关心的流程部分,只要它们保持高标准即可。关键的可配置区域仍然向用户公开,以便他们可以根据资源的重要性、运营需求和他们的 SLA 调整行为。
许多组织采用这种管理风格,因为它们允许其开发人员自定义他们关心的数据库部分,而无需维护内部系统管理专业知识。如果您的需求与提供商对产品的设想相吻合,这可能很有效,但在您发现自己难以控制获得的控制程度,或者自动化程度仍然不符合您的预期时,这可能很困难。
无服务器数据库
无服务器数据库 是云提供商提供的一种相对较新的方法,它从用户手中承担了更多管理职责。无服务器数据库将数据库管理系统中处理存储的部分与执行查询的部分解耦。这意味着两者可以独立扩展。在无服务器数据库中,这两个组件都由 提供商 独家管理。
实际上,这使得无服务器数据库可以被视为一个无限大的存储库,数据可以在其中存储、操作和检索。后端存储会根据需要扩展,查询执行器的数量也会根据需求进行调整。用户只需要通过类似 API 的接口访问数据库,该接口会自动将命令路由到正确的组件。
无服务器数据库需要的操作管理比我们讨论过的任何其他选项都要少。这使您能够像使用外部服务一样使用数据库,而不是将其视为必须保持运行状态的基础设施组件。
何时使用传统数据库和无服务器数据库
现在我们已经回顾了不同数据库管理策略采用的方法,我们可以谈谈它们最适合哪些场景。虽然这些决定主要取决于您自己的应用程序需求、内部专业知识以及对优化和管理的兴趣,但也有一些一般性指标可以帮助您做出正确的决定。
为什么我要使用传统数据库?
从硬件到数据库软件管理整个数据库服务器堆栈的传统方法最适合需要控制、隐私和性能的情况。
高度控制
虽然传统数据库服务器需要持续监控、维护和应急计划以保持可用性,但它提供了无与伦比的控制水平。
您可以选择适合您特定需求的基础设施架构,从单个服务器到复杂的集群。您可以将这些资产部署在您想要的地方,无论是在本地,在您自己或租赁硬件的数据中心,还是通过使用来自云提供商的标准计算资产。您可以根据需要升级和更换任何组件,并且可以调整任何软件级配置,没有任何限制。
如果您需要在部署的任何级别更改任何内容的能力,那么传统数据库部署可能是您的最佳选择。您将不得不通过承担管理部署每个部分的责任来为这种控制水平付费。
关注数据隐私
如果您的应用程序数据需要非常高的隐私级别,无论是作为功能还是作为符合任何标准或法规的要求,传统数据库为您提供了最多的控制。您将能够准确地指示谁可以访问部署它们的物理硬件以及任何软件级访问权限。
运行您自己的数据库服务器可以确保您可以为您的用户和数据设置必要的保护级别。不同客户的数据可以放在不同的数据库、不同的服务器或不同的物理位置,以保持严格的分隔。您可以决定部署到满足特定行业标准的数据中心,以确保物理访问受到限制。
在软件级别,您也从没有外部访问权限的地方开始。默认情况下,没有其他方对您的服务具有管理监督。您可以通过拒绝提供访问权限以及通过设置加密和其他安全措施来保护您的数据,以提供您所需的保护级别。
高性能
如果您的应用程序需要始终如一的高性能,传统的数据库部署可能是您的最佳策略。
当您自己运行数据库服务器时,您可以更轻松地发现和缓解资源争用,因为您可以完全了解正在竞争的进程和客户。您不必担心附近的客户占用过多的共享资源,并且可以根据需要预配额外的资产。您的系统峰值性能仅受您分配的时间和金钱以及您管理系统的专业知识限制。
与无服务器数据库相比,特别重要的是您的服务器数据库资源的持续可用性。您不会遇到冷启动问题,因为只要您的需求低于峰值需求,您就不会缩减基础设施层。如果您需要始终如一地保持性能,无论之前的活动水平如何,这都非常重要。
为什么我要使用无服务器数据库?
如果您的用例适合无服务器数据库,它们也有很多优势。如果您想要负担得起的数据库访问,并且无需繁重的管理负担即可实现自动扩展,那么它们是一个很好的选择。
低成本运营
无服务器数据库可以提供的主要优势之一是低运营成本。由于无服务器数据库的存储层和计算层都是独立扩展的,您只需为实际使用的部分付费。
存储层根据您管理的数据量进行扩展。这通常根据容量定价,如果您的应用程序具有稳定的模式,则定价相对可预测。由于此存储后端是动态分配的,因此您不必担心空间不足或过度预配存储相关的成本。价格仅反映您的存储空间。
计算层是完全解耦的,并使用其自身的标准进行扩展。预配的查询执行器实例数量取决于您的应用程序当前传递到数据库的流量。这意味着在流量高峰期,该服务会启动额外的查询处理器来处理请求。另一方面,当没有执行查询时,该服务可以将此层缩减到零,从而在该时间段内完全消除处理成本。
如果您对成本非常敏感,无服务器数据库可能是一个不错的选择,因为您不必担心准确预测您的使用情况。平台资源和您的成本与您的使用情况完全一致。
高可扩展性
我们在上一节中提到了这一点作为成本的功能,但无服务器数据库策略最显著的优势之一是能够轻松扩展。这不仅会影响支出,还会影响您在可预测的周期内或由于兴趣激增而导致使用量波动时满足不同需求水平的能力。
数据存储和查询执行的独立扩展机制使您能够使用相同服务和配置处理非常不同的使用场景。该服务可以自动调整以适应大多数使用水平,并且可以随着您的应用程序一起增长,而无需对数据库服务进行任何更改。
高可扩展性还意味着您可以轻松地试验应用程序,并在无需更改数据库服务的情况下从测试阶段过渡到生产阶段。您可以设置测试和暂存数据库,这些数据库在不使用时会缩减到零。这在练习持续集成和持续交付时尤其有用,因为您的管道可以使用与您的生产环境完全相同的数据库服务,同时只需为您的测试所需的小量使用付费。
减少管理责任
无服务器数据库的最大亮点可能是它们可以帮助您的团队卸下管理责任。尽管许多组织已经习惯了由托管数据库带来的管理开销,但无服务器数据库承担了更高层次的支持和管理,以进一步减轻您的工作负担。
无服务器数据库服务不仅管理基础设施和数据库管理系统软件,而且还管理资源分配和数据库的许多策略。您不必确定数据库需要多少存储空间,或者需要多少个数据库实例来满足您的平均流量水平,系统可以根据当前情况做出响应。您不必管理扩展规则,而只需设置您期望的扩展级别边界,平台就会在这些边界内智能扩展。
这听起来很像托管数据库的描述方式,但在实践中却有很大不同。使用无服务器数据库,您不必提前做出很多决定。主要配置您想要维护的任何成本阈值,以及您想要进行的任何特定扩展调整,例如始终至少提供一个查询执行器。系统会处理几乎所有其他事项,以确保您的应用程序数据库的使用始终可用,达到标准并响应当前的请求环境。
结论
特征 | 传统数据库 | 无服务器数据库 |
---|---|---|
控制级别 | 高 | 最小 |
数据隐私 | 默认私有,可由管理员配置 | 必须信任提供商拥有数据 |
性能 | 能够实现非常高的性能,具体取决于硬件和配置 | 如果需求激增,性能可能会下降(可以通过备用的查询处理器来缓解) |
成本 | 静态,无论需求高低,数据库的成本都相同 | 可变,仅需为所用资源付费 |
可扩展性 | 取决于配置,可能很复杂 | 根据需求和服务设置自动扩展 |
管理责任 | 负责所有事项 | 最小责任 |
在本文中,我们探讨了传统自管理数据库和无服务器数据库服务之间的一些关键区别。我们讨论了它们从用户角度的差异,以及在决定数据库策略时必须考虑的权衡,这取决于组织的优先事项。
尽管无服务器数据库不适合所有类型的应用程序,但它们可以使许多组织的数据库管理和操作变得更加容易。了解无服务器数据库何时可能是一个好的解决方案,以及它们的哪些缺点,可以帮助您确定在评估数据库解决方案时是否应该考虑它们。
Prisma Accelerate提供了一种处理无服务器应用程序和后端数据库之间连接问题的方法。它可以帮助管理来自无服务器函数的临时连接,以避免耗尽数据库连接池。现在就来试试吧!