为了顺应万物互联,数据上云这个,趋势并满足云原生应用程序的存储需求,云原生数据库提供了云中所需的所有特性。
在本文的最后,您应该理解云原生数据库的确切含义、它与容器,云原生,的关系以及它与传统数据库的区别。
云原生数据库是一种旨在充分利用云技术和分布式系统的数据库。
尽管许多数据库可以在云中运行,但云就绪和云原生之间存在差异。
“云原生”描述了服务、软件、API 或数据库,其架构和构建是为了在云上运行和部署,同时受益于云原生系统提供的功能。
云原生数据库可以在云原生技术上运行(比如 Kubernetes,各类公有云),以提供灵活、可扩展的数据存储和查询解决方案。
在谈论云原生时,我们必须提到容器,因为这是云原生应用程序运行的地方。然而,容器是使用 Docker 和 Kubernetes 等技术构建和部署到云中的。因此,要考虑数据库云原生,它需要在容器中运行,同时,它应该能够存储数据并确保状态。
在云中持久化和移动数据是一个主要问题,因为 Kubernetes 最初是为无状态工作负载设计的。由于数据库需要持久化数据,最近的改进为 Kubernetes 引入了有状态集和持久卷,使得在 Kubernete 上运行有状态工作负载变得容易。
云原生数据库利用这些改进将数据库带入云,以享受 Kubernetes 的所有好处,包括弹性和弹性。
随着微服务和容器化应用程序的日益采用,需要一个与应用程序类似的数据库来充分利用其优势。
像 MySQL 和 MongoDB 这样的传统数据库在许多方面都受到限制,包括可伸缩性、安全性和可访问性。尽管它们可以与云集成,但在云中使用这些数据库限制了应用程序享受云技术好处的能力。
以下是云原生数据库的一些有益特性,这些特性使它们区别于传统数据库。
高级可扩展性
云原生数据库最重要的特性可能是它能够随工作负载扩展。云原生数据库必须能够增加其容量,以动态适应工作负载的增加。这允许组织运行其应用程序,而无需担心存储限制。
弹性伸缩
扩大规模与缩小规模同样重要。云原生数据库必须能够在工作负载减少时缩小或减少其容量,以确保您只支付所需的资源,这是云的好处之一。
动态灾备
云原生数据库必须能够在不丢失任何数据的情况下经受住系统故障。当系统某一部分出现故障时,云原生数据库可以将数据移动到新的 pod 并自动修复。
运维自动化
云原生数据库允许我们将部署和管理云原生数据库的过程进行编码,以实现自动化。甚至,可以集成人工智能 AI 的能力,来简化运维。云原生数据库由于其自动化和可扩展性等特点,使其易于管理和更新数据库。
可访问性
与传统数据库(只能通过部署系统访问的云原生数据库)不同,云原生数据库使用分布式数据库技术,使其易于访问。
降低成本
云的一个主要特征是只为您使用的资源付费的能力。加上弹性,云原生数据库允许您按需付费,只为您需要的资源付费。
我现在以亚马逊云科技的典型云原生数据库举例:
Amazon Aurora 是一个与 MySQL 和 PostgreSQL 兼容的关系数据库,它为云计算而构建,将传统企业数据库的性能和可用性与开源数据库的简单性和成本效益结合在一起。
Amazon Aurora 完全由 Amazon 关系数据库服务(RDS)管理,该服务自动执行耗时的管理任务,如硬件配置、数据库设置、修补和备份。
Amazon Aurora 拥有一个分布式、容错、自我修复的存储系统,每个数据库实例可自动扩展到128TB。它通过多达15个低延迟读取副本、时间点恢复、到 Amazon S3 的连续备份以及跨三个可用性区域(AZ)的复制,提供了高性能和高可用性。
同时,Aurora 有一项极具特色的功能:Aurora Serverless ,即按需自动扩展配置。 Aurora Serverless v2 在几分之一秒内将数据库工作负载扩展到数十万个事务。它以细粒度的增量调整容量,为应用程序的需求提供适量的数据库资源。您无需管理数据库容量,只需为应用程序消耗的资源付费。
Amazon 在2007年发布的 Dynamo 论文被认为是 NoSQL 数据库的开篇之作,并在之后的十几年间对 NoSQL 的发展产生了至关重要的影响。在2012年,源自 Amazon Dynamo 论文的 DynamoDB 正式上线,开始向亚马逊云科技的客户提供了一项兼备极致性能与扩展性的云原生数据库服务。在刚刚结束的云原生数据库十周年在线大会上,我们一同回顾了 DynamoDB 在十年间的发展,Amazon DynamoDB 在游戏、广告、可穿戴设备、智能家居和互联网软件等行业中帮助大批客户实现了向全球互联网扩展的目标。