经验丰富的网络开发人员,heroku的学习曲线是什么?

时间:2012-12-20 03:34:45

标签: ruby-on-rails ruby heroku web-deployment

我刚开始从弹簧开发切换到轨道上的红宝石。我想从之前使用它的人那里知道,为heroku部署的rails应用程序的学习曲线(如果有的话)是什么?

heroku部署是否有特殊需求?

heroku的主要优点和缺点是什么?

提前致谢:D

2 个答案:

答案 0 :(得分:4)

Heroku是最简单的Rails部署。这是一个完全管理的黑盒解决方案,适用于您的应用程序,具有出色的文档,并且他们一直在改进它,着眼于可用性。一旦你有一个工作开发版的应用程序,这是一个很短的跳跃,在Heroku上运行。有关详细信息,请参阅QuickstartGetting Started with Ruby文章。

这种易用性的成本是一定程度的不灵活性。他们在开放式方面做得很好,但是托管架构的“一刀切”方法不可避免地会导致问题。如果您只有一个带有标准关系数据库和常见负载配置文件的中小型Web应用程序,这不是什么大问题。如果您需要更多自定义堆栈以及各种附加服务(例如redis,sphinx,rabbitmq等),那么您可能会进入第三方插件。所有这些托管解决方案和Heroku本身都比它们构建的亚马逊网络服务收取高价,而后者又比运行自己的服务器的原始硬件/托管成本收费更高。如果您的网站规模非常大,您不仅要支付巨额费用,而且托管服务提供商为一般情况做出的假设将不可避免地不适合您的特定情况以及自定义调整的群集。这就是为什么所有像谷歌,Facebook,雅虎这样真正庞大的公司都运行自己的数据中心的原因,因为在这种规模上拥有一支专门的20万美元/年的系统工程师,设计和维护你的基础设施的工作人员可以多次为自己付费。远离商品解决方案的节省。

但是在规模较小的情况下,尤其是在产品的早期快速迭代期间,使用像Heroku这样的东西意味着您可以完全专注于您的应用程序并且最少担心基础架构。一个例外是如果你有很多Linux系统管理员剁,那么即使早期Heroku可能也不值得花费,在这种情况下你可能会更喜欢像Engine Yard这样的东西,它仍然为你提供一个完整的Rails堆栈。盒子,但让你更接近金属。

无论如何,Heroku是一个开始Rails初学者的好地方。它是免费开始的,没有理由你不能进行成本评估,并在你有更多经验时稍后迁移。

答案 1 :(得分:2)

gtd的答案很棒,只是为了补充一下我用heroku遇到的问题:

大约一年前,当我开始使用Ruby on Rails和Heroku时,给我带来大多数问题的是默认情况下我的开发机器,Rails使用SQLite,而在Heroku上默认是postgreSQL。

它通常不会给你带来太大的麻烦,但GROUP BY之类的某些东西的工作方式不同,这使得当我的开发机器上的某些东西可以工作而不是Heroku时,我会感到非常沮丧。我建议你在dev机器上安装一个postgreSQL服务器,用于计划在Heroku上部署的非平凡应用程序。

还有一些你在Heroku上无法做到的事情,你可以在VPS上,我在与支付提供商合作时遇到问题,这需要我有一个静态IP,因为Heroku是一个云服务它不能要做,我必须使用代理与提供商联系。

还有一些宝石(很少)你无法在那里安装,你不能安装一些宝石所依赖的二进制文件,虽然它对我来说从来都不是问题,请牢记这一点。 / p>

除了那两个问题之外,Heroku是开始部署应用程序的最简单的地方。