“无服务器”这一术语已应用于函数、应用程序接口(API)以及如今的数据库。与之前的术语一样,它并不意味着没有服务器;它只是意味着你无需去考虑服务器相关的问题。这是因为无服务器数据库会自动处理资源配置、扩展和容量规划,让开发人员能够专注于构建应用,而无需操心基础设施的维护工作。对于习惯了为 RDS 实例进行规模调整并手动调整读副本的团队来说,这种转变可能会感觉意义重大。本文将解释无服务器数据库的工作原理、概述主要产品,并探讨 Navicat 在其中所处的位置。
什么是“无服务器”数据库?
无服务器数据库的显著特征在于存储与计算的分离。在传统的数据库部署中,这两者紧密耦合:实例拥有固定的 CPU、内存和磁盘资源,而扩展则需要通过升级实例来实现。在无服务器架构中,存储与计算层解耦,这意味着两者可以独立扩展。计算资源可以快速扩容以应对流量激增,随后再缩减规模(或在空闲期间甚至降至零),而数据始终保持完整且可用。
该模型对开发人员有两点实际意义。首先,你只需为实际使用的资源付费,而非预先预留高峰期可能需要的容量。其次,你无需再担心实例规格是否合适,因为数据库会自动进行调整。
Amazon Aurora 无服务器版
Aurora Serverless v2 是亚马逊为 Aurora 提供的按需、自动扩展配置,提供 MySQL 兼容版和 PostgreSQL 兼容版。它支持精细的增量扩展——最小可扩展至 0.5 个 Aurora 容量单位 (ACU)——并且可以在不中断活动连接或事务的情况下,在广泛的范围内进行扩展。与存在明显冷启动延迟问题的初代 Aurora Serverless v1 不同,v2 的扩展过程更加流畅,并支持 Aurora 的全部功能,包括多可用区部署、全球数据库和读取副本。
Aurora Serverless v2 是针对那些工作负载难以预测或变化极大的应用(如开发和测试环境、事件驱动型应用,或者任何需求波动剧烈且不频繁的系统)的理想选择。其与 AWS 生态系统的深度整合使其非常适合已经在 AWS 上运行基础设施的团队。
Neon
Neon 是一个基于“湖基架构”构建的开源无服务器型 PostgreSQL 平台:存储和计算完全解耦,数据被保存到云对象存储中,而计算节点在闲置时可以自动缩减至零规模。当新的查询到来时,计算会在几秒钟内启动,并与现有的数据历史记录建立连接,而无需进行任何数据移动。
Neon 的一项极具开发者友好性的功能是数据库分支功能。与 Git 分支类似,Neon 分支会利用“写时复制”机制在特定时间点创建数据库的独立副本,不会进行数据复制,因此分支创建过程迅速且成本低廉。这使得为某个功能创建分支、对其进行迁移以及完成后再将其丢弃变得非常简单,而且无需触及生产环境。对于在 PostgreSQL 上进行开发且希望获得云原生灵活性但又不想脱离 PostgreSQL 生态系统的团队来说,Neon 已成为一种受欢迎的选择。
PlanetScale
PlanetScale 之所以能树立起自己的声誉,是因为它将 MySQL 引入了无服务器时代,并借助 Vitess 这一数据库集群技术实现了这一转变——正是这种技术负责处理 YouTube 的流量。它在开发者工作流程方面的突出贡献在于数据库分支功能,即支持非阻塞的模式更改:无需直接在生产环境中执行“ALTER TABLE”操作并屏气凝神,而是创建一个分支,进行模式更改,提交部署请求,待准备就绪时再进行合并。
该平台近年来发展迅猛。PlanetScale 于 2024 年停用了其免费的“爱好”级别服务,并已转向为企业客户提供服务,其付费套餐每月起价为 39 美元。此外,它还拓展了业务范围,推出了基于本地 NVMe 存储的托管分片 PostgreSQL 服务。PlanetScale 现已明确定位为一款高性能、大规模的平台,专为具有高吞吐量需求的团队服务,而非面向爱好者的免费级别。
其他突出的成果
无服务器数据库的范畴远不止这三种类型。
- Supabase 在 PostgreSQL 之上构建了一个完整的后端平台,同时提供了身份验证、存储、实时订阅以及无服务器数据库托管等功能。
- CockroachDB Serverless 服务提供分布式 SQL 服务,并能在不同区域自动实现数据分片。
- Turso 基于 libSQL(SQLite 的一个分支)构建而成,专为边缘部署设计,支持按数据库划分租户,并能实现极低的延迟。
每一款产品都代表着简单与强大之间的一个不同的平衡点
使用 Navicat 连接无服务器数据库
无服务器数据库面临的一个实际问题是,开发者所使用的现有工具必须能够继续正常运行。幸运的是,大多数无服务器数据库都会特意保持与底层引擎完全的网络协议兼容性,这意味着任何能够连接到 MySQL 或 PostgreSQL 的客户端也都能连接到它们——这其中就包括 Navicat。
Navicat Premium 通过其内置的 Amazon AWS 连接类型直接支持与Amazon Aurora 的连接。在此模式下,你可以配置 Aurora 连接,并享受到与传统 MySQL 或 PostgreSQL 实例相同的完整功能环境——查询编辑器、数据查看器、模式管理、数据传输等。对于 Neon 和 PlanetScale,连接则分别使用 Navicat 的标准 PostgreSQL 和 MySQL 连接类型建立。这两个平台在其仪表板中都提供了标准的连接字符串;你在 Navicat 的连接对话框中输入主机、端口、数据库名称和凭证,根据需要启用 SSL,然后进行连接。
这意味着无服务器工作流数据库旨在实现快速迭代、分支操作以及安全的模式变更等功能。它可以与 Navicat 的查询分析、可视化解释、数据同步和模式比较等工具相结合。你能够享受到无服务器基础设施带来的操作简便性,同时又不会失去专业数据库管理环境的深度。
需要注意的事项
无服务器数据库并非在所有情况下都优于预配置数据库。对于对延迟敏感的应用程序而言,冷启动仍然是一个需要认真考虑的问题,尽管在新一代平台上这一问题已得到显著改善。连接处理的行为也可能有所不同——由于计算资源可以弹性缩减至零再恢复,连接池的作用比以往任何时候都更为重要;虽然大多数平台都原生支持连接池,但在投入生产环境之前,仍值得了解你所选平台是如何管理连接的。最后,基于使用量的计费方式可能比固定的月度实例费用更难预测,特别是对于工作负载量持续高且稳定的应用程序,这种情况下预配置数据库实际上可能更具成本效益。
结语
无服务器数据库已相当成熟,如今不仅是开发环境,对于各类生产工作负载而言,也已成为一种值得信赖的选择。Aurora Serverless v2、Neon 和 PlanetScale 分别代表了该模式的三种不同实现方式,具体选择取决于你的引擎偏好、规模要求以及工作流优先级。它们的共同点在于能够显著降低运维开销。此外,由于它们均保持与标准 MySQL 或 PostgreSQL 的兼容性,通过 Navicat 连接和管理这些数据库无需进行特殊配置,也不会牺牲任何功能。

