Ruby On Rails是否已为企业做好准备?

时间:2008-08-18 15:53:50

标签: ruby-on-rails ruby enterprise

是否有人使用RoR进行大规模,关键业务的企业应用程序?

是否有其他基于动态语言的轻量级网络框架,人们正在使用这些类型的应用程序?

如果您没有使用这些类型的应用程序框架,那么什么阻止了您?它只是与任何大型IT组织相关的惯性。这些框架的速度和稳定性问题是否足以抵消开发周期时间的改进?

20 个答案:

答案 0 :(得分:124)

为了考虑Ruby on Rails是否为企业做好准备,你必须考虑“企业”这个术语的含义。根据我的经验,企业意味着“安全”。寻求企业解决方案的公司通常会选择大型供应商支持的技术堆栈。通过这种方式,他们知道他们可以获得支持并可能获得咨询以换取花费大量资金。这是整个“没有人因为购买IBM而被解雇”的方法。

要考虑的另一个因素是无处不在。毫无疑问,现在Ruby仍被视为一种有点异国情调的语言,熟练的Ruby程序员可以反映这一点。从技术上讲,Ruby 比Java或C#更复杂,在OO纯度方面更接近Smalltalk,在元编程设施方面更接近LISP。可以说,公司将会发现,与Ruby程序员相比,从体育馆购买Java或.NET程序员的速度更快。这不是为了侮辱Java或.NET程序员,而是反映了这样一个事实:有许多雇主仍然认为软件开发是最便宜的竞标者要做的事情,而不是应该做的事情。 Java和.NET程序员现在几乎都是商品,因此可以以更低的成本提供。

从技术上讲,Ruby on Rails可以像Java,.NET或PHP等一样扩展。相同的基本原则适用于测量瓶颈所在,调整SQL查询,最小化I / O,可能会对数据库模式进行非规范化。适当的,并明智地使用缓存等。如果您确实需要构建下一个eBay或亚马逊,那么您应该手动滚动并手动调整自己的解决方案,就像eBay和亚马逊所做的那样。 J2EE在遗留集成方面具有优势,但这不是Rails优化的用例--Rails就是构建新的CRUD应用程序。

毫无疑问,目前Ruby是表现较慢的语言之一;在这个领域正在进行大量的投资,因此预计未来几年的情况会有所改善,就像Java首次出现以来一样。在Ruby VMs领域和MRI的替代品(Matz Ruby Interpreter)中有许多有趣的发展。我个人认为JRuby是一个值得关注的人。它得到Sun的支持(图),因为它是Ruby的Java实现,它可以用来通过现有的JVM基础架构将Ruby引入企业。

我认为Rails并不适合企业,在很多方面我希望它永远不会存在。我并不特别希望看到我最喜欢的框架因为在J2EE世界中对我来说很明显的多供应商选择的平庸或混乱而陷入困境。令人高兴的是,DHH似乎已经确定Rails应该继续使用自以为是的软件来搔痒自己的痒,而不是试图成为所有公司的所有东西。

答案 1 :(得分:25)

我认为很多人对“企业”这个词的含义感到困惑。 YelloPages.com和Penny Arcade不是企业应用程序。当然,他们可能拥有大量用户和点击/分钟,但他们是相对简单的应用程序。

企业应用程序是用于运行企业的应用程序 - 通常意味着一个大型的多部门,多地点的公司。 SAP是一个企业系统,BaseCamp不是。

您通常会在企业应用中看到的一些特征是:

  • 他们既大又复杂。典型的ERP系统需要处理100个实体类型。
  • 他们经常需要与其他系统集成,需要为第三方提供集成点。
  • 他们拥有大量不同的用户类型和角色,主要反映了大型组织中不同的工作类型。

要回答你的问题,我会说是的,Rails准备好了。我们目前正在为跨越20个部门的1000多名用户开发一个大型系统财务管理系统。可扩展性对我们来说不是一个大问题,但可靠性和可用性是。无论技术堆栈是什么,解决这个问题都是一样的。

我会重复其他人对熟练开发人员的观点,但这又适用于任何技术堆栈。让一个普通的开发人员在一个非关键的小系统上工作可能没问题,但是如果你真的想要开发一个关键且在整个企业范围内的应用程序,你最好让最聪明的人工作。

答案 2 :(得分:12)

由于我的日常工作与企业架构有关,我认为企业这个词现在不是关于规模或规模,而是更多地涉及软件产品的销售方式。

例如,Ruby on Rails不是企业,因为没有供应商会进入您的商店并为开发者社区重复进行Powerpoint演示。 Ruby on Rails没有销售主管带我去高尔夫球场或我最喜欢的餐厅吃午饭。 Ruby on Rails也没有被Gartner等行业分析公司深深报道。

