云原生数据库:下一代数据库解决方案的关键

发表时间: 2024-07-26 16:32

Gartner 预测,到 2025 年, 基于云原生平台的数字化业务比例将达到95%,将带来云原生数据库市场的快速增长。

目前市场上对云原生数据库还没有统一的定义,有人认为数据库上云就是云原生数据库,有的人认为云厂商的云上数据库就是云原生数据库,这样的理解比较片面。可以确定的是数据库在随着底层IT基础设施的供给以及上层应用的需求在不断演进。

根据沙利文联合头豹研究院发布的报告,对云原生数据库有如下定义:

云原生数据库是基于云计算基础设施特点进行架构设计,充分利用云上计算、存储、 网络等资源,从而实现性能增强与功能范围扩大的数据库,具有高可扩展性、高弹性、高安全、可观测性、可高度自动化的特性。云原生数据库主要代表了数据库部署模式及架构向云环境的适应与演进,与数据模型无关,SQL与NoSQL数据库均可发展成为云原生数据库。

有专家指出,云的特别根本的特点是资源的池化、共享和复用,云原生数据库也要利用云的这些优势,资源的共享和复用至关重要。云原生数据库在架构上实现资源池化存算分离,并且与云基础设施深度结合和优化。原生数据库一定要满足各个资源能够充分弹性扩展,支持大规模使用,在部署和使用时具有灵活性、便利性,才能称为云原生。

以下是云原生数据库的一些特性:

  • 可扩展性

云原生数据库最重要的特点可能就是能够随工作负载扩展。云原生数据库必须能够增加容量,以动态适应工作负载的增加。这样,企业就可以运行其应用程序,而不必担心存储限制。

  • 弹性

扩大规模固然重要,缩小规模也同样重要。云本地数据库必须能够在工作负载减少时缩减或降低容量,以确保只为所需资源付费,这也是云的优势之一。

  • 韧性

云原生数据库必须能够经受住系统故障而不丢失任何数据。当系统的某个部分出现故障时,云原生数据库可以将数据转移到新的 pod 并自动修复。

  • 便利性

云原生数据库具有自动化和可扩展性等特点,因此管理和更新数据库非常简单。

整体来看,云原生数据库的发展大致可以分为以下阶段:

  • 第一个阶段,2008年左右,在云计算刚刚发展的初期,直接把数据库搬到云上,数据库本身并没有基于云进行重构,RDS是其代表产品。

  • 第二个阶段,2012年左右,数据库采用存算分离架构,代表产品有AP领域的Snowflake,以及TP领域的Aurora。

  • 第三个阶段,不仅仅是存算分离,其他各种资源都要重新考虑,近些年Serverless的发展是一个尝试。

当前,云上部署数据库的演进正在从“以资源为中心”转变为“以应用为中心”。以应用为中心的云原生数据库,不再是简单的资源供给,在架构和技术能力上要能感知应用特征,一切设计围绕应用出发,让应用能更智能、更高效地使用数据库。

Serverless数据库

Serverless数据库被认为是云原生数据库发展的下一阶段。

Serverless是对服务器无感知,它描述了一种更细粒度的部署模型,具备完全自动化的扩容能力,它能够随着用户业务的请求数的增加和减少,自动扩缩容,向着真正实现按需付费方向不断发展。Serverless数据库面临着冷启动以及自动化弹性等挑战,也有人指出能否解决冷启动问题以及是否支持scale-to-zero是Serverless数据库能否走向按需付费的关键。

根据 Cockroach Labs 的 Jim Walker 的说法,Serverless数据库遵循九项核心原则:

  1. 几乎不需要手动管理服务器

  2. 自动、弹性的应用程序/服务扩展

  3. 内置弹性和固有容错服务
  4. 始终可用和即时访问

  5. 基于消费的评级或计费机制

  6. 在任何故障域(包括地区)都能生存

  7. 地理规模

  8. 事务保证

  9. (关系型 SQL 的优雅性)

原则 1 至原则 5 可以应用于任何Serverless服务,但原则 6 至原则 9 专门针对全局 SQL 数据库。第 9 项原则似乎偏向于分布式 SQL 数据库(如 CockroachDB),这也是在该原则前后添加括号的原因。

有专家指出,“云是分布式数据库最好的舞台。”不过,云原生数据库还在不断演进,云上有很多资源,在数据库层面利用云虚拟化资源的方式还没有找到能够被广泛接受的最 优解,从存储到网络等,大家还没有找到性能和成本之间客户能够接受的最具性价比的方案。可能要等云上的环境稳定之后,数据库慢慢地才能达到一个相对的稳态。

参考资料:

中国信通院发布的《云原生数据库白皮书》(2022);

中国信通院发布的《Serverless数据库技术研究报告》;

沙利文《2023年中国云原生数据库十大厂商推荐》;