Ruby On Rails是为企业准备的吗?
有没有人在那里使用RoR进行大规模的关键业务应用程序?
有没有其他轻量级的基于dynamic语言的Web框架,人们正在使用这些types的应用程序?
如果你不使用这些types的应用程序框架,什么阻止你? 这是否只是与任何大型IT组织有关的惯性? 这些框架的速度和稳定性问题是否足以抵消开发周期时间的改进?
为了考虑Ruby on Rails是否为企业做好了准备,你必须考虑“企业”这个词的意思。 以我的经验来看,企业就意味着“安全”。 寻找企业解决scheme的公司通常会select大型供应商支持的技术堆栈。 这样,他们知道他们可以得到支持,并可能咨询,以换取大笔的金钱。 这是“没有人因为购买IBM而被解雇”的整体。
另一个要考虑的因素是无处不在。 毫无疑问,Ruby现在仍然被看作是一种有些奇异的语言,熟练的Ruby程序员的可用性反映了这一点。 从技术上讲,Ruby比Java或C#更复杂,在OO纯度方面更接近Smalltalk,在元编程设施方面更接近LISP。 可以这么说,公司会比从事Ruby程序员的人更容易从机构店中获得Java或.NET程序员。 这并不是要侮辱Java或.NET程序员,而是反映了很多雇主仍然认为软件开发应该由最便宜的竞标者来完成,而不是应该做的事情。 Java和.NET程序员现在几乎是一个商品,所以可以提供更低的成本。
从技术上讲,Ruby on Rails可以像Java,.NET或PHP一样扩展。相同的基本原则适用于测量瓶颈的位置,调整SQL查询,最大限度地减lessI / O,可能使数据库模式非规范化明智地使用caching等。如果您确实需要构build下一个eBay或亚马逊,那么您应该手动滚动并手动调整自己的解决scheme,就像eBay和Amazon已经完成的一样。 J2EE在遗留集成方面具有优势,但这不是Rails已经过优化的用例 – Rails完全是关于构build新的CRUD应用程序的。
毫无疑问,就目前而言,Ruby是performance较慢的语言之一, 在这个领域正在进行大量的投资,所以预计未来几年这种情况将会像Java自从第一次出现以来一样,有所改善。 在Ruby VM和MRI的替代品(Matz Ruby Interpreter)领域中有很多有趣的发展。 就我个人而言,我认为JRuby是一个值得关注的问题。 它由Sun提供支持(请参阅图),因为它是Ruby的Java实现,所以它可以通过现有的JVM基础架构将Ruby用于企业。
我不认为Rails对于企业来说还是很有用的,在许多方面,我希望它永远不会。 我不是特别想看到我最喜欢的框架陷入了一些平庸或混乱的多供应商的select,这在J2EE领域已经很明显。 令人高兴的是,DHH似乎认定,Rails应该继续自己搔痒,而不是试图成为所有公司的所有东西。
我认为很多人对“企业”这个词的真正含义感到困惑。 YelloPages.com和Penny Arcade不是企业应用程序。 当然,他们可能有大量的用户和点击/分钟,但他们是相对简单的应用程序。
企业应用程序是用于运行企业的应用程序,通常意味着一个大的多部门,多地点的公司。 SAP是一个企业系统,BaseCamp不是。
您通常在企业应用程序中看到的一些特征是:
- 他们大而复杂。 一个典型的ERP系统需要处理100个实体types。
- 他们经常需要与其他系统集成,需要为第三方提供集成点。
- 他们拥有大量不同的用户types和angular色,在很大程度上反映了大型组织中不同的工作types。
要回答你的问题,我会说是的,Rails已经准备好了。 目前,我们正在为跨越20个部门的超过1000名用户的公司开发大型系统财务pipe理系统。 可扩展性对我们来说不是一个大问题,但可靠性和可用性是。 解决这个问题是一样的,不pipe是什么技术堆栈。
我会重复其他人对熟练开发人员的观点,但这也适用于任何技术栈。 让一般的开发人员在一个非关键的小型系统上工作也许是可以的,但是如果你真的想开发一个关键的和企业级的应用程序,那么最好的办法就是让最聪明的人开始工作。
由于我的日常工作是关于企业架构的,所以我认为企业这个词现在不是关于规模和规模,而更多地是指一个软件产品如何销售。
例如,Ruby on Rails不是企业版,因为没有供应商会进入您的商店,并为开发人员社区反复进行Powerpoint演示。 Ruby on Rails没有一位销售主pipe把我带到高尔夫球场或者我最喜欢的餐馆吃午饭。 Gartner等行业分析公司对Ruby on Rails也没有深入报道。
Ruby on Rails永远不会被视为“企业”,直到发生这些事情…
我是IBM的顾问,在过去的一年里,我为使用Ruby on Rails的客户build立了几个网站。 Rails毫无疑问是“为企业做好准备”。 关键是要使用Rails擅长的function,并在他们擅长的地方使用J2EE或其他“企业工具”。 在任何应用程序的演示结束时,Rails都非常棒。 您可以使用REST风格的Web服务,而不需要大概0个工作,这对您的其他“企业”工具来说是一个很好的集成点。
也许我不会使用rails来构buildyahoo.com,但是没关系。 从企业到最小的IT商店,都有成千上万个可以使用导轨的完美壁龛。
IBM,Oracle,Sun和JPMorgan Chase只是使用Ruby on Rails的less数几家公司。 它可能没有得到更多的企业。
我们正在使用Ruby on Rails,主要用于“企业”关键业务应用程序。 对于我们来说,将Ruby与其他“企业”系统集成起来要容易得多,例如:
- 我们在Oracle数据库上使用Rails
- 我们将Rails应用程序与Oracle电子商务套件(ERP和CRM系统)
- 我们将用户身份validation与LDAP目录,NTLM Windows域身份validation,Oracle电子商务套件身份validation集成在一起
- 我们构buildREST和SOAP Web服务来与其他系统集成
有很多“企业”整合平台,应该做这样的事情,但是一般都是相当昂贵的,也经常遇到一些问题,如果能解决问题,就依靠厂商。
使用Ruby和其他开源组件,您总是可以自己解决问题,因为您可以深入了解问题的根源,并且不会对您隐藏任何内容。
所以,如果你有聪明的开发者喜欢解决困难的问题,那么Ruby将是他们的优秀工具。 但是,如果你的平均开发者不想学习任何新东西,并希望供应商能够完成他们的工作,那么Ruby可能不适合他们。 但是我怀疑一般的开发人员是否可以用任何工具来创build出色的软件。
我很惊讶大部分的答复是积极的。 我是Ruby和Rails的忠实粉丝,并且同意我所说的一切,但是我知道社区里有一个普遍的假设:“Rails还没有准备好迎接黄金时段”。 (认为社区通常比我想像的这个网站的用户要less)
我认为从技术的angular度来看,其他人提出的例子表明,事实上,您可以从Java或.Net堆栈中获得Rails的正常运行时间和性能。 问题是,你不能在30美元/小时的程序员的Rails中构build这些高性能,可靠的应用程序。 Ruby和其他dynamic语言似乎使伟大的程序员变得非常高效和高效,但是同时他们也只是瘫痪一般的程序员。 考虑到绝大多数大型IT商店select了更便宜的代码猴,他们可以发现,我认为试图将Rails作为Java或.Net的替代品,这将是一个非常痛苦的过渡。
Twitter的故事似乎传播了“Rails没有扩展”这个词。 同时,LinkedIn创build了一个使用Rails的Facebook应用程序,该应用程序正在处理1B页面浏览量/月 。
我购买他们提出的观点,即可扩展性问题不是您使用什么语言/平台的产品,而是更多关于如何在该平台内实现的东西。
这是我的承担。 我的公司(拥有12万名员工)拥有主要用于内部IT的Java / J2EE堆栈。 他们还使用Sharepoint进行文档/知识pipe理,使用Oracle应用程序进行工作stream程pipe理等。在过去的两年中,我领导了一小组Ruby on Rails / Python-Django / PHP发烧友,积极主动地在企业内采用这些框架。 我们遇到的通常的(通常是无效的)论点
- 它不会缩放
- 企业不够安全
但是,我们设法推出了几个应用程序(WordPress的博客,定制雅虎的答案,如内部社交问答应用程序和一个Digg风格的基于思想/创新pipe理的应用程序),事情真的发生了很大的变化。 Rails / Django之类的企业应用程序实际上可能会更好,尤其是在知识pipe理,工作stream程等方面的简单轻量级应用程序。
我是一名Web开发人员,我已经为各种公司(从Intranet到中等规模的网站)构build了一些Ruby on Rails网站,但是我没有将它用于真正的大规模应用程序。
人们总是指出,速度慢,不能扩展,难以部署。 “可扩展性问题”已经不再是一个了。 它仍然比其他大多数框架要慢,但是我希望rails 3能够解决这个问题。 感谢Capistrano和mod_rails并不是很难再部署。
大型项目中我可以看到的实际问题:
- 知道Rails的人不多。 如果你有一个PHP应用程序,你可以肯定有66%的Web开发人员能够维护它。 与轨道是不一样的交易。
- 速度还是比较慢,如果速度很关键,这可能是一个问题
- 它仍然需要更多的电子商务组件等等。 它到达了那里,特别是从shopify以来,但它不像Java那样准备好。
除此之外,我认为Rails已经准备就绪。
通常这只是为项目find合适的技术,有时候可能是铁路。 每种语言/框架都有缺点,所以在某些情况下,Rails不会是最明智的select,但在其他情况下,它会做的恰到好处。
另外,只是等待Rails 3 ,这将是真棒:)
如果你和几乎任何一个经营高stream量企业网站的人交谈,他们中的大多数人会告诉你同样的事情,如果处理得当,你select的语言永远不会是你的问题,它总会归结为IO。
如果你看像twitter这样的网站,肯定他们有问题。 但他们已经承认这是因为事情没有适当的缩放。 由于他们已经实施了变化,他们做的事情一直在巡航。
阻止我们在这里工作的唯一的东西是没有人知道ruby,并没有太多的时间学习。
我认为37Signals的人使用Ruby on Rails构build了所有的应用程序
我可以想像,他们毕竟是发明它的人。
列表除了使用RoR,但不是非常企业。
我的一个好朋友刚刚在RecycleBank工作,他们使用Rails作为整个Intranet系统。 我认为Rails对于企业来说是绝对准备好的,尽pipe这不是最受质疑的。 大多数人质疑,由于内存需求,是否可以处理大量的stream量。 这还有待观察,但我认为该框架完全有能力处理企业应用程序。
YellowPages.com和Penny Arcade是我听到的最大的头脑。 当然,许多企业正在使用它的内部应用程序。 就扩展而言,无论你的语言/框架如何,自由caching都是秘密。
是的,我们有几个大客户使用我们的基于Rails的(内联网和云)应用程序。 稳定性令人惊叹。 例如,stream量和复杂度最高的两个:我们的一个应用程序已经投产了2。5年,0个问题,另外6个月,还有0个问题。
我在企业环境中使用rails,它工作得很好。 你只需要塑造你的应用程序在环境中工作。 在我的情况下,我们是一个Java的房子,所以jRuby是select的部署方法。
我也停止使用rails来渲染实际页面,但是将其用于模块,工具以及链接到工具的快速和肮脏的服务。 我们的java服务没有后端工具与他们交互。
我们的网站有数百(可能是一千)页,所以铁路可能是一个可怜的候选人来取代该架构。 另一方面,如果我将rails整合到Java网站中,那么我可以解决相当多的java端问题。
你的应用程序架构是关键,如果你没有devise好应用程序,那么无论你select什么框架/语言,你都会遇到问题。
我确实为几个页面构build了一个rails应用程序,每月的点击量达到数十万次。 Rails做得很好,但大部分内容都被caching了。 我们有一个例子,雅虎有一个头版故事链接到我们。 该页面有一些非caching的rails内容,所以巨大的stream量带来了rails应用程序下来,但这是部分我的错误,因为没有优化更好。
我不知道我是否会认为这是企业……但我认为,很多twitter和hulu都是build立在铁轨上的。
目前我们正在使用Rails的站点,每月拥有超过五百万个独立站点,并取得了巨大的成功,所以如果enterprise = scale,那么是的。
我一定会读这个Ruby On Rails的案例研究
在本文中,我将引导您完成使用Ruby on Rails构build网站的方式。 您将看到我们正在使用的核心function,以及我们每天所依赖的主要插件。 我们的大部分技术并不是真正的破土动工,但我希望能在日常运营中给您一瞥。 我的目标是为您提供关于团队如何工作的信息,我们在生产环境中信任的技术,我们使用的工具以及对我们最重要的Rails框架。 我会链接到一个资源,而不是在任何一个区域进行详细的介绍,但是如果你想了解更多关于它的任何部分,请留下评论。
我还没有卖。 Twitter已经有大规模的中断( 一集3天 !)。 一直以来,人们都认为RoR缩小的难点是: 阅读这里 。
/ MP