将Rails应用程序部署到EC2

时间:2011-02-16 05:18:36

标签: ruby-on-rails deployment

我的设置:Rails 2.3.10,Windows上的Ruby 1.8.7

我最后一次在Slicehost上将Windows从Rails应用程序部署到Linux,我使用了Capistrano,Nginx,Mongrel和SVN。那是3年前,快进到现在,我仍然在Windows上进行开发,现在正在寻求部署到EC2。快速搜索会出现像Rubber和Chef这样的工具,这些工具不易于快速阅读。看起来Rubber和Chef是为多EC2实例部署而设计的,这在我需要扩展时非常有用。

我也是Passenger的新手,但它现在似乎是部署Rails应用程序的默认方式,我不清楚的一件事是乘客是否是Mongrel的替代品?在我的旧设置中,我配置Nginx将Rails请求转发到Mongrel进程集群,但我没有看到类似于Passenger的内容。

非常感谢任何见解。

3 个答案:

答案 0 :(得分:2)

我们使用类似于您为我们的生产服务器描述的内容:EC2 + Apache + Passenger。我们没有必要使用您描述的花哨的部署工具 - 简单的旧Capistrano(加上capistrano-ext,所以我们可以在多个环境中使用它)做得很好。我看过橡胶(不是厨师),但认为它是不必要的自动化和太糟糕的文件记录,而且我真的不确定它提供的内容与Capistrano中的角色一样无法做到。

乘客很棒。这是一个“监督者”manages a collection of Mongrel-like workers(我曾经认为工人是Mongrels,但经过进一步阅读,我认为不是。Passenger comparisons page甚至将其RPS与Mongrel集群进行比较,所以...),根据需要启动它们,在低负载下剔除它们,如果它们崩溃则重新启动它们等等。它实际上与您描述的Server + Mongrel群集非常相似,但可能更好一些,因为Passenger对此有所了解Nginx / Apache没有的基础工作者。你必须让a few minor tweaks让卡皮斯特拉诺与乘客很好地合作。

如果可能的话,将乘客与Ruby Enterprise Edition(来自制作乘客的同一个人)配对。这是一个更快的Ruby版本,主要是由于重写的,可配置的垃圾收集器。您必须tune your GC settings才能充分利用它。

希望这有帮助!

答案 1 :(得分:1)

答案 2 :(得分:0)

Rubystack允许您在Windows上进行开发以及在Linux上进行部署时使用相同的Rails环境。我们还有EC2图像(滚动到底部),它是完全免费的,所以你可能想尝试一下。

此外,这可能对您不起作用,但根据您的要求,您可能希望选择像Heroku

这样的PaaS解决方案