Heroku究竟是什么?
我刚刚开始学习Ruby,我想知道Heroku究竟是什么? 我知道它是一个帮助我们避免使用服务器的云吗? 我们什么时候使用它?
Heroku是一个云平台即服务。 这意味着你不必担心基础设施。 你只关注你的应用程序。
除了强尼所说的之外 ,还有Heroku的几个特点:
- 使用Git push进行即时部署 – 使用构build脚本,由Heroku执行应用程序的构build
- 大量的附加资源(应用程序,数据库等)
- 在不影响function和性能的情况下,对应用程序的每个组件进行缩放 – 独立缩放
- 隔离 – 每个进程(aka dyno)是完全隔离的
- 完整的日志logging和可见性 – 轻松访问应用程序的每个组件和每个进程(dyno)的所有日志logging输出
Heroku提供了很好的书面教程,可以让你在几分钟内开始。 他们还免费提供前750个计算小时,这意味着您可以免费获得一个stream程(即Dyno)。 性能也是非常好的,例如用node.js编写的简单web应用程序每秒可以处理大约60-70个请求。
Heroku的竞争对手是:
- Red Hat的OpenShift
- Windows Azure
- amazon web services
- Google App Engine
- VMware的
- 惠普云服务
- Force.com
这是一个基于云的可伸缩服务器解决scheme,只要您订阅了许多约定(例如Postgres作为数据库,不需要写入文件系统),就可以轻松pipe理Rails(或其他)应用程序的部署。
因此,通过改善数据库并增加dynos(Rails实例)和worker的数量,您可以轻松扩展应用程序的增长。
它不能帮助您避免使用服务器,您需要对服务器pipe理有所了解,以有效地debugging您的平台/应用程序组合的问题。 然而,虽然它相对比较昂贵(比如,与在Slicehost上租用某个产品相比),但是这是一个免费的帐户,而且在支付某人构build自己的解决scheme方面更具成本效益,额外的费用。
Heroku基本上提供了webspace来上传你的应用程序
如果你正在上传一个Rails应用程序,那么你可以按照这个教程https://github.com/mrkushjain/herokuapp
正如我所看到的,这是一个可扩展的pipe理Web托pipe服务,随时可以在任何意义上成长,所以你不必担心。
这对于一个普通的PHP web应用程序来说是没有用的,因为在那里有大量的ftp的web托pipe服务,而没有可伸缩性的需求,但是如果你需要更大的Heroku或类似的东西,你需要的东西。
它通过命令行工具公开为服务,以便您可以编写脚本来自动化您的部署。 无论如何,这是非常相似的其他networking托pipe服务启用Git,但Heroku使它更简单。
这是它的事情,使pipe理的东西更简单,这样可以节省您的时间。 但我不确定,因为我刚刚开始!
在官方文档中如何运行的一个很好的介绍是:
根据DZone: https : //dzone.com/articles/heroku-or-amazon-web-services-which-is-best-for-your-startup
Heroku是基于AWS的平台即服务(PaaS)产品,与Elastic Compute Cloud有很大的不同。 当我们考虑使用这两种解决scheme部署和支持我们的应用程序时,区分“基础架构即服务”和“平台即服务”解决scheme非常重要。
Heroku比AWS Elastic Compute Cloud更简单易用。 也许这太简单了。 但是这个简单性有一个很好的理由。 Heroku平台为我们提供了一个现成的运行时环境和应用程序服务器。 另外,我们可以通过与各种开发工具,预安装的操作系统和冗余服务器的无缝集成受益。
因此,与Heroku不同,我们不需要考虑基础设施pipe理,与AWS EC2不同。 我们只需要select订阅计划,并在必要时更改我们的计划。
那篇文章很好地解释了Heroku与AWS之间的差异,但看起来您可以select除AWS之外的其他iaas(基础架构)提供程序。 所以最终Heroku似乎只是简化了使用云提供商的过程,但代价不菲。