选择Rails主机

jef*_*unt 11 hosting web-hosting ruby-on-rails

我接近选择一个Rails主机.我我需要一个VPS解决方案,因为(1)我的Rails应用程序有我需要安装的宝石和插件才能使它工作,(2)我需要一个SMTP服务器来将我的rails应用程序的电子邮件发送给用户.

但它发生在今天......

1)我是否真的需要VPS和root访问来启动和运行我的应用程序,因为我需要安装gem,或者我可以将我的Rails应用程序文件夹复制到支持Rails的托管服务器并启动它?

2)如果我获得了一个包含商务级GMail解决方案的Google Apps帐户,是否会为我提供一个可以用来向用户发送电子邮件的SMTP服务器?

我正在寻找最不需要支持的解决方案.我有能力支付VPS托管和Google Apps帐户,但我只是想知道这是否是我最好的选择.

jef*_*unt 21

更新:自我第一次发布此问题和答案以来,现在已经过去了三年多.我仍然更喜欢AWS用于专业或严重马力性质的所有新部署(即,如果我不自主),但我也经常将演示和教程应用程序部署到Heroku.我没有尝试过像LinodeDigitalOcean这样出现过的许多VPS提供商中的任何一个,但一般都能听到关于它们的好消息.

让我无法为所有应用选择Heroku的关键是成本.由于我工作之外的大多数独立项目都是我宁愿绝对降低成本的事情,因此AWS仍然是AWS与Heroku之间更好的交易.AWS(或任何VPS提供商)具有很好的副作用,可以教你操作系统,从长远来看,这是非常有价值的.

=======================

所以,两年后,这是我的更新.我已经使用了三种服务进行托管,这是我对它们的看法(我实际上非常喜欢它们,但出于各种原因).

这是我尝试的第一个VPS主机,我很喜欢它们.那里的人很棒,支持很棒,而且它有一种非常酷的基层感觉.既然VPS作为解决方案更加主流,而且Rackspace早已购买了Slicehost,我觉得服务产品仍然很棒.如果您想要一种简单的方法来设置服务器,大量的Linux发行版选择以及对服务器的控制,这是一个很棒的选择.

也爱这些家伙.我在那里建立了一个业余爱好应用程序,rpglogger.com(截至2012年11月实际上已迁移到Amazon Web Services),开发和部署到Heroku是一个明智的选择.我非常喜欢Heroku,原因有两个:

  1. 设置起来很简单.根据我的经验,在他们的平台上运行应用程序真的很容易.
  2. 单个dyno(Web服务器实例)是免费的.所以爱好应用程序和较小的应用程序基本上可以免费托管.这不仅仅是为了爱好 - 他们的插件架构是首屈一指的,只需点击几下就可以在他们的平台上增加第三方插件,如NewRelic,Exceptional和其他任何东西.

你绝对不能打败Heroku以方便使用.部署应用程序的更新版本就像推送您的git仓库一样简单.Heroku不一定便宜(除了小应用程序之外的其他任何东西),但如果您认为开发人员的时间比控制服务器更有价值,那么这是一个了不起的选择.无论如何,您总是可以将您的应用程序迁移到任何其他平台,如果它变大,或者应用程序的需求与Heroku的成本对您不再有意义.

我做了不少小应用程序,AWS保留的实例非常棒.60美元我基本上可以获得一整年的预留实例.一台服务器足以在同一台机器上运行3-4个小应用程序,具有更优化的内存使用率,并能够运行多个Web服务器实例(与Heroku的一个免费dyno相比,虽然我听说你可以自定义配置你的Heroku dyno使用独角兽获得更多可扩展性).基本上,AWS可以很好地扩展,并允许您在多个小型应用程序之间共享服务器,或者在多个服务器之间传播更大的应用程序.

除了保留实例的初始成本之外,我只需要为带宽和其他AWS使用付费(例如S3).我认为AWS是终极可扩展性,高成本,最终控制的完美结合,对于想要在天空中构建整个基础架构的企业客户而言,它是无法超越的.Rackspace Cloud Hosting提供类似的服务,它们可能与大多数东西相当.但如果您想要的是云服务的瑞士军刀,我认为AWS仍然领先于其他所有人.

===============

所以,话说回来,我开始使用Slicehost,然后去了AWS,然后尝试了Heroku,今天我把大部分时间都花在了AWS上.

AWS是一种平台,在您花费一点时间设置VPS机器集合之后,保持这个平台并利用其不断增加的工具集通常是有意义的.

当然,我花了两年时间尝试了几个选项,并尝试从完全托管的服务器(即Heroku,你甚至不认为服务器,只是应用程序)到完全受控的服务器(Slicehost和AWS)的每个级别的管理.毕竟我已经到了这一点,我已经准备好管理自己的机器,以获得我想要的灵活性和低成本.

通过自动化,AWS上服务器的实际管理变为非事件,因此我不会花时间不断修补我的机器或执行其他系统管理员任务.我只是定期检查我的服务器是否需要重新启动,我将它们设置为自动安装所有安全更新(我碰巧部署到Ubuntu服务器),这意味着我花了99%的时间(至少每天)写作应用程序 - 不管理服务器(管理服务是几天工作的偶然任务,然后几个月没有其他任何事情) - 这是我想花时间作为开发人员的地方.