关于云计算:RethinkDB​​为什么我们失败了

28次阅读

共计 4916 个字符,预计需要花费 13 分钟才能阅读完成。

本文来自 rethinkDB 失败后的复盘,正是因为有点年代当初拿出来看更有意思,能够对复盘作个复盘,哪些剖析和对将来 (也就是明天) 的判断不对,原文地址:https://www.defmacro.org/2017…

翻译:laf 作者 laf 是一款写代码像写博客一样简略的函数计算框架,反对云函数,云数据库,云存储,疾速开发 SaaS 利用利器。sealos 作者 以 kubernetes 为内核的云操作系统发行版,让云原生简略遍及,让一部分企业先飞到云上。

当咱们发表 RethinkDB 将敞开时,我承诺会写一份预先剖析。我花了一些工夫来解决这段经验,当初我能够分明地写进去了。

在 HN 探讨帖中,人们提出了 RethinkDB 失败的许多起因,从莫名其妙的兽性和 MongoDB 营销人员的聪慧诡计,到未能建设经验丰富的上市团队,再到不足超过 64- 的数字类型反对。我在这里将这些评论汇总成一个倡议的失败起因列表。

其中一些起因对他们来说有肯定的情理,但它们是症状而不是起因。

预先看来,有两件事出了问题——咱们抉择了一个蹩脚的市场,并针对谬误的指标优化产品。每个谬误都可能使 RethinkDB 的估值升高一到两个数量级。因而,如果其中任何一个都正确,RethinkDB 的规模就会与 MongoDB 一样大,如果咱们两个都正确,咱们最终可能会达到 Red Hat[1] 的规模。

| 蹩脚的市场

咱们的想法是这样的。新公司并没有建设在甲骨文之上,因而有机会建设一家新的基础设施公司。数据库市场微小。如果咱们开发的产品可能霸占该市场的一部分,咱们最终将建设一家十分胜利的公司。

可怜的是,你不在你认为你所在的市场——你在你的用户认为你所在的市场。咱们的用户分明地认为咱们是一家开源开发工具公司,因为这才是咱们真正的指标。事实证明这是十分可怜的,因为开源开发人员工具市场是可能最蹩脚的市场之一。成千上万的人应用 RethinkDB,通常是在商业环境中,但大多数人违心为应用期限领取的费用低于一杯星巴克咖啡的价格(也就是说,他们基本不违心领取任何费用)。

这不是因为产品太好了,人们不须要为反对付费,也不是因为开发人员不管制估算,也不是因为资本主义的失败。答案是根本的宏观经济学。开发人员喜爱构建开发人员工具,而且通常是收费的。因而,只管需求量很大,但供应量却大大超过了它。这推动了替代品的数量减少,并将价格降至零。

要理解这对其余公司有何影响,请思考 MongoDB(价值约 1.6B 美元,领有约 700 名员工)和 Docker(价值约 1B 美元,领有约 300 名员工)。两家公司在各自的市场中齐全占据主导地位。对于处于成长阶段的私营科技公司来说,两条十分粗略的教训法令是估值是年收入的 10 倍。这意味着 MongoDB 的年收入在 1.6 亿美元左右,Docker 的年收入在 1 亿美元左右。

这看起来相当不错,直到您看到市场上的非开发工具占主导地位的 B2B 技术公司。像 SalesForce、Palantir 或 Box(面临强烈竞争)这样的公司。忽然之间,MongoDB 和 Docker 开始看起来很小。这些都是微小的胜利。

如果领有现有合作伙伴关系、分销基础设施和大客户拜访权限的绝对成熟的公司在成长过程中遇到困难,这对于处于萌芽阶段的初创公司意味着什么?

对咱们来说,这意味着一个辣手的客户获取渠道。如果在肥沃的 B2B 市场中的初创公司必须解决 100 条潜在客户能力取得 10 次销售机会,那么对于开发工具初创公司来说,这个数字会减少 10 倍。您能够接触到大量高质量的潜在客户——很多人正在下载您的产品并与您互动,但您必须通过大量可笑的线索能力收敛到一次销售。

这具备灾难性的多米诺骨牌效应。它使团队士气高涨,使吸引投资和延聘顶尖人才变得十分具备挑战性。反过来,这会限度您的资源,因而您无奈在产品和分销方面进行足够的投资。晚期的分销挑战简直总是注定你最终会死亡。

| 谬误的凶恶指标

好的,所以市场很蹩脚,但其余开发工具公司仍在销售大量产品。为什么不从新思考数据库?

