Pigsty 是云数据库——Pigsty 提供了自建企业级 PostgreSQL 云数据库服务所需的一切,让您无需数据库专家,即可在几分钟内以 RDS 1/10 不到的成本,拉起本地的 Postgres 服务。

CloudNativePG 是云原生数据库——CloudNativePG 是一个 Kubernetes Operator ,它覆盖了具有主/备架构的高可用 PostgreSQL 数据库集群的完整生命周期,使用原生流式复制。

它俩都是“云”,那么二者的相同点和不同点是什么。

云原生数据库的概念产物 ×
这个产品的名字叫云原生 PG 数据库 √

pigsty 是管理软件,CNPG 是一个云服务。

云原生数据库一般是指对 k8s 环境进行了优化的数据库,比如自带 operator ,全生命周期管理有全套的 k8s 工具链,常见的备份还原、集群扩缩容、主备切换、配置管理都可以利用 operator 通过运维人员简单操作完成。

云原生针对的是 k8s ,你可以尝试在 k8s 上部署一个 mysql ,你会发现格格不入

我的理解是前者是本来就有,被云厂商托管在他们的基础设施里,用户直接买。

后者是,一开始没有,第一天就是活在云厂商里的。

那 Aurora 这种只能跑在云上的数据库算什么

算是典型的云数据库么

大部分普通的托管数据库,比如 aurora 这种,如果没宣称成云原生,是否是没有跑在 k8s 上的?直接跑在物理机上的?🤔

我个人的理解:

  • 云对应的是本地。比如云集群,指的是使用云端资源搭建的一个服务器集群。这个集群可以搭建在 k8s 上,也可以是一群 VPS 裸金属
  • 云原生,指的是是否能利用 k8s 的环境特性。例如通过 k8s 完成自动的重启、扩缩容、升级等等运维操作

    你把传统数据库比如 mysql 放在云上,就是云数据库。云原生稍微不同,有自己的开发理念,比如存算分离、湖仓一体等。snowflake, bigtable 之类就是云原生数据库。开源的有 iceberg ,它的存是对象存储比如 s3 ,算是 spark 这种分布式 ETL ,联邦查询是 trino ,它自己只起到一个开放表管理作用,这就是云原生。

    #7 那这么说的话 pigsty 只能算 k8s 数据库吧

    我官网看了下 pigsty ,好像没有提到 k8s ,他的架构里面没有用到 k8s

    油改电和纯电的区别

    这些都是云厂商自己搞的概念

如果是企业客户, 可以直接找专属技术支持, 让他们给提供后端技术方案的陈述 就清晰了
小客户也没啥必要了解那么多 能跑就行

这俩都是给 IDC 自建用户设计的…… “云数据库”至少也应该是 RDS / Aurora / PolarDB / Neon 这样的线上服务吧

那给自建用户设计的云数据库,云原生数据库,和云厂商的 RDS 和云原生数据库之间又有什么核心的区别吗

云数据库 参考 RDS
云原生数据库 参考 PolarDB

云数据库主要指将数据库以服务方式提供给用户(内部也算),云原生主要是指架构层面,主要是在以容器为核心的 K8s 平台基础上构建的数据库,这里的 CloudNativePG (通常叫 CNPG ),主要是用来解决 PG 在 K8s 上的 HA 问题,顺便看了下 Pigsty 官网,首先那八大价值主张就给我看乐了,另外全家桶的架构设计更是颇具国人风格,不推荐用。

云原生数据库: 可以随意扩缩容. 比如 snowflake, neon

一个不严谨的比喻

云 ≈ saas
云数据 ≈ 别人部署好的数据库,你直接用

云原生 ≈ k8s
云原生数据库 ≈ 支持 k8s 特性的数据,存算分离的数据库