All the hosting services presented here are “Infrastructure as a Service” (you pay to rent a machine and you are free to do whatever you want) but Heroku is a “Platform as a Service”. You don’t get a machine. Instead you get a service that will allow you to deploy your application. This means that Heroku is “enforcing” the workflow on you – your DB choices are limited to only PostgreSQL, to deploy your application, you have to use the `Heroku Toolbelt` (which works in a similar way as pushing latest changes to github), etc. So even though, it’s not a big problem (and for some, it might actually be easier, as Heroku will take care of securing your machines and doing all administrative tasks that you would have to do with your own machine), it’s not the “do what you want” approach that other companies give you.