I just started learning Ruby on rails and I was wondering what Heroku really is? I know that its a cloud that helps us to avoid using servers? When do we actually use it?
-
8In the simplest terms: Heroku allows you to deploy web applications by pushing your code to their repo. Heroku handles everything for you. – Bobby Apr 19 '18 at 14:35
-
Can I use it for mobile app backend deployment ? does it support mongoDb ? – vikramvi Jun 21 '19 at 13:06
5 Answers
Heroku is a cloud platform as a service. That means you do not have to worry about infrastructure; you just focus on your application.
In addition to what Jonny said, there are a few features of Heroku:
- Instant Deployment with Git push - build of your application is performed by Heroku using your build scripts
- Plenty of Add-on resources (applications, databases etc.)
- Processes scaling - independent scaling for each component of your app without affecting functionality and performance
- Isolation - each process (aka dyno) is completely isolated from each other
- Full Logging and Visibility - easy access to all logging output from every component of your app and each process (dyno)
Heroku provides very well written tutorial which allows you to start in minutes. Also they provide first 750 computation hours free of charge which means you can have one processes (aka Dyno) at no cost. Also performance is very good e.g. simple web application written in node.js can handle around 60 - 70 requests per second.
Heroku competitors are:
-
70+1 for also mentioning that there are other services as alternatives. – Karl-Johan Sjögren Dec 29 '12 at 12:50
-
6I just want to know what is the difference between running a rails app on localhost/apache webserver to running the app on heroku? – neo1691 Mar 25 '14 at 20:46
-
23For me, just reading the competitor list gave me an understanding of what Heroku may be. – Code Poet Jul 15 '14 at 16:39
-
35The competitor list is a little misleading. Most of the "competitors" in the list are offering cloud infrastructure as a service, whereas Heroku is selling their *management* of cloud infrastructure as a service. Heroku itself is a customer of AWS; when you push to Heroku, your app is sitting on AWS instances. To say they're competitors is like saying a wedding planner is competing with banquet halls. – Adelmar Jan 04 '16 at 01:32
-
Also force.com isn't exactly a competitor since Salesforce.com owns Heroku. And force.com doesn't do Ruby on Rails, unless you count through Heroku with [Heroku Connect](https://www.heroku.com/connect) or a [Canvas App](https://developer.salesforce.com/docs/atlas.en-us.platform_connect.meta/platform_connect/canvas_framework_intro.htm) – martin Oct 11 '16 at 02:09
-
1https://dzone.com/articles/heroku-or-amazon-web-services-which-is-best-for-your-startup – Kyle Bridenstine Oct 16 '17 at 21:14
-
@Adelmar True, but most of them also offer some analogous service, for example GCP has the Google App Engine, which does pretty much the same thing as Heroku (managed deployment). – forumulator Sep 19 '18 at 03:02
It's a cloud-based, scalable server solution that allows you to easily manage the deployment of your Rails (or other) applications provided you subscribe to a number of conventions (e.g. Postgres as the database, no writing to the filesystem).
Thus you can easily scale as your application grows by bettering your database and increasing the number of dynos (Rails instances) and workers.
It doesn't help you avoid using servers, you will need some understanding of server management to effectively debug problems with your platform/app combination. However, while it is comparatively expensive (i.e. per instance when compared to renting a slice on Slicehost or something), there is a free account and it's a rough trade off between whether it's more cost effective to pay someone to build your own solution or take the extra expense.

- 2,488
- 1
- 21
- 35
Heroku Basically provides with webspace to upload your app
If you are uploading a Rails app then you can follow this tutorial https://github.com/mrkushjain/herokuapp

- 651
- 2
- 8
- 11
As I see it, it is a scalable administrated web hosting service, ready to grow in any sense so you don't have to worry about it.
It's not useful for a normal PHP web application, because there are plenty of web hosting services with ftp over there for a simple web without scalability needs, but if you need something bigger Heroku or something similar is what you need.
It is exposed as a service via a command line tool so you can write scripts to automate your deployments. Anyway it is pretty similar to other web hosting services with Git enabled, but Heroku makes it simpler.
That's its thing, to make the administration stuff simpler to you, so it saves you time. But I'm not sure, as I'm just starting with it!
A nice introduction of how it works in the official documentation is:

- 32,326
- 33
- 105
- 164

- 5,670
- 11
- 47
- 77
Per DZone: https://dzone.com/articles/heroku-or-amazon-web-services-which-is-best-for-your-startup
Heroku is a Platform as a Service (PaaS) product based on AWS, and is vastly different from Elastic Compute Cloud. It’s very important to differentiate ‘Infrastructure as a Service’ and ‘Platform as a Service’ solutions as we consider deploying and supporting our application using these two solutions.
Heroku is way simpler to use than AWS Elastic Compute Cloud. Perhaps it’s even too simple. But there’s a good reason for this simplicity. The Heroku platform equips us with a ready runtime environment and application servers. Plus, we benefit from seamless integration with various development instruments, a pre-installed operating system, and redundant servers.
Therefore, with Heroku, we don’t need to think about infrastructure management, unlike with AWS EC2. We only need to choose a subscription plan and change our plan when necessary.
That article does a good job explaining the differences between Heroku and AWS but it looks like you can choose other iaas (infrastructure) providers other than AWS. So ultimately Heroku seems to just simplify the process of using a cloud provider but at a cost.

- 1
- 1

- 6,055
- 11
- 62
- 100