Eric:都有哪些机构的工作者在推动MongoDB采用的前行? Eliot:毫 无疑问,开发者是最大的推动者。架构师因为一些架构上的问题使用MongoDB,有些情况下运营团队使用MongoDB来减少运维复杂度,有些时候类似 VP及CIO也期望使用它来创新。但是,我认为这些都只是基础,重点在于使用并喜欢它的人们,他们可能会对CIO上报:瞧,我正在使用这个产品,我认为它 可以在更广泛的项目中投入使用,它肯定会运行的很好。 Eric:从运营的角度上看,我听到反馈说MongoDB扩展并不像宣传的那么容易,这些人的问题是出在了什么地方?你们是怎么回答的? Eliot:我认为最大的问题在于MongoDB的底层系统设计是针对最大横向扩展性及许多常见的运维操作,而当下这些最常见的运维操作可能还不是最简单的。我们尽力让MongoDB由一堆很小的独立组件组成,让用户基于需求选择来解决扩展难问题。 那么问题就发生了,使用这种新型的集群,你可能需要管理许多小的部分。从运维的角度来说,这确实令人烦恼。这个部分会在今年搞定,将会推出一套自动化系统,只需简单的点击就可以完成工作。同时,我们还将推出管理大型分布系统的工具,彻底解放运维人员。 Eric:在MongoDB中,一些最常见的错误是什么? Elito:或许也不能称之错误吧,MongoDB面临最大的挑战就是正确的数据模型。因为MongoDB非常灵活,所以用户经常不考虑花时间去设计比较合适的模型,最终这将演变成搬着石头砸自己的脚。 对于传统的RDBMS来说,它们只提供简单的模型和选项,而基于太多的硬性规则,用户一般也不容易陷入困境,这点在MongoDB中就很可能发生。因此,用户需要阅读一些相关的书籍和文档,避免误区。 使用关系型数据库的思维管理MongoDB,把MongoDB当做关系型数据库来使用,这样无疑会带来困境而不是好处。 Eric:什么会让你夜不能寐? Eliot:对于我们来说,最大的挑战就是让产品运行良好,让用户喜欢MongoDB。毫无疑问的是,对比5年后的产品,当下在技术方面还存在很大的差距。坦率的说,在产品的这个生命周期,我们拥有了太多的用户。 如果你对比MongoDB和其他数据库的同个生命周期,MongoDB无疑拥有更多的用例,这点同样表现在企业级应用上。因此我们必须要做好迭代速度与谨慎方面的考量,平衡好速度与可靠性,因为许多应用场景都是任务关键性应用。 原文链接:11 questions for MongoDB's CTO(编译/仲浩 审校/魏伟) |