【发布时间】:2011-10-17 19:01:54
【问题描述】:
我们正在使用 Heroku。这很棒。我喜欢它。我们每月在实例和数据库之间花费数千美元,而且通常不会更快乐。然而,我们正在确定一个新项目,该项目需要我们达到相当激进的延迟目标——低于 100 毫秒。
目前,我们是一个 Rails 3 应用程序,在 100 毫秒内处理 80-90% 的请求,以 new-relic 衡量。鉴于我们必须从客户端的角度达到延迟目标,我将再捏造 10% 的成功率(因此降低到大约 3/4 的请求)。
是的,Heroku 上偶尔会出现可能导致延迟的网络故障,但至少在短期内,我们可以将我们的成功与 Heroku 的成功联系起来。
如果我们想为 95% 的请求达到 100 毫秒的延迟目标,我看到 3 个选项:
- a 优化我们在 Heroku 中当前的 rails 堆栈
- b 直接转移到 AWS 或其他托管服务提供商
- c 将功能重建为我认为更有信心可以达到延迟目标的功能。可能是 Java。
a 显然是主要候选人,但我已经摘下了低垂的果实。 c 可能是最有可能成功的,但也承担了最多的工作(今天大多数工程师来自 Java,所以我们没有任何 Ruby->Java 惩罚)。但是 b 是一匹黑马,它可能是好的,也可能是更糟的——我不知道如果不尝试和负载测试如何判断,但是,基本上就是这样做,看看它是否是成功。
我正在尝试在它们之间做出决定,或者想办法在它们之间做出决定。有什么建议吗?经验?
*我们的大部分请求不需要我们渲染 html。
【问题讨论】:
标签: ruby-on-rails heroku amazon-web-services