Ruby on Rails在这些事情发生之前永远不会被视为“企业”......

答案 3 :(得分:10)

我是IBM的顾问,过去一年我为使用Ruby on Rails的客户构建了几个网站。毫无疑问,Rails“为企业做好了准备”。关键是使用rails来擅长它,并使用J2EE或其他优秀的“企业工具”。 Rails在任何应用程序的演示结束时都很棒。您可以使用RESTful Web服务而无需大约0个工作,这是与其他“企业”工具的良好集成点。

也许我不会使用rails来构建yahoo.com,但那没关系。从企业到最小的IT商店,您可以使用成千上万的完美壁龛。

答案 4 :(得分:9)

我们正在使用Ruby on Rails主要用于“企业”关键业务应用程序。对我们来说,将Ruby与其他“企业”系统集成起来要容易得多,例如:

  • 我们在Oracle数据库之上使用Rails
  • 我们将Rails应用程序与Oracle电子商务套件(ERP和CRM系统)集成在一起
  • 我们将用户身份验证与LDAP目录,NTLM Windows域身份验证,Oracle电子商务套件身份验证
  • 集成在一起
  • 我们构建REST和SOAP Web服务以与其他系统集成

有许多“企业”集成平台应该做这样的事情,但它们通常成本很高,而且你经常遇到一些问题然后你依赖供应商,如果他将解决问题或不。

使用Ruby和其他开源组件,您始终可以自己解决问题,因为您可以深入了解问题的根源,并且不会隐藏任何内容。

因此,如果你有聪明的开发人员喜欢解决难题,那么Ruby将成为他们的优秀工具。但是如果你有普通的开发人员不想学习任何新东西,并希望供应商能够完成他们的工作,那么Ruby可能不适合他们。但我怀疑普通开发人员能够使用任何工具创建出色的软件。

答案 5 :(得分:9)

IBM,Oracle,Sun和JPMorgan Chase只是使用Ruby on Rails的少数几家公司。它可能不会比那更加企业化。

答案 6 :(得分:6)

这是我对此的看法。我的公司(拥有120,000名员工)拥有主要用于内部IT的Java / J2EE堆栈。他们还使用Sharepoint进行文档/知识管理,使用Oracle应用程序进行工作流等。在过去的两年中,我领导了一小组Ruby on Rails / Python-Django / PHP爱好者,积极探讨在企业内部采用这些框架。 。我们遇到的通常(通常是无效的)论据

  1. 它不会缩放
  2. 这对企业来说不够安全
  3. 但是,我们设法推出了一些应用程序(Wordpress for blogging,一个定制的Yahoo回答,如内部社交Q& A应用程序和基于Digg风格的Rails的Idea / Innovation mgmt应用程序),事情真的发生了很快变化时间。现在有一个强烈的支持,因为Rails / Django及其同类产品实际上可能更适合某类企业应用程序,尤其是KM,工作流等领域的简单轻量级应用程序。

答案 7 :(得分:6)

我对大多数回复的积极态度感到非常惊讶。我是Ruby和Rails的忠实粉丝并且同意所有已经说过的内容,但我感觉社区中有一个普遍的假设:“Rails还没有为黄金时段做好准备。” (授予社区通常不如我想象的那样了解本网站的用户)

我认为从技术角度来看,其他人提出的示例表明,事实上,您可以从Java或.Net堆栈中获得Rails的正常运行时间和性能。问题是,你不能用30美元/小时的程序员在Rails中构建那些高性能,可靠的应用程序。 Ruby和其他动态语言似乎使优秀的程序员能够变得非常高效和高效,但与此同时他们只是削弱了那些一般的程序员。考虑到绝大多数大型IT商店已经选择了更高价格的最便宜的代码猴子,我认为他们尝试引入Rails作为Java或.Net的替代品将是一个非常痛苦的过渡。

答案 8 :(得分:6)

Twitter的故事似乎传播了“Rails无法扩展”这个词。与此同时,LinkedIn使用Rails handling 1B page views/month创建了一个Facebook应用程序。

我购买他们所提出的论点,即可伸缩性问题不是您使用的语言/平台的产物,而是关于如何在该平台内实现事物的更多信息。

答案 9 :(得分:5)

我是一名网络开发人员,我已经为各种公司(从内部网到中型网站)构建了一些Ruby on Rails网站,但我还没有将它用于大规模的应用程序。

