为什么MongoDB对开发人员来说“根本上更好”

MongoDB联合创始人兼前首席技术官Eliot Horowitz回顾了MongoDB的创立及其在该公司工作的13年

为什么MongoDB对于开发人员来说“根本更好”

发明一种新型数据库并假定它将接管整个世界,需要一定数量的chutzpah(好吧,其中很多)。也许不完全是假设,但是,正如MongoDB联合创始人埃利奥特·霍洛维茨(Eliot Horowitz)在接受采访时说的那样,“如果有人要这样做,我们几乎是所有人中最大的机会。”

不是Oracle,它在关系数据库(RDBMS)中拥有数十年的统治地位。不是IBM,它的数据库业务日渐衰弱,而是大批有才华的工程师。不是Microsoft,后者通过SQL Server为RDBMS世界注入了新的活力。甚至没有开源的新贵出现在MySQL和日益流行的PostgreSQL上。

不,是两位纽约人Horowitz和Dwight Merriman想要对平台即服务(PaaS)进行一次新的尝试,但是却以某种方式建立了一个数据库。霍洛维茨说:“由于我们的所作所为,数据库世界永远都在改变。”听起来很嚣张,但事实并非如此。但是,为什么要如此,值得深入了解。

Horowitz在使用公司和产品13年后,最近从MongoDB退休,这为评估他所做的工作提供了机会。为什么MongoDB对开发人员来说“根本上更好” 

‘我们推动了行业’

但是,让我们先备份一下。查看DB-Engines数据库受欢迎程度排名之类的东西很容易 得出错误的结论。“ MongoDB是第五大最受欢迎的数据库,但仍被广泛使用,是Oracle和MySQL的三分之一!” 鉴于企业不愿意使用经过考验的数据库,即使采用这种水平也令人印象深刻。数据库是组织内“最粘”的产品,更改的可能性最小。因此,对于MongoDB来说,它已经超越了数十年来被广泛采用的数据库(DB2,Ingres等),并且相对于像Oracle这样的RDBMS坚定者来说,其受欢迎程度仍在继续增长……?那很重要。

但是,MongoDB影响力的更有效指标是这些老牌企业在新贵方面的贡献。

霍洛维茨说:“其他所有传统产品,例如Postgres,MySQL,甚至Oracle和SQL Server,都采纳了MongoDB的许多思想,并试图以自己的方式将它们混为一谈。” “即使开发人员说,’我永远也不会使用MongoDB!我将使用Postgres,因为它具有JSONB以及所有其他功能。’”正如Horowitz强调的那样,之所以存在JSONB之类,正是因为MongoDB推动了行业采用它们。对于那些“讨厌MongoDB却对JSONB狂热”的人,Horowitz只是说:“不客气。”

但是,再一次,狂妄自大。或chutzpah。还是促使Horowitz和Merriman前进的一切,尽管行业中的一切( 一切)都是 为了确保他们的失败而建立的。那个是从哪里来的?

数据库很烂,需要有人修复它”

Horowitz和Merriman在包括DoubleClick和Shopwiki在内的几家公司一起工作,而且正如Horowitz解释的那样,数据库一直在妨碍人们的发展。或者,更直言不讳的是,“使用数据库很烂,有人需要修复它,如果没有其他人要去修复它,那可能就是我和德怀特。我们知道我们有出色的表现。它远非灌篮高手,但…如果有人要这样做,我们几乎是任何人都可以得到的最好机会。”

那时要做的显而易见的事情是建立一个更好的RDBMS。来填补MySQL和Postgres留下的空白,这两者已经越来越流行。但是,这是什么霍洛维茨也没有想这样做。他想建立一种完全不同的数据方法,该方法映射到开发人员的编程方式,而不是某些ERP系统对整洁的行和列的需求。

正如Horowitz解释的那样,数据模式的行和列方法根本不像应用程序代码中所表示的数据那样。在现代编程语言中,要存储在数据库中的事物(例如订单,客户等)被表示为一个完整的对象,所有相关属性都包含在单个数据结构中。开发人员和数据库管理员之间的这种不匹配要求对丰富的应用程序结构进行转换,以使其符合RDBMS的严格规则。这样,即使最简单的应用程序也具有RDBMS中的科学怪人特质,需要数十(甚至数千)张表才能捕获开发人员曾经简单的数据建模。

Horowitz说,MongoDB开发人员提供了生命线。

