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

标签 ruby-on-rails heroku amazon-web-services

我们正在使用 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。

    最佳答案

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

    就个人而言,我会考虑优化您现有的应用程序。如果架构正确,100ms 是很容易获得的,另一个主机不会真正为您提供 Heroku 不会提供的任何速度方面的东西,而且不会增加麻烦。

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

    关于ruby-on-rails - 离开 Heroku 后我会看到速度变化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7798251/

    相关文章:

    amazon-web-services - Flink 作业无法获取 EC2 IAM 角色

    ruby-on-rails - 无法安装 gem debugger -v '1.6.5'

    ruby-on-rails - digital ocean 生产服务器中的奇怪错误

    ruby-on-rails - 在 View 中使用 I18n 而不是在控制台中使用 I18n 的 Rails 问题

    node.js - 从源代码在 Ubuntu 上安装 foreman

    amazon-web-services - 您如何让 Amazon SES 在 Debian Squeeze 上运行?

    ruby-on-rails - 使用 Octokit 从组织中检索私有(private)存储库

    heroku:在发布阶段刷新redis

    ruby - Sinatra Heroku PostgreSQL 连接不良

    amazon-web-services - 将 https 监听器添加到 AWS Application Load Balancer 时出现问题