什么时候可扩展性成为部署在 Heroku 上的 Rails 应用程序的一个问题?

Posted

技术标签:

【中文标题】什么时候可扩展性成为部署在 Heroku 上的 Rails 应用程序的一个问题?【英文标题】:At what point does scalability become an issue for a Rails application deployed on Heroku? 【发布时间】:2013-01-23 10:40:03 【问题描述】:

Ruby on Rails 的缺陷主要在于它缺乏可扩展性选项,而替代方法通常是迁移到某种形式的 Java webapp 或类似的东西。但在某种程度上,所有的担忧似乎充其量都是非常武断的。

当某个应用程序需要用不同的语言重写时,是否有具体的数字? Heroku 提供了各种缩放选项以及应用程序可用的测功机数量,但在什么时候收益递减(如果有的话)会很明显?或者在什么时候拥有这么多 dyno 的成本会超过编写新应用的成本?

在 Heroku 的基本免费托管计划中,我可以预期能够支持多少活跃的并发用户而不会遇到性能问题?

【问题讨论】:

【参考方案1】:

“Rails 无法扩展”的神话不会消失......

引用 Twitter 的首席架构师:

与“更快”的语言相关的性能提升将使我们提高 10-20%,但由于 Ruby 和 Rails 欣然适应的架构变化,Twitter 的速度提高了 10000%。

我不能给你一个固定的数字,但几乎可以绝对保证你在 Ruby 或 Rails 开始成为瓶颈之前很久就遇到了数据库或架构瓶颈。

Teflon Ted 已就该主题创建了a nice collection of blog posts。

【讨论】:

补充一点:您使用的什么语言并不重要。在某个高容量点,您总是会遇到相同的问题,并且几乎总是需要进行架构更改。 IE:我们可以从分布式缓存中提供哪些数据?应用程序的哪些部分访问数据库效率低下?如果您发现自己考虑切换语言只是为了提高性能,您应该考虑看看真正的问题是什么。

以上是关于什么时候可扩展性成为部署在 Heroku 上的 Rails 应用程序的一个问题?的主要内容,如果未能解决你的问题,请参考以下文章

部署在heroku上的应用程序崩溃的可能原因是啥?

你能从部署在 GitHub 上的 heroku 应用程序写入 JSON 文件吗

Heroku 上的 Node JS 支持版本

如何在部署在 heroku 上的解析服务器上使用云代码?

部署在heroku上的Django网站不起作用

Heroku / Clojure 部署上的端口错误