人们总是指出它很慢,不会扩展,也很难部署。 “可伸缩性问题”已经不再存在了。它仍然比大多数其他框架慢一点,但我很希望rails 3能解决这个问题。由于Capistrano和mod_rails,它不再难以部署。

我可以在大型项目中看到rails的真正问题:

  • 没有很多人知道 轨。如果你有一个PHP应用程序,你可以 确保66%的网络开发人员 那里将能够维持 它。铁轨不一样 交易。
  • 如果速度快,它仍然较慢 关键可能是一个问题
  • 它还需要更多组件 电子商务等。事情变得 那里,尤其是shopify以后, 但它并没有像Java那样准备好 实例

除此之外,我认为Rails已做好准备。

通常只需要为项目找到合适的技术,有时候它可能是轨道。每种语言/框架都有缺点,因此在某些情况下,Rails不是最明智的选择,但在其他情况下,它会做得恰到好处。

另外,等待Rails 3,它会很棒:)

答案 10 :(得分:3)

是的,我们有几个大客户使用我们的基于Rails(内联网和云)的应用程序。稳定性令人惊叹。例如,有两个流量和复杂性最多的人会想到:我们的一个应用程序已经生产2。5年,0期,另外6个月,也有0期。

答案 11 :(得分:3)

  

我认为37Signals的家伙已经建成了   他们使用Ruby的所有应用程序   在Rails上

我可以想象,他们毕竟是发明它的人。


A List Apart使用RoR,但不是非常企业。

答案 12 :(得分:3)

如果您与几乎所有运行高流量企业网站的人交谈,他们中的大多数会告诉您相同的事情,如果处理得当,您选择的语言永远不会是您的问题,它将始终归结为IO。

如果你看看像twitter这样的网站,肯定会有问题。但他们已经承认这是因为事情没有得到适当的扩展。由于他们已经实施了改变,他们所做的事情一直在进行。

我工作的唯一阻止我工作的是没有人知道红宝石,也没有太多时间学习。

答案 13 :(得分:2)

YellowPages.comPenny Arcade是我听过的最重要的事情。当然,很多企业都在将它用于内部应用程序。就缩放而言,无论您的语言/框架是什么,自由缓存都是秘密。

答案 14 :(得分:2)

我的朋友刚刚在RecycleBank工作,他们在整个内部网系统中使用Rails。我认为Rails肯定已经为企业做好了准备,尽管这并不是最令人质疑的问题。大多数人质疑,由于内存需求,它是否可以处理大量的流量。这还有待观察,但我认为该框架完全能够处理企业应用程序。

答案 15 :(得分:1)

我在企业环境中使用rails并且它运行良好。您只需要塑造您的应用程序即可在环境中工作。就我而言,我们是一个Java家,所以jRuby是首选的部署方法。

我也停止使用rails来呈现实际页面,但是将它用于链接到工具的模块,工具和快速而脏的服务。我们的java服务没有与它们连接的后端工具。

我们的网站有数百个(可能是一千个)页面,所以rails可能不适合替换该架构。另一方面,如果我将rails集成到Java站点中,那么我可以解决一些从Java端难以解决的问题。

您的应用程序架构是关键,如果您没有将应用程序设计得很好,那么无论您选择何种框架/语言,您都会遇到问题。

我确实为几个页面构建了一个rails应用程序,每月点击数十万次。 Rails做得很好,但大部分内容都是缓存的。我们有一个实例,其中雅虎有一个与我们链接的头版特色故事。该页面有一些非缓存的rails内容,因此巨大的流量带来了rails应用程序,但这部分是我没有更好地优化的错误。

答案 16 :(得分:1)

我不知道我是否会认为它是企业......但我认为很多说twitter和hulu都是建立在轨道上的。

答案 17 :(得分:1)

我们目前正在使用Rails为一个拥有超过500万单位/月的网站取得巨大成功,所以如果企业=规模则是。

答案 18 :(得分:1)

我肯定会读到Ruby On Rails

的这个案例研究
  

在本文中,我将引导您完成   我们使用Ruby on Rails的方式   建立网站。你会看到核心   我们正在使用的功能,以及   我们依赖的主要插件   每天。我们的大多数技术   真的不是惊天动地,但我   希望能让你一窥我们的内心   日常运营。我的目标是   给你一个广泛的概述   团队合作,我们信赖的技术   生产环境,工具   我们使用,和Rails框架一样   对我们来说是最重要的。我会链接到   资源而不是进入   任何一个地区的细节,但是   如果你想了解更多   部分内容,发表评论。

答案 19 :(得分:-7)

我还没卖。 Twitter发生了大规模停电(3 days on one episode!)。在某种程度上,它被归咎于缩放RoR背后的困难:read here

/ MP