ruby-on-rails – 我会通过离开Heroku看到速度变化吗?

我们正在使用Heroku.这很棒.我喜欢它.我们每个月花费几千,在实例和数据库之间,通常不会更快乐.但是,我们正在确定一个新项目,该项目要求我们达到非常积极的延迟目标 – 低于100毫秒.

目前,我们是一个Rails 3应用程序处理我们的请求的80-90%子100ms,由新文件测量.鉴于我们必须从客户端的角度来看达延迟目标,我将再次捏造另一个10%的成功率(因此降低到大约3/4的请求).

是的,Heroku偶尔会出现网络故障,这可能导致延迟,但我们很好地将我们的成功与Heroku的成功联系在一起,至少在短期内如此.

如果我们想要达到95%的请求达到100毫秒的延迟目标,我会看到3个选项:

> a优化Heroku中当前的rails堆栈
> b转到直接AWS或其他托管服务提供商
> c将功能重建为我觉得更有信心可以达到延迟目标的东西.可能是Java.

a显然是主要的候选人,但我已经摘掉了低调的果实. c可能最有可能成功,但也需要最多的工作(今天大多数工程师都来自Java,所以我们没有任何Ruby-> Java惩罚).但是b是一种黑马,它可能是好的,或者可能更糟 – 我不知道如何在不尝试并加载测试的情况下判断,但是,那基本上就是这么做,看看它是不是成功的.

我正在尝试在它们之间做出决定,或者找到一种方法来决定它们之间.有什么建议?经验?

*我们的大多数请求都不要求我们呈现html.

解决方法

Rewriting generally doesn’t give you the return you’re expecting.

就个人而言,我会考虑优化您现有的应用程序.如果正确构建,100ms非常容易获得,而另一个主机不会真正给你任何速度,Heroku不会,而不会增加一些头痛.

我们在Heroku上运行了许多Rails应用程序,其中一些应用程序的响应时间不到50毫秒.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...