Heroku到底是啥?

Posted

技术标签:

【中文标题】Heroku到底是啥?【英文标题】:What exactly is Heroku?Heroku到底是什么? 【发布时间】:2012-06-16 01:13:42 【问题描述】:

我刚开始在 Rails 上学习 Ruby,我想知道 Heroku 到底是什么?我知道它的云可以帮助我们避免使用服务器?我们什么时候真正使用它?

【问题讨论】:

用最简单的术语来说:Heroku 允许您通过将代码推送到其 repo 来部署 Web 应用程序。 Heroku 为您处理一切。 我可以将它用于移动应用后端部署吗?它支持 mongoDb 吗? 【参考方案1】:

Heroku 是一种云平台即服务。这意味着您不必担心基础设施;您只需专注于您的应用程序。

除了Jonny said,还有几个Heroku的特点:

使用 Git 推送即时部署 - Heroku 使用您的构建脚本构建您的应用程序 大量附加资源(应用程序、数据库等) 进程缩放 - 独立缩放应用的每个组件,而不影响功能和性能 隔离 - 每个进程(也称为 dyno)彼此完全隔离 完整的日志记录和可见性 - 轻松访问应用程序的每个组件和每个进程 (dyno) 的所有日志记录输出

Heroku 提供了非常好的教程,让您可以在几分钟内开始。他们还免费提供前 750 个计算小时,这意味着您可以免费拥有一个进程(又名 Dyno)。性能也非常好,例如用 node.js 编写的简单 Web 应用程序每秒可以处理大约 60 - 70 个请求。

Heroku 的竞争对手是:

OpenShift by Red Hat Windows Azure Amazon Web Services Google App Engine VMware HP Cloud Services Force.com

【讨论】:

+1 还提到还有其他服务可供选择。 我只是想知道在 localhost/apache 网络服务器上运行 rails 应用程序与在 heroku 上运行应用程序有什么区别? 对我来说,仅仅阅读竞争对手列表就让我了解 Heroku 可能是什么。 竞争对手名单有点误导。列表中的大多数“竞争对手”都将云基础设施作为服务提供,而 Heroku 将其云基础设施的管理作为服务出售。 Heroku 本身就是 AWS 的客户;当您推送到 Heroku 时,您的应用程序位于 AWS 实例上。说他们是竞争对手,就像说婚礼策划师在与宴会厅竞争。 dzone.com/articles/…【参考方案2】:

这是一个基于云的、可扩展的服务器解决方案,如果您订阅了许多约定(例如 Postgres 作为数据库,不写入文件系统),您可以轻松管理 Rails(或其他)应用程序的部署。

因此,您可以通过改进数据库和增加 dyno(Rails 实例)和工作线程的数量来轻松扩展您的应用程序。

这并不能帮助您避免使用服务器,您需要对服务器管理有所了解才能有效地调试您的平台/应用组合的问题。然而,虽然它相对昂贵(即与在 Slicehost 上租用一个切片或其他东西相比,每个实例),但有一个免费帐户,这是一个粗略的权衡,即花钱请人构建自己的解决方案或采用额外的费用。

【讨论】:

【参考方案3】:

Heroku 基本上提供了网络空间来上传您的应用程序

如果您要上传 Rails 应用程序,那么您可以按照本教程进行操作 https://github.com/mrkushjain/herokuapp

【讨论】:

现在可以无耻地自我宣传您的 Github 了吗?【参考方案4】:

在我看来,它是一种可扩展的托管网络托管服务,随时可以扩展,因此您不必担心。

这对于普通的 php Web 应用程序没有用处,因为那里有很多带有 ftp 的 Web 托管服务,用于没有可扩展性需求的简单 Web,但是如果您需要更大的 Heroku 或类似的东西,那就是您所需要的。

它通过命令行工具作为服务公开,因此您可以编写脚本来自动化部署。无论如何,它与启用 Git 的其他网络托管服务非常相似,但 Heroku 使它更简单。

就是这样,让您的管理工作变得更简单,从而节省您的时间。但我不确定,因为我才刚刚开始!

官方文档中很好地介绍了它的工作原理:

https://devcenter.heroku.com/articles/how-heroku-works

【讨论】:

【参考方案5】:

每个 DZone:https://dzone.com/articles/heroku-or-amazon-web-services-which-is-best-for-your-startup

Heroku 是基于 AWS 的平台即服务 (PaaS) 产品,与弹性计算云有很大不同。在我们考虑使用这两种解决方案部署和支持我们的应用程序时,区分“基础设施即服务”和“平台即服务”解决方案非常重要。

Heroku 比 AWS Elastic Compute Cloud 更易于使用。也许它甚至太简单了。但这种简单性是有充分理由的。 Heroku 平台为我们提供了现成的运行时环境和应用服务器。此外,我们还受益于与各种开发工具、预装操作系统和冗余服务器的无缝集成。

因此,使用 Heroku,我们不需要考虑基础设施管理,这与 AWS EC2 不同。我们只需要选择订阅计划并在必要时更改我们的计划。

那篇文章很好地解释了 Heroku 和 AWS 之间的区别,但看起来您可以选择 AWS 以外的其他 iaas(基础设施)提供商。所以最终 Heroku 似乎只是简化了使用云提供商的过程,但需要付出一定的代价。

【讨论】:

以上是关于Heroku到底是啥?的主要内容,如果未能解决你的问题,请参考以下文章

AWS Lambda 与 Heroku:主要区别是啥?

运行文件的 heroku 调度程序命令是啥?

我的 Heroku 应用程序的 IP 地址是啥

是啥阻止了这个 rails/vue 项目部署到 heroku?

Heroku中“Procfile声明类型->(无)”的原因是啥?

在 Heroku 部署之间保持少量状态的好方法是啥?