使用Rails作为大型网站的框架

我已经玩Rails(版本3)几个月了,我对框架相当了解。 但是,我还没有开发一个提供大量数据库访问和用户交互的大型网站。

我对以下内容持怀疑态度:

  • Ruby的速度和可伸缩性(我听说它比大多数其他服务器端语言慢10倍)。
  • Rails作为框架(多级abstration)的额外后台处理。
  • 缺乏在Rails上运行的企业级Web应用程序(我能想到的只有Groupon,Github和Hulu)。
  • 环境的复杂性(nginx> mongrel> rails> ruby​​>网站)。
  • 幕后的SQL操作(我知道这些可以优化,但我确信我会错过一些)。

由于这些原因,我不确定是继续使用Rails还是转换为构建在更高性能语言上的东西。比如Java Spring。

请指教 :)

不是再次进行速度和缩放讨论?

在webdevelopment中,最慢的是网络通信(接收请求,获取数据),数据库(从数据库获取所有数据),大多数时候根本不是计算时间。 。

虽然Ruby和Ruby on Rails确实更关注程序员的幸福感,但我认为用.NET或Java构建的每个体面的Web应用程序都有尽可能多的抽象层次。

环境的复杂性? 我认为你的意思是部署? 有很多选项,但最常用的选项是Passenger (非常容易部署在apache或nginx之上)或Torquebox 。 Torquebox目前是最快,最好的扩展解决方案(基于JBoss应用服务器),Ruby社区中的几个大名称正在调用Jruby来实现部署应用程序的选择。 虽然AFAIK最常用的部署仍然使用REE(Ruby Enterprise Edition)和Passenger。

除非你知道你将不得不进行严肃的数学,CPU密集型操作,否则我认为你应该问自己的问题是:哪种框架/语言会给我最快的结果?

如果你非常精通Java / Spring,那可能就是你的答案。 但是如果你唯一担心的是性能,我会说:不要犹豫,去Ruby on Rails。 如果您遇到任何问题,ruby社区真的很棒:支持只是一个post。

最后,我想使用Rails添加一些非常大的站点:LinkedIn使用rails(和jruby),而Twitter仍在使用Rails作为他们的前端。

生产中有大量使用Rails的大型站点和基础架构 。 多年来,Rails被广泛用于各种各样的网络应用程序,无论大小,这个问题也被要求死亡。

简短的版本是它不是最快的语言,但如果你知道你在做什么,尽管规模很好。 如果你真的有任何规模问题,你应该有足够的钱雇用那些知道自己在做什么的人。

扩展任何webapp很难,使用你知道的语言/框架。 程序员的幸福是王道。

你可以用Ruby获得良好的性能。 简单:

require 'inline' inline :C do |builder| builder.c <<-C_CODE void run() { // Write your entire application in C here } C_CODE end run 

问题解决了 ;)