“如果您雇用以前从未使用过数据库的人,然后教给他们MongoDB,然后教给他们关系数据库,那么MongoDB对他们而言将变得更加轻松和直观。” 是的,如果您使用的是会计或分类帐系统,则RDBMS专为此类应用程序而设计,并且它们运行良好。“但是对于其他所有方面,关系模型都行不通,”霍洛维茨宣称。

如果您使用的是编程语言和数据库,那么很奇怪的是,在某些方面,使用MongoDB时,[MongoDB] API比数据库更像您的编程语言。因此,接起来非常简单。是的,对于许多核心概念,例如索引和查询,是的,它是一种不同的查询语言,索引稍有不同,但是从根本上说,索引是相同的。MongoDB的基础知识非常容易掌握。

霍洛维茨说,在过去的13年中,他的公司要做的许多事情,都是对那些在RDBMS上长大并需要学习新方法的人进行再教育。但是对于那些数据库新手来说,“ MongoDB比其他数据库直观得多。它非常适合人们的思维方式。” 因此,Horowitz继续说道:“根据我的偏见,如果您是从头开始,则几乎应该始终使用MongoDB。”

“云永远是愿景”

当被问及是否可以确定何时知道MongoDB的赌注会获得回报时,Horowitz考虑了一会儿,然后说:“ 2010年4月。” 那时,MongoDB在旧金山举办了一个活动,该活动在48小时内被抢购一空。“人们喜欢核心概念,一切都变得容易得多。” 直到那时,霍洛维茨明确表示,有些时候他担心“这件事会起作用吗?” 但是在2010年4月,他知道答案是肯定的“是”。

这并不是说他命中了巡航控制系统。“即使那样,我们也知道添加我们想要的功能以及企业将需要的功能将花费10年的时间。”

这些功能之一就是云。

鉴于MongoDB从可能的PaaS开始,Horowitz建议从第一天开始云就已在路线图上,这并不奇怪。“在开始构建MongoDB之后不久,我们还开始构建MongoDB监视服务,该服务为Atlas提供了基础。” MongoDB数据库即服务现已占该公司收入的42%。“我们的目标始终是提供全面的数据库服务。”

这在很大程度上与公司为开发人员带来生活便利的愿景有关。“作为开发人员,我们知道没有人愿意自己管理数据库,只要他们能够找人来为他们做同样安全可靠的数据库。” 但是,要完全实现这一愿景还需要等待,因为即使像MongoDB这样的资金雄厚的创业公司也无法一次完成所有工作。“我们必须花费所有的时间和精力来使数据库正确,否则就不会发生。这就是为什么我们开始使用“服务即监视”的目的,只是为了确保我们了解如何大规模运行云服务。” 此外,该公司在信用卡处理和支持系统等方面进行了修补,以“在实践中进行练习,以便在我们准备正式推出Atlas时,这并非从头开始。”

最终,Horowitz相信“使用Atlas运行MongoDB的人的比例将接近100%”,尽管不可能达到100%。Horowitz坚持认为,随着“绝大多数”应用程序迁移到云中,“没有理由不使用Atlas”。 

“你不可能说我们没有成功”

当被问及下一个MongoDB可能来自何处时,Horowitz并没有将竞争对手作为指导原则,而是促使他和Merriman建立MongoDB的同一原则:“您必须做一些根本上比其他事情更好的事情。如果您推出的产品能够完成MongoDB或Postgres的所有工作,但价格便宜10倍或快10倍,那将非常引人注目。” 也就是说,他补充说:“我不知道现在如何在数据模型中击败MongoDB。”

但Horowitz认为,可能有趣的是,从根本上来说,不同的数据库体系结构可以利用公共云基础架构来使事情便宜得多。“很多人正在为此做准备,但没人真正做到这一点。没有什么架构上有根本不同。”

这使我们回到了起点。霍洛维茨宣称:“如果考虑到我们打算做什么,这将使数据库从根本上变得更容易,并且从根本上使开发人员更好,那么就无法断定我们没有成功。” “ MongoDB远远优于我们刚开始时所存在的任何其他事物。” 有些人可能不同意,但很少有人不同意他的下一个说法:“由于我们所做的,数据库世界将永远改变。太棒了。”

原创文章,作者:冰封一夏,如若转载,请注明出处:http://www.nncjzx.com/1081.html

关注本站公众号获取更多实时内容

本站微信公众号:二线码农