我是一名RoR初学者程序员,计划使用Heroku部署我的应用程序。我的其他顾问朋友说,Heroku真的很简单,很好用。唯一的问题是我仍然不知道赫鲁是做什么的…

我看了他们的网站,简而言之,Heroku所做的是帮助缩放,但是……这有什么关系呢?Heroku如何帮助:

速度——我的研究表明,如果我的目标受众是美国/亚洲,那么在美国东海岸部署AWS将是最快的。 安全性——他们有多安全? 缩放-它实际上是如何工作的? 成本效率——有一些像动态的东西,使其易于扩展。 他们在竞争对手面前表现如何?比如Engine Yard和bluebox?

请用外行的英语术语来解释……我是一个初级程序员。


当前回答

有时候,我想知道为什么人们把AWS比作Heroku。AWS是一个IAAS(基础设施即服务),它清楚地说明了系统的健壮性和计算性。另一方面,Heroku只是一个SAAS,它基本上只是AWS服务的一部分。所以,当你可以使用Heroku将第一款产品发布到prime时,为什么还要费劲建立AWS呢?

Heroku是免费的,简单的,容易部署几乎所有类型的堆栈到web。Heroku是专门构建的,可以在短时间内绕过将应用程序传输到活动服务器的所有麻烦。

不过,您可能希望使用双方提供的任何教程来部署应用程序并进行比较

AWS DOCS和Heroku DOCS

其他回答

Heroku在后台使用AWS,这完全取决于你需要的解决方案类型。如果你是一个核心linux和devops的人,你不担心从头开始创建vm,比如选择ami,选择pal水泥选项等,你可以选择AWS。如果你想在表面上做事情而没有那些网络,你可以和heroku一起去。

Amazon Web Services (AWS)提供了从IaaS到PaaS的大量服务,保证了数据和基础设施的99.9999999%的持久性和可用性。AWS为开发人员提供了基础设施自动化以及若干工具,以便将其应用程序部署过程管线化。

另一方面,Heroku只是PaaS,它提供在他们的云上管理你的平台的服务。无论是基础设施还是安全性,它都无法与AWS相提并论。

Actually you can use both - you can develop an app with amazon servers ec2. Then push it (with git) to heroku for free for awhile (use heroku free tier to serve it to the public) and test it like so. It is very cost effective in comparison to rent a server, but you will have to talk with a more restrictive heroku api which is something you should think about. Source: this method was adopted for one of my online classes "Startup engineering from Coursera/Stanford by Balaji S. Srinivasan and Vijay S. Pande

当人们开始部署某个东西时,通常会问这个问题:Heroku或AWS。

我使用Heroku和AWS的实验,这里是我的快速回顾和比较:

希罗库

One command to deploy whatever your project types: Ruby on Rails, Nodejs So many 1-click to integrate plugins & third parties: It is super easy to start with something. Don't have auto-scaling; that means you need to scale up/down manually Cost is expensive, especially, when system needs more resources Free instance available The free instance goes to sleep if it is inactive. Data center: US & EU only CAN dive into/access to machine level by using Heroku run bash (Thanks, MJafar Mash for the advice) but it is kind of limited! You don't have full access! Don't need to know too much about DevOps

AWS - EC2

This just like a machine with pre-config OS (or not), so you need to install software, library to make your website/service go online. Plugin & Library need to be integrated manually, or automation script (public script & written by you) Auto scaling & load balancer are the supported services, just learn how to config & integrate to your system Cost is quite cheap, depends on which services and number of hours you use it There are several free hours for T2.micro instances, but usually, you will pay few dollars every month (if still using T2.micro) Your free instance won't go to sleep, available 24/7 (because you may pay for it :) ) Data center: around the world. Pick the region which is the best fit for you. Dive into machine level. So you can enjoy it Some knowledge about DevOps, but it is okay, Stackoverflow is helpful there!

AWS Elastic Beanstalk是Heroku的替代品,但更便宜

《Elastic Beanstalk》是在2010年发布的公测版本;它帮助我们更容易地进行部署。详情请点击这里 Beanstalk是免费的,您将支付的费用将用于您使用的服务和使用小时数。 我用了很长一段时间的弹性豆茎,我觉得它可以代替Heroku,而且更便宜!

总结

Heroku:开始很简单,免费实例,但之后很贵 AWS:不容易,免费小时可用,有点便宜,豆茎应该关注使用

所以在我目前的系统中,我使用Heroku进行分期,使用Beanstalk进行生产!

正如Kristian Glass所说,IaaS(AWS)和PaaS(Heroku, EngineYard)之间没有可比性。

PaaS基本上帮助开发人员加快应用程序的开发,从而节省资金,最重要的是创新他们的应用程序和业务,而不是设置配置和管理服务器和数据库之类的东西。使用PaaS的其他特性是应用程序部署过程,如敏捷性、高可用性、监视、扩展/去规模化、对专业知识的需求有限、易于部署以及减少成本和开发时间。

但PaaS仍有其黑暗的一面,这阻碍了PaaS的采用:

减少对服务器和数据库的控制 如果管理不当,成本将非常高 在当今时代,不成熟的,可疑的

除此之外,你应该有足够的技能来管理你的IaaS:

硬件采购 操作系统 服务器软件 服务器端脚本环境 Web服务器 数据库管理系统(Mysql, Redis等) 配置生产服务器 用于测试和部署的工具 监控应用程序 高可用性 负载均衡/ Http路由 业务备份策略 团队协作 重新生产

如果您的业务规模较小,PaaS将是您的最佳选择:

现付现付 启动成本低 把管道问题留给专家 PaaS处理自动缩放/除垢、负载平衡、灾难恢复 PaaS管理所有安全需求 PaaS管理可靠性、高可用性 Paas为您管理许多第三方附加组件

这完全是基于个人需求的选择。您可以在我的PPT托管Rails应用程序上获得详细信息。