2013-10-02 86 views
1

我一直在1台大型专用服务器上运行Rails应用程序。现在为了扩展,我想切换到云服务主机,并在3个实例 - App,DB和Redis上提供应用。Ruby on Rails托管 - Engineyard与Enterprise-Rails

我对Heroku的表现非常不好,因此成本效益很差。所以对我来说,仍然有两个选择:Engineyard和Enterprise-Rails。

我认为重要的是Engineyard不提供自动缩放选项来处理峰值。另一方面,Enterprise-Rails没有太多的文档,其中大部分都是由支持人员来处理的,这些人员正在设置所有内容。

什么是其他区别,我应该用什么网站?我不需要太多的行政工作,我也没有经验。基本上我只是希望我的网站运行最佳,安全,稳定和成本效益,没有太多的个人工作。

回答

3

我现在正在AWS上运行一个庞大的Rails应用程序,我对此感到非常满意。以前我有很多专用的盒子,总是会造成问题 - 迟早他们中的一个会因为某些原因而崩溃,Raid故障,数据库问题。

在AWS上,我使用RDS作为数据库,用于缓存的弹性缓存,我将所有代码放在一个胖实例上,充当临时服务器并获取可变数量的保留实例以通过NFS加载代码。我也使用自动缩放 - 我们已预付了大量的预留实例,自动缩放有助于在CPU使用率超过60%时启动节点,然后在25%以下时将其删除。自动缩放规则基于可设置为监视特定组实例,memcache服务器等的cloudwatch警报,甚至在发生某些缩放活动时,您甚至可以通过SNS收到电子邮件和SMS通知,比如说超过100个实例在不到1小时内发送垃圾邮件(大规模流量高峰)。顺便说一下,这些实例也可以直接添加到负载平衡器中,并且您不需要混淆会话存储,因为您可以使用粘滞会话功能,这非常不错。

最近我还开始使用第二个发射组,现场实例,这个复杂的事情有点像cloudwatch规则,但由于现货价格低得多,我可以每月节省很多。当现货价格(最低)我出价不够时,我已经切换回保留实例。

甚至最近我也开始使用CloudFront,它让我的应用程序的页面资源加载真正快速(大约2M的CSS,JS,一些图标精灵)。以前,我通过负载平衡器直接从实例提供服务。

这花了大约20个小时来部署,测试和调优以获得最佳性能和可用性。

我在AWS中遇到的一个问题是,除非您准备付账,否则不会有任何支持。他们声称一些支持在没有订阅的情况下提供,但支持区域中的唯一选项是Billing。哈。幸运的是,所有这些都足以让我不必为此付出代价。

整体Rails非常适合AWS。我每个月花费不到2个小时进行维护,而我之前花费了30多个小时。对我来说最重要的是,我知道我可以在一个X个月的假期中休假,因为我知道什么都不会造成任何麻烦 - 一年以上的监控警报都没有。

后来编辑:该应用程序是一个具有白色标签功能,大量用户,大量管理员在后端内容,数据库密集型的体育网站,因为我们展示的市场定价数据应该每隔几秒更新一次。平均每个页面的加载时间约为3秒,而专用服务器的功能大致相同 - 数据库,memcache,存储,负载平衡,Web应用程序。现在我的平均时间不到1秒。月费比现在低大约8倍。

+0

AWS的东西虽然是,它是一个IaaS,它只是提供系统来构建我的应用程序。 Heroku/Engineyard/Enterprise-Rails/anynines是一款不需要太多安装或维护工作的PaaS。我宁愿开发PaaS,而宁愿开发我的应用程序,而不愿维护系统。所以我需要一些易于扩展和设置的东西。 – Nikom

+0

诚然,你必须花一些时间来设置它。也许在市场上有一些AMI,尽管有完整的RoR堆栈,但这些可能会节省几个小时的工作时间。 –

-1

尽管Engine Yard不提供自动缩放功能(它在管道中),但我们确实有一个相当容易使用的缩放功能,允许您在需要的时候一次旋转多个实例。

与Enterprise-Rails相比,其优势在于完整的文档,从CLI或仪表板中部署的选择,以及我们惊人的支持团队。使用Engine Yard并从个人机器或其他云设置移动,比直接使用AWS等服务更容易。