我刚开始在 Rails 上学习 Ruby,我想知道 Heroku 到底是什么?我知道它的云可以帮助我们避免使用服务器?我们什么时候真正使用它?
5 回答
Heroku 是一个云平台即服务。这意味着您不必担心基础设施;您只需专注于您的应用程序。
除了 Jonny说的,Heroku 还有几个特点:
- 使用 Git 推送即时部署 - Heroku 使用您的构建脚本构建您的应用程序
- 大量附加资源(应用程序、数据库等)
- 进程缩放 - 为您的应用程序的每个组件独立缩放,而不影响功能和性能
- 隔离 - 每个进程(又名测功机)彼此完全隔离
- 完整的日志记录和可见性 - 轻松访问应用程序每个组件和每个进程 (dyno) 的所有日志记录输出
Heroku 提供了非常好的教程,让您可以在几分钟内开始。他们还免费提供前 750 个计算小时,这意味着您可以免费拥有一个进程(又名 Dyno)。性能也非常好,例如用 node.js 编写的简单 Web 应用程序每秒可以处理大约 60 - 70 个请求。
Heroku 的竞争对手是:
它是一个基于云的、可扩展的服务器解决方案,它允许您轻松管理 Rails(或其他)应用程序的部署,前提是您订阅了许多约定(例如 Postgres 作为数据库,不写入文件系统)。
因此,您可以通过改进数据库和增加 dynos(Rails 实例)和 worker 的数量来轻松扩展应用程序的增长。
它不能帮助您避免使用服务器,您需要对服务器管理有所了解才能有效地调试您的平台/应用程序组合的问题。然而,虽然它相对昂贵(即,与在 Slicehost 上租用一个切片或其他东西相比,每个实例),但有一个免费帐户,并且在付费某人构建自己的解决方案或采取更具成本效益之间进行粗略的权衡额外的费用。
Heroku 基本上提供了网络空间来上传您的应用程序
如果您正在上传 Rails 应用程序,那么您可以按照本教程 https://github.com/mrkushjain/herokuapp
正如我所看到的,它是一种可扩展的托管网络托管服务,随时可以增长,因此您不必担心它。
它对于普通的 PHP Web 应用程序没有用处,因为那里有很多带有 ftp 的 Web 托管服务,用于没有可扩展性需求的简单 Web,但是如果您需要更大的 Heroku 或类似的东西,您就需要它。
它通过命令行工具作为服务公开,因此您可以编写脚本来自动化部署。无论如何,它与启用 Git 的其他网络托管服务非常相似,但 Heroku 使它更简单。
就是这样,让管理工作对您来说更简单,因此可以节省您的时间。但我不确定,因为我才刚刚开始!
官方文档中对它的工作原理的一个很好的介绍是:
每个 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 似乎只是简化了使用云提供商的过程,但需要付出一定的代价。