Project management 向管理层推广网络数据库

Project management 向管理层推广网络数据库,project-management,couchdb,Project Management,Couchdb,我对CouchDB 0.10运行了一系列有点残酷的测试,它处理得很好(例如,服务器的netstack崩溃了,但我能告诉你CouchDB仍在运行)。不幸的是,如果我不能说服客户和雇主允许我使用它,这些都不重要 我听说过的普遍恐惧 “这是唯一的.10版本,甚至不是生产版本!!!” “但是[MySQL | PostGres | Oracle]对于[object metadata storage | literal“document”storage |等]来说效果很好!” 与XYZ相比,这似乎过于复杂(

我对CouchDB 0.10运行了一系列有点残酷的测试,它处理得很好(例如,服务器的netstack崩溃了,但我能告诉你CouchDB仍在运行)。不幸的是,如果我不能说服客户和雇主允许我使用它,这些都不重要

我听说过的普遍恐惧

  • “这是唯一的.10版本,甚至不是生产版本!!!”

  • “但是[MySQL | PostGres | Oracle]对于[object metadata storage | literal“document”storage |等]来说效果很好!”

  • 与XYZ相比,这似乎过于复杂(基于map reduce的查询、REST api、JSON等)

  • “erlang到底是什么?”

  • *通常情况下,我的规则是告诉客户我会解决问题,但不会详细说明。不幸的是,一些客户把自己想象成坐在后座的建筑师/工程师,或者理所当然地希望得到通知


    **先发制人地认为这与编程有关,因为如果管理层不能/不会看到跳出已知范围的好处,那么工具的性能会有多好并不重要。

    为什么不换一个功能大致相同但测试更像的数据库呢

    额外好处:它不在erlang中,所以当只使用1个核心机器时,它已经很快了。
    (显然,erlang在16或32核之后开始发光)

    虽然肯定很难回答,但我会问自己,如果必须做出决定,我需要听到什么。哪些因素重要(可靠性、性能、成本),哪些因素不重要

    我想每个做我们工作的人迟早都会遇到这样的人。。坐在程序员的后座,更好地了解一切,等等,但决不能让微观管理和“假定的知识”改变基于硬事实(比如你的测试)的决定

    G'day

    你有没有从CouchDB社区的网站上回答过这个问题

    虽然我对二郎很感兴趣,所以我是一个潜伏者,但他们似乎相当活跃

    编辑:Ooh。我刚刚浏览了一下O'Reilly CouchDB新书的粗略剪辑,有一个很好的章节,叫做“”,里面有一些很好的信息。也许值得一读

    注意,正如O'Reilly在他们的网站上所说,“这本书正在进行中。”因此,如果有拼写错误或语法错误,不要感到惊讶。(-):


    HTH

    我认为客户有一系列有效的问题和恐惧。仅仅对数据库运行一组测试并不能保证

    a) 随着时间的推移,代码中不会出现错误。您是否确保每段代码中的每个函数都经过测试?您是否运行了所有可能的查询?即使是微软和IBM,拥有自己的源代码,庞大的测试团队,他们的软件仍然有缺陷。是什么让你认为你可以保证代码中没有bug

    b) 被更多用户使用的软件有更好的机会产生更少的bug。这就是beta测试背后的想法。但是,拥有庞大的用户群更好。因此,他们关于使用PostGres/etc的问题是正确的

    c) 他们说的是接吻——这也是一个合理的问题。你应该能回答

    d) erlang到底是什么?再说一次,你应该能够回答它


    软件就像正义——仅仅可靠是不够的,还必须让人觉得可靠。那是你工作的一部分。用户正在尝试管理他的风险。如果你不能回答这些问题,那么他为什么要信任你的软件呢?

    几年前,我在说服客户使用python+postgreSQL进行web而不是asp、php或其他任何东西时遇到了同样的问题

    对我来说,除了解释技术优势外,还有一些成功案例

    在CouchDB案例中,您可以引用:

    • 英国广播公司:
    • 米波
    • Ubuntu:
    • Mozilla
    幻灯片中引用了其他公司的例子。

    1)1.0预计将在未来几个月内完成,以解决您遇到的确切问题,而人们并不认为当前版本符合标准

    2) 虽然map/reduce可能比SQL稍微复杂一点,但您可以跨不同类型的数据集执行复杂得多的索引,而无需在RDBMS中执行所有的表关系垃圾。另外,这只是索引部分,将中的数据获取到CouchDB非常简单,将其获取到JSON,通过HTTP推送,完成

    在我“说服”人们使用CouchDB的大多数时候,我只是向他们展示了一些我们需要做的事情,这些事情在RDBMS中是不可行的


    对我来说,最引人注目的事情仍然是将数据输入CouchDB是多么容易。这不会阻碍我们的任何努力,当我们提出模式和调整ORM时,我们只需立即插入数据并根据需要添加索引,这是一个更高效的循环。

    我最喜欢的CouchDB背后的KISS原理说明之一,它与“所有代码路径都经过测试了吗?”CouchDB大约有15k行代码,而ActiveRecord、Rails的ORM大约有25k行代码(上次我检查时),只是为了让RDBMS与OO语言对话。虽然这显然是在比较苹果和平房,但它应该表明CouchDB本身相对简单,代码大小可以管理。(所有这些都很重要,因为每行代码的bug数量是恒定的)

    CouchDB的另一个优点是它是一个Apache项目。它确保了一个稳定的社区(不一定是软件:)和长寿,在为一个将使用多年的项目投入资金之前,了解这一点很重要

    @雷尼尔:是什么让你认为MongoDB测试得更好?而且,Erlang在单核上非常棒,而且它在2、4或更多核上都不会变跛。这并不是说您只在使用单个cpu时获得好处。Erlang的设计