What does Heroku do?

Heroku was and is one of the first cloud platforms as a service (PaaS).

The TL;DR

Heroku, founded in 2007, was (and is) one of the first cloud platforms as a service. Heroku makes it easy to build and run applications in the cloud without the need to set up or manage your own infrastructure.

  • Though easier than in the past, setting up your application today requires a good deal of configuration and maintenance

  • Standard infrastructure as a service offerings (AWS EC2, etc.) have lots and lots of knobs and buttons to nail down (flexibility comes at a cost!)

  • Heroku (and PaaS like it) greatly simplify everything for developers and makes it easy to deploy and run apps 

  • Key Heroku features: auto deploy from GitHub, straightforward CLI, simple pricing, plugin ecosystem

In many ways, Heroku was ahead of its time: they were acquired by Salesforce in 2010, and since then have mostly gone downhill. It’s hard to find a product as beloved by developers as Heroku (and as tragic), so it’s worth understanding what they do.

The core Heroku product: PaaS

To get up and running with basic compute cloud products like Amazon’s EC2 is not simple, even though it is way better than the old days (buying servers from scratch). There are hundreds of choices and configurations to make, and that’s just getting started. Continually managing them, upgrading software, scaling up and down, these require real expertise that most developers just don’t have.

Heroku sells you the antidote to that – a much simpler way to deploy apps. Deploying an app with Heroku is as simple as picking the right size compute, and then running a few commands. Developers offload the server maintenance and upgrades to Heroku. So when you break down what you’re really getting when you pay for Heroku, in addition to just infrastructure (that’s cheap), it’s this very nice, thoughtfully designed developer experience that saves time and headache.

Setting the stage: AWS EC2

The easiest – and perhaps most important – way to understand Heroku is to first understand what it looks like to deploy an app using the run of the mill ...