我刚开始从 spring 开发切换到 ruby on rails。我想从以前使用过它的人那里知道,为 heroku 部署的 rails 应用程序的学习曲线是什么?
heroku 部署有什么特殊需求吗?
Heroku的主要优点和缺点是什么?
先谢谢了
我刚开始从 spring 开发切换到 ruby on rails。我想从以前使用过它的人那里知道,为 heroku 部署的 rails 应用程序的学习曲线是什么?
heroku 部署有什么特殊需求吗?
Heroku的主要优点和缺点是什么?
先谢谢了
Heroku 是最简单的 Rails 部署。 这是一个为您的应用程序提供的完全托管的黑盒解决方案,具有出色的文档,并且他们不断改进它,着眼于可用性。一旦你的应用程序有了一个可以工作的开发版本,就可以在 Heroku 上启动和运行了。有关详细信息,请参阅快速入门和Ruby 入门文章。
这种易用性的代价是一定程度的不灵活。他们在使事情开放方面做得很好,但是一种万能的托管架构方法不可避免地会导致问题。如果您只有一个带有标准关系数据库和常见负载配置文件的中小型 Web 应用程序,那么这不是什么大问题。如果您需要具有各种附加服务(例如 redis、sphinx、rabbitmq 等)的更多自定义堆栈,那么您可能会使用第三方插件。所有这些托管解决方案和 Heroku 本身都比它们构建的 Amazon Web Services 收取溢价,这反过来又比运行您自己的服务器的原始硬件/托管成本收取溢价。如果您的网站规模非常大,您不仅会支付巨额溢价,但是托管服务提供商为一般情况所做的假设将不可避免地不适合您的特定情况以及自定义调整的集群。这就是为什么像谷歌、Facebook、雅虎这样真正的大公司都运行自己的数据中心的原因,因为在这样的规模下,拥有一支每年 20 万美元的专门系统工程师队伍来设计和维护您的基础设施,只需从远离商品解决方案的节省。
但是在小范围内,尤其是在产品的早期快速迭代期间,使用 Heroku 之类的东西意味着您可以完全专注于您的应用程序,并且对基础架构的担忧最少。一个例外是,如果你有大量的 Linux 系统管理员,那么 Heroku 甚至可能不值得早期花费,在这种情况下,你可能会更喜欢 Engine Yard 之类的东西,它仍然为你提供完整的 Rails 堆栈。盒子,但让你更接近金属。
不管怎样,Heroku 是 Rails 初学者的一个很好的起点。入门是免费的,您没有理由不能进行成本评估并在以后有更多经验时迁移出去。
gtd 的回答很好,只是为了补充一点我在使用 heroku 时遇到的问题:
大约一年前,当我开始使用 Ruby on Rails 和 Heroku 时,给我最大的问题是,默认情况下,在我的开发机器上,Rails 使用 SQLite,而在 Heroku 上,默认情况下是 postgreSQL。
它通常不会带来太多麻烦,但是某些事情(例如GROUP BY
工作方式不同)当某些事情可以在我的开发机器上而不是在 Heroku 上工作时让我感到非常沮丧。我建议你在你的开发机器上安装一个 postgreSQL 服务器,用于你计划在 Heroku 上部署的非平凡应用程序。
还有一些其他的事情你不能在 Heroku 上做,而你可以在 VPS 上做,我在与支付提供商合作时遇到了问题,要求我有一个静态 IP,因为 Heroku 是一个云服务,它不可能完成了,我不得不使用代理来连接提供商。
还有一些 gem(很少)你不能安装在那里,你不能安装一些 gem 依赖的二进制文件,尽管这对我来说从来都不是问题,请记住这一点。
除了这几个问题之外,Heroku 是开始部署应用程序的最简单的地方。