尽管咱们对市场动态无能为力,但产品决策齐全在咱们的管制范畴内。咱们想打造一款优雅、弱小且好看的产品,因而咱们针对以下指标进行了优化:

正确性。咱们做出了十分严格的保障,并且 虔诚地履行了它们。

界面简洁。咱们承当了实现中的大部分复杂性,因而应用程序开发人员变得简略。

一致性。咱们使从查询语言、客户端驱动程序、集群配置、文档到首页营销正本的所有内容尽可能保持一致。

事实证明,对大多数用户来说,正确性、界面简略性和一致性是谬误的衡量标准。大多数用户想要这三个衡量取舍:

准时到达。他们心愿产品在须要时理论存在,而不是三年后。

触手可及的速度。人们心愿 RethinkDB 可能疾速解决他们理论尝试过的工作场景,而不是咱们倡议的“事实世界”中的场景。例如,他们会编写疾速脚本来测量插入一万份文档而不读回它们须要多长时间。MongoDB 杰出地把握了这些场景,而咱们则打了一场失败的教育市场之战。

一个用例。咱们开始构建一个好的数据库系统,然而用户想要一个做 X 的好办法(例如从 hapi 存储 JSON 文档的好办法,存储和剖析日志的好办法,创立报告的好办法等)

并不是说咱们没有尝试疾速公布,让 RethinkDB 疾速,并围绕它构建生态系统以使有用的工作变得容易。咱们做到了。然而正确、简略和统一的软件须要很长时间能力构建。这使咱们落后于市场三年。

当咱们感觉 RethinkDB 满足了咱们的设计指标并且咱们有足够的信念举荐它用于生产时,简直每个人都在问“RethinkDB 与 MongoDB 有什么不同?”咱们致力解释为什么正确性、简略性和一致性很重要,但最终这些并不是大多数用户关怀的好指标。

说实话,很痛。它挫伤了很多。咱们无奈了解为什么人们会抉择一个简直不做它应该做的事件(存储数据)的零碎,有一个大内核锁,随机抛出谬误,实现单节点性能,只管分片零碎是产品的外围性能之一,但它简直不能失常工作,基本上没有提供正确性保障,并且裸露了一个大杂烩,没有显著的一致性或视觉统一性。

每次 MongoDB 公布一个新版本并且人们恭喜他们做出改良时,我都会感到一阵恼恨。他们会发表他们修复了 BKL,但实际上他们会将粒度级别从数据库升高到汇合。他们会增加更多的操作,但不是一个适宜零碎其余部分的可组合界面,他们只是简略地应用一次性命令。他们会改良分片,但很显著他们不违心或无奈做出最根本的数据一致性保障。

但随着工夫的推移,我学会了观赏大众的智慧。当人们须要时,MongoDB 将一般开发人员变成了英雄,而不是预先几年。它使数据存储疾速,让人们疾速运送产品。随着工夫的推移,MongoDB 成长了。他们一个接一个地解决了架构的问题,当初它是一个优良的产品。它可能没有咱们想要的那么丑陋,但它能够实现这项工作,而且做得很好。

当 2014 年年中咱们无奈竞争时,咱们致力与 MongoDB 辨别开来。咱们找到了一种十分优雅的形式来增加 实时推送,心愿可能让开发者构建出他们以前无奈构建的一代应用程序。但这还不够。忽然间,咱们发现自己与 Meteor 和 Firebase 竞争,这些公司多年来始终致力于解决实时问题,甚至在咱们想到之前。咱们又一次落后于市场三年,咱们又一次发现自己无奈竞争。

| 云呢?

一些人倡议咱们应该构建一个云产品。实际上,咱们的确有一个正在开发中,所以这是我想介绍的一个乏味的话题。

小型数据库公司构建云服务的一个显著问题是,它的模式与常见的启动失败模式相匹配——决裂焦点。构建、交付和经营牢靠的多租户云服务十分艰难。它须要不平庸的专业知识和资源,所以如果你走这条路,你会发现自己同时经营两家初创公司。然而咱们面临着生存威逼并且很快就没有抉择了,所以咱们还是试了一下。让咱们临时假如咱们能够实现它。

咱们的推理是这样的。数据库云产品可能意味着以下三件事之一:托管、数据库即服务 (DBaaS) 或增值平台即服务 (PaaS)。让咱们应用年收入为 20 万美元 / 员工的教训法令疾速回顾一下市场剖析:

