ITPub博客

首页 > 云计算 > 公有云实践 > PlanetScale 与 Amazon RDS — PlanetScale

PlanetScale 与 Amazon RDS — PlanetScale

公有云实践 作者:ITPUB社群 时间:1970-01-01 08:33:43 0 删除 编辑

什么是 PlanetScale?

PlanetScale 是一个极其快速、可扩展且可靠的数据库平台,适用于 PostgreSQL(开源关系型数据库)和 Vitess。Vitess 支持从应用层抽象出来的 MySQL 水平分片。它旨在改进数据库管理,并提供高性能、容错的数据库,能够处理大规模工作负载。

PlanetScale 为客户提供 Vitess 的强大功能,提供完全托管且高性能的 MySQL 数据库服务,具备水平分片、类似 Git 的 schema 变更工作流、自动备份、恢复、高级查询分析以及多区域复制能力。PlanetScale 可以部署在多个云平台上,包括 Amazon Web Services (AWS) 和 Google Cloud Platform (GCP)。

什么是 Amazon RDS?

Amazon RDS(Relational Database Service)是 Amazon Web Services (AWS) 提供的托管关系型数据库服务。它支持多种数据库引擎,包括 MySQL、PostgreSQL(开源关系型数据库)、MariaDB、Oracle 和 Microsoft SQL Server。借助 RDS,用户可以在云中设置、运行和扩展关系型数据库。它促进并自动化资源调配、补丁、复制和备份等运维任务。它旨在与其他 AWS 原生服务良好集成。

对比:PlanetScale vs. Amazon RDS

PlanetScale vs. Amazon RDS 架构与部署

PlanetScale 兼容 MySQL,并将 Vitess 的所有数据管理和可扩展性功能大众化。它是一个高度可扩展的数据库平台,具有众多租户和部署选项。多租户是基础 PlanetScale 计划的默认租户模式。PlanetScale Enterprise 和 Managed 计划均提供多租户和单租户部署。PlanetScale Managed 是一个打包的数据平面。它包括在用户拥有的 AWS 或 GCP 子账户内运行 PlanetScale 产品所需的所有计算、实时数据和备份。

Amazon RDS 支持多种商业可用和开源软件 (OSS) 数据库引擎。它仅支持 AWS 云基础设施,并有意与 AWS 工具高度兼容。尽管 RDS 是托管解决方案,用户仍然需要手动调配资源。这需要一定程度的资源利用率和用户数据模型知识,才能正确调配。

PlanetScale vs. Amazon RDS 扩展性与性能

PlanetScale 和 Amazon RDS 以不同的方式实现数据库的扩展性和性能。PlanetScale 专为高可用性、高性能和可扩展性而构建。它能够轻松应对流量突发和高 IOPS,同时作为托管服务减少与数据库管理相关的开销。Amazon RDS 的构建目的是为那些原本需要在 EC2 上运行和管理数据库的用户减少数据库管理开销。Amazon RDS 是 AWS 提供的性能较低的托管关系型数据库产品。这是与 Amazon Aurora 相比而言的,Amazon 声称 Aurora 比标准 MySQL 快 5 倍,且性能优于 RDS。

PlanetScale 和 RDS 都可以水平扩展,但两种解决方案的方法不同。PlanetScale 在应用层之外对数据进行水平分片。这通常是一种更高性能、更可靠且更节省成本的 MySQL 分片方式。使用 RDS 时,用户可以水平扩展读操作或添加额外实例来分散数据库操作。此外,PlanetScale 和 RDS 用户都可以垂直扩展实例大小和资源以满足增长的需求。

在 PlanetScale 中添加新的 MySQL 节点时,负载均衡会自动实现。PlanetScale 实现负载均衡的方式得益于几个名为 VTTablet 和 VTGate 的 Vitess 组件以及 PlanetScale 的边缘基础设施。VTGate 是应用层的查询路由层,而 VTTablet 则充当 VTGate 和 MySQL 之间的中间件。这促进了连接从应用程序流向负载均衡器,再到 VTGate,再到 VTTablet,最后到达 MySQL。VTTablet 将管理连接池并对 MySQL 实例执行健康检查,在 topo-server 中更新其状态。同时,VTGate 通过 topo server 确定可用的 tablet 及其角色,并根据需要重新路由流量。PlanetScale 的边缘基础设施则充当前端负载均衡器,在最近的边缘位置终止 MySQL 连接。

每个 PlanetScale 数据库都获得所有这些底层基础设施,以确保数据库保持可用。负载均衡器将在生产分支和副本之间分配流量,并平衡连接、IOPS 和资源使用。

凭借技术上无限的连接数,PlanetScale 具备处理高并发的能力。PlanetScale 提供连接池,可随集群扩展,并使连接请求能够排队。

Amazon RDS 不会自动进行负载均衡。为了管理大量涌入的连接,用户可以利用 RDS Proxy 进行连接池化和连接复用。这可能会增加延迟,但不会导致应用程序故障,并能防止过多连接压垮数据库。

PlanetScale 与 Amazon RDS 定价对比

PlanetScale 的成本专为扩展而设计。付费套餐起价为每月 $5,并提供基于资源的定价选项,用户可以使工作负载和基础设施成本线性增长。PlanetScale Enterprise 和 Managed 套餐完全定制化,可满足用户的特定需求。

Amazon RDS 的定价基于计算节点的类型和大小以及这些资源的使用时长。有基于使用量付费的选项,也有以折扣价预留资源的选项。PlanetScale 套餐在基础设施方面通常客观上比运行在 Amazon RDS 上更便宜。这是因为 PlanetScale 在许多商用级 AWS EC2 实例(或其他云提供商的等效实例)上合理配置资源,从而防止过度配置并使成本与用户的实际工作负载保持一致。此外,用户通过 PlanetScale 获得更多基础设施,包括 Vitess 的强大能力,以及一个提供与其他商业解决方案相同甚至更强容错能力的数据库集群。

PlanetScale 与 Amazon RDS 运维对比

PlanetScale 和 Amazon RDS 都是托管数据库系统,旨在减少复杂的数据库管理任务。PlanetScale 和 RDS 自动化基本数据库操作,并提供监控、日志记录和审计解决方案。

PlanetScale 为用户提供生产分支,即用于生产流量的高可用数据库。它们在概念上等同于其他商业数据库中的主实例。生产分支会自动故障转移到两个默认副本之一以提高冗余性。这两个副本减轻了主分支的负载,并使用户能够扩展读写操作。额外的副本和只读区域是可配置的。

PlanetScale 还提供内置审计和日志保留功能,以及与 Datadog 等流行第三方监控工具的集成。

Amazon RDS 与其他 AWS 服务紧密集成,包括用于活动监控的 Database Activity Streams、用于审计日志的 AWS CloudTrail 等。与 PlanetScale 类似,副本被用于在多个节点之间分配负载。可以手动配置额外的只读副本。默认情况下会自动配置备份,保留期和备份窗口由用户手动定义。可以手动设置快照。RDS 没有为每个数据库集群配备单独的负载均衡器。要在主实例和副本实例之间分配流量,用户可以在应用层手动定义逻辑,将读和写定向到任一实例。故障转移会自动切换到不同可用区中的备用实例。

虽然 Amazon RDS 是一种托管解决方案,但关于该服务的一个常见抱怨是,许多用户最终仍需手动管理数据库操作。与 PlanetScale 相比,RDS 不会自动进行负载均衡或处理主要版本升级。它需要用户输入备份窗口,其托管服务不会微调集群资源、创建全面的灾难恢复计划,或针对你的数据模型设计独特的水平分片方案。

PlanetScale 与 Amazon RDS 的变更管理对比

数据库变更管理流程因团队而异。在数据库上执行的变更很复杂,因为你面临不可逆的数据损坏和一致性问题风险。PlanetScale 和 Amazon RDS 提供了不同的方法来配置环境,以便在推送到生产环境之前测试这些变更。

此外,通过类似 Git 的变更管理工作流,并结合 CI/CD 工具,PlanetScale 使构建、测试和部署数据库变更到生产环境变得容易,且风险最小。Amazon RDS 不提供用于模式变更的原生工具,也不支持在线模式变更或模式回滚。

常见问题

Amazon RDS 和 MySQL 是一样的吗?

Amazon RDS 和 MySQL 不一样。MySQL 是一个开源关系型数据库管理系统(RDBMS)。它是一个由 RDS 等服务支持的数据库引擎,允许你以关系结构管理数据。

PlanetScale 和 MySQL 是一样的吗?

PlanetScale 的 Vitess 产品是一个与 MySQL 兼容的数据库平台。它构建于开源 Vitess 之上,这是一种中间件技术,旨在扩展和管理超大规模 MySQL 部署。PlanetScale 提供托管数据库服务,可实现 MySQL 的水平扩展、多云部署,以及其他支持高可用性并让大规模 MySQL 部署更易管理的功能。除了提供改进的工具、扩展和模式管理之外,PlanetScale 很快还将引入向量搜索和存储,而这目前在 MySQL 中尚不可用。

PlanetScale 比 Amazon RDS 更好吗?

PlanetScale 的 Vitess 产品是一个完全托管的 MySQL 兼容数据库平台,支持各种规模组织的发展。它是唯一基于开源 Vitess 构建的解决方案,这项技术曾将 YouTube 扩展到数十亿月活跃用户。在 PlanetScale 上启动的每一个数据库都能获得 Vitess 的全部能力,而无需自行实现和维护。

PlanetScale 与云无关,并支持多个云平台。它往往比许多解决方案更具成本效益。这是因为 PlanetScale 使用商品级实例类型来最优地服务用户的独特工作负载。如果你想知道这对你的组织来说可能是什么样子,请联系 PlanetScale 的解决方案团队。

除了改进的可扩展性和性能之外,PlanetScale 在设计时就考虑了 CI/CD 和数据库变更管理。这降低了与有状态工作负载变更相关的风险。此外,虽然这两种解决方案都是托管的,但 RDS 用户经常抱怨必须手动管理数据库操作,而 PlanetScale 则是完全托管的。

虽然“更好”是主观的,但由于 RDS 不提供 Vitess 的能力、规模、可移植性或成本效益,PlanetScale 通常被视为更优越的平台。

谁在使用 PlanetScale?

PlanetScale 被 Block、Cursor、Intercom、MyFitnessPal 等高增长组织以及更多用户使用。它为高可用性、高性能和大规模扩展而构建。它是适合拥有密集工作负载的高绩效公司的解决方案,也同样适合刚开始使用 MySQL 数据库的用户,并能有效支持介于两者之间的各种工作负载。

Vitess 和 PlanetScale 有什么区别?

Vitess 是 2010 年在 YouTube 开发的开源中间件技术。它旨在从应用层抽象出来,对 MySQL 进行水平分片,并通常改进数据库管理流程。由于 Vitess 是开源的,组织可以自行实现和维护它。这很复杂,并且需要对这项技术具备一定程度的专业知识,而这种专业知识在基础设施领域较为稀缺。

PlanetScale 是唯一基于 Vitess 构建并使其许多功能大众化的解决方案。部署 PlanetScale 数据库是在云中部署 Vitess 的最简单方式。使用 PlanetScale 数据库,你可以对 MySQL 进行水平分片、获得无限连接、执行在线 schema 变更、回滚 schema 变更等等。

此外,PlanetScale 由 Vitess 的创建者之一 Sugu Sougoumarane 联合创立。PlanetScale 团队也是 Vitess 的顶级贡献者之一,并雇佣了多位 Vitess 维护者。


转载声明:本文为转载整理,原文版权归原作者及原站点所有。

原文来源:PlanetScale Blog

原创地址:https://planetscale.com/blog/planetscale-vs-amazon-rds

原文作者:PlanetScale Blog;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2022-11-21

  • 博文量
    1090
  • 访问量
    546675