PlanetScale于6月23日在 a16z 和 SignalFire 的参与下获得了 3000 万美元的 B 轮融资,采取了略有不同的方法。该公司研究了 MySQL,喜欢它所看到的,并围绕它进行了所有增强。核心仍然是 MySQL,运行标准引擎并响应标准查询,但包装器处理了分片和复制的所有挑战,从而可以创建 PlanetScale 所说的可以在几秒钟内启动并扩展的数据库“无限期。”

图片来源:Pixabay
该公司表示,开发人员可以在几秒钟内创建一个新的数据库,该数据库会随着他们的增长而增长,而对可扩展性没有限制。开发人员不需要了解环境,例如新的云区域、集群大小和其他“以数据库为中心的细节”。该公司在一份声明中表示,新一轮融资将用于在全球范围内扩展团队,并加速该平台的曝光和采用。
为了更多地了解这些额外层的内置内容,VentureBeat 与 PlanetScale 的首席产品官 Sam Lambert 坐了下来。他告诉我们,PlanetScale 的创新中有一些基于 Vitess,这是 MySQL 的一个分支,源于 YouTube 的工作,用于水平扩展全球。Vitess 正被 Slack、GitHub 和 Square 等超大规模公司使用。
为简洁和清晰起见,对本次采访进行了编辑。
VentureBeat:PlanetScale 的最大目标是什么?
Sam Lambert:几乎所有数据库的问题在于,没有人构建数据库会考虑使用它们的人的日常生活。就这样简单明了。我们在 PlanetScale 的不同之处在于我们正在了解开发人员的日常生活,并解决与数据库相关的开发人员问题。
VentureBeat:开发者还想要什么?还是需要?
Lambert:还记得NoSQL运动吗?MongoDB 将自己推销为一种工具,开发人员不必照看他们讨厌的模式、难以管理的模式——难以部署和使用的模式。这一切都是真的,对任何关系数据库的所有批评都是非常真实的。
我们所做的是允许分支和部署架构更改请求。您可以测试您的架构,然后将其推送到生产中。它作为完全可用的非阻塞更改滚动。就好像您刚刚推送了代码。它具有易用性,没有任何问题。因此,您可以通过所有开发人员工作流程获得强大的 MySQL 优势。
VentureBeat:这与仅使用 SQL 执行架构更改有何不同?
Lambert: SQL 命令会锁定表。这会导致可怕的停机时间,您的应用程序会变慢,您的查询会堆积如山——这只会是一团糟。
VentureBeat:所以您能够通过锁定生产来进行更改吗?
Lambert:按照我们的方式,它只是异步地将更改滚动到生产环境中——但如果我们看到流量激增,我们就会停止。我们只是暂停我们正在做的事情,让流量结束,然后我们继续迁移它。所以它就像一个真正安全的代码部署,就好像它只是出去到数据库集群中的所有这些节点。
因此,如果您想进行架构更改,您就有了您的表。这是您的用户表。您想添加一列来跟踪用户是否订阅。我们所做的是创建一个空的 users 表的副本。只是架构。我们添加 subscribed 列,然后我们慢慢开始将现有列中的数据蚕食到新列中。我们以在线方式进行。所以它只是引入任何新的更新。它们得到应用,我们一直在蚕食。当它们彼此保持最新状态时,我们会立即进行交换,并且新列已投入生产。旧表在那里,我们将其删除,新列已投入生产。这与部署应用程序时的方式相同:将新 pod 投入生产。这是开发人员非常熟悉的一种做事方式。
VentureBeat:Vitess适合在哪里?
Lambert: Vitess 是为 YouTube 提供支持的超大规模开源数据库技术,支持从 Slack 到 GitHub 的所有内容,但它很复杂。维护起来很麻烦。很难从大公司中取出一些东西并将其应用于中型市场或小公司,更不用说小团队或个人了。它专为 Google 和 YouTube 打造。他们利用它做了大量工作。它适用于数据库人员。它适用于基础设施人员。
VentureBeat:所以它与 MySQL 结合了?
Lambert:有了新的 PlanetScale,我们已经为您做到了。我们只是完全消除了复杂性。我们是您的基础设施人员。我们是您的数据库人员。我们会在您作为开发人员的地方与您会面,在那里您不了解区域、集群和服务器以及其他人要求您选择的所有内容。但我们建立在 Vitess 之上,拥有 Vitess 的力量。
VentureBeat:你在那里使用了分支这个词。它像一个 Git 存储库吗?
兰伯特: 分支是一些真正的魔法酱。因此,当您获得一个分支时,获得一个全新的集群,它是一个与您当前集群完全隔离的集群。这是一个完全隔离的环境。
VentureBeat:这就像一个临时集群?
兰伯特:不。我相信你知道,临时环境对每个人来说都是一个地狱般的问题。我们将取消暂存环境的概念。他们是不必要的混乱。这只是维护分支的另一个负担。
我们说:不要有这种单一的登台环境。只需为每个代码分支创建一个分支。这本身就是一个很好的环境。测试一下,推送部署。然后它就消失了。拥有尽可能多的分支机构。如果你愿意,每个开发人员有 100 个。它们都是用于登台的环境,但它是跨代登台环境旧世界的一次跨越。
VentureBeat:在我们遇到的一个项目中,老板不想为太多的测试集群付费。
兰伯特:是的,如果你的项目很大,克隆它们的成本是巨大的。如果您建立一个分支,您最终不会使您消耗的资源数量增加一倍。这是一个轻量级的小子集。
VentureBeat:在我参与的一些项目中,暂存和测试集群将开始与生产不同。我们无法让它们同步。代码将在暂存中运行并在生产中失败,或者更糟糕的是,在生产中运行但在暂存中失败。我们无法对其进行测试。我们只会交叉手指并将其投入生产,因为我们知道分期已经过时了。
Lambert:我所见过的最好的临时环境是它们采用昨晚的备份并将其恢复到一个单独的集群中。所以,它有点陈旧,而且很脆弱。
我们不这样做。我们在 PlanetScale 上托管 PlanetScale 的主数据库。当我们添加一个特性时,我们在本地对其进行编码并创建一个数据库分支。完成后,我们推动更改,它们都被赶上了。
VentureBeat:那么,当数据库开始增长时,您如何扩展?
Lambert:水平分片。它非常优雅,将问题分解为多个小块。分片更优雅,而不是堆叠你的机器。如果您将数据拆分为商用机器上的分片,您不仅会获得与垂直扩展环境中相同数量的 CPU 内核服务于读取,还会获得更多服务写入。复制延迟不会成为问题,您只会不断增长。
VentureBeat:当查询需要涉及所有分片时会发生什么,也许是为了构建一些聚合报告?
兰伯特:确实发生了。但是您可以优化,我们会为您提供方法。肯定有跨分片聚合,这有点慢。但是当你需要它时,与传统的一致性问题相比,这些都是简单的优化,这是一种更难以理解的方式。
VentureBeat:您产品的核心是 MySQL。你用的是股票版本吗?
Lambert:问题是 MySQL 是最好的。在存储和存储引擎方面,这几乎是首演。你就是无法击败它。您可以访问所有存储引擎——我们与其他 MySQL 人员兼容。但是,对于我们使用它的纯存储引擎来说,它恰到好处。
VentureBeat:无服务器对您来说意味着什么?
兰伯特:看看我们的竞争对手。他们问你想要多少个节点。多少个服务器 CPU?多少个 VCPU?IO多少?垃圾!我们不要求任何这些。当您注册我们的产品时,我们会创建您的数据库。我们会为您自动缩放,因为我不相信这些信息是必要的。我们是专家。我们喜欢数据库。我们建立数据库。我们为您处理这个问题。
此外,人们对我们的计费模式感到兴奋,因为人们真的只是讨厌觉得他们因不使用的东西而被收费。我们按您读取的每一行和您写入的每一行向您收费,然后是您使用的存储量。就是这样。没有 VCPU。没有预留 IO。都不是。只是你消费什么,你做什么。这是一种真正令人敬畏的服务体验。
VentureBeat:像 PlanetScale 这样的名字意味着你必须构建一个相当大的云。
兰伯特: 我们有一项支持业务,基本上是为我们的客户这些大型公司保留的。如果您访问我们的首页或看到其中一些家喻户晓的徽标,那就是我们的客户。但我们的主要命运在于我们的云产品。所有这些分支和架构更改的魔力都由云提供支持。我们的路线图包含一些即将推出的非常酷的功能,需要云。这些是您只能在云服务中提供的功能。这是人们想要的。无服务器正在获胜。无服务器正在发生。
文章来源:https://venturebeat.com/2021/06/23/planetscale-simplifies-distributed-database-complexity/