托管主机实质上是在 AWS 上为人们运行数据库,因而他们不用这样做。应用这些服务的代替办法是本人在 AWS 上设置数据库。这很苦楚,但实际上并没有那么难。因而,托管数据库托管服务的免费有一个十分严格的下限。思考到 Compose.io 和 mLab 提供的 MongoDB 用户数量比 RethinkDB 多一到两个数量级,咱们推断提供托管不会产生影响。

数据库即服务是托管托管的更简单版本——DBaaS 产品齐全从用户那里形象节点治理。您只需运行查问,零碎就会解决它们。您不晓得引擎盖下运行了多少节点。这项业务十分具备挑战性——局部起因是 DBaaS 公司必须与巨头竞争(例如 DynamoDB 和 DocumentDB),局部起因是当有很多其余替代品和替代品时,客户十分不违心将数据管理齐全交给初创公司。

最初一个抉择是建设一个增值平台即服务。咱们认为这是一个很有前途的方向,因为咱们在这里领有微小的技术劣势。Firebase 和 Meteor 必须在 MongoDB 之上构建应用程序级实时逻辑,这从根本上限度了实时查问能力和大规模性能。另一方面,咱们始终管制堆栈,因而咱们能够提供 Firebase 和 Meteor 无奈构建的显着劣势。

因而,咱们构建了 Horizon 并开始钻研 Horizon Cloud——一种供用户部署和扩大 RethinkDB/Horizon 应用程序的形式。用一个十分小的团队构建三个大型项目(RethinkDB、Horizon 和 Horizon Cloud)的挑战最终赶上了咱们,咱们在资金用完之前从未设法交付云产品。

| 基本问题

咱们还能够进行更高级别的根本原因剖析。为什么咱们抉择了一个蹩脚的市场并针对谬误的指标优化产品?

当我还是个小孩的时候,我想建设本人的收音机。我用胶合板做了一个盒子,在外面扔了一些金属垃圾,而后将盒子连贯到电源线。我家里有对于电子产品的书籍,但我认为我不须要它们——我深信我能够本人做。最终,我的确构建了一个能够工作的接收器,但我花了好几年才最终意识到我须要学习根本的电子学。

晚期的 RethinkDB 有点像这样。咱们对产品或市场没有直觉,所以咱们会在没有真正理解咱们在做什么的状况下实现建设公司的动作。更重要的是,咱们有微小的乐观偏见。咱们置信咱们不受经济法则和经营企业法则的影响。

咱们能做些什么来防止这些谬误吗?就像我小时候能够制作一台能够工作的收音机一样。咱们在人不知; 鬼不觉中能干,这种能干须要数年工夫能力变得无意识。

一些人指出,如果咱们建设了一支经验丰富的上市团队,咱们会做得更好。这是 100% 正确的,但咱们集体倒退的机会与公司的需要不符。最后,咱们不晓得咱们须要进入市场的专业知识,因而咱们没有寻求将其纳入开创团队。等到咱们建设了一个能很好地映射事实的心智模型时,咱们发现自己不足现金,在一个充斥有能力的竞争对手的艰难市场中,以一个落后三年的产品,世界上最好的上市团队也救不了咱们。

| 离别的怀念

许多人对开发者工具市场有着十分强烈的感触。工程师喜爱构建开发人员工具,因而他们十分心愿开发人员工具公司可能蓬勃发展。

我对齐全否定市场当机立断——局部是因为我不想从繁多的教训中概括,局部是因为我不喜爱说“它做不到”,局部是因为有很多例外。GitHub、MongoDB 和 Docker 建设了弱小的公司。GitLab 和 Unity 仿佛做得很好。

如果您的确打算建设一家开发工具公司,请审慎行事。市场上充斥了不错的抉择。用户冀望很高,价格很低。深刻思考您为客户提供的价值。请记住——心愿世界以某种形式成为事实并不会如此。

2009 年,咱们在 YCombinator 演示日向投资者宣传 RethinkDB 的晚期想法(咱们还没有软件)。咱们以一张幻灯片完结了演讲,其中蕴含三个要记住的关键点。

抉择一个大市场,但为特定用户构建。

学会辨认你短少的能力,而后像地狱般致力让他们退出你的团队。

虔诚地浏览《经济学人》。它会让你更快更好。
sealos 以 kubernetes 为内核的云操作系统发行版,让云原生简略遍及

laf 写代码像写博客一样简略,什么 docker kubernetes 通通不关怀,我只关怀写业务!

正文完
 0