When comparing Heroku vs DigitalOcean, the Slant community recommends DigitalOcean for most people. In the question“What are the best hosting providers for a Python web application?” DigitalOcean is ranked 1st while Heroku is ranked 2nd. The most important reason people chose DigitalOcean is:
DigitalOcean has a control panel that's intuitive and easy to use, new servers (Droplets) can be spun up in under a minute and they offer stock "apps" (LAMP, RoR, Wordpress) that can be deployed instantly. There's also an [extensive documentation](https://www.digitalocean.com/community/tutorials) for people new to VPS.
Ranked in these QuestionsQuestion Ranking
Pro Easy to start with
Getting started with Heroku is very easy. It's a very straightforward procedure and a beginner can set up their first app in two minutes. Often it's just a matter of a couple of
git commands and it's all set up and running. The official Heroku docmentation also helps a lot.
Pro Excellent error logs
When your deploy fails you see a legitimate error log. Many of the other PaaS give you nondescript messages and debugging is a pain. Debugging Heroku wins by comparison.
Pro Add-ons let you easily add features and technologies
Heroku has a vast list of plugins and services that can be added to an instance. These plugins cover things from databases to email systems. This remove the task of having to install services and setting them up manually. Heroku does it all for you.
Pro Simple scaling
Heroku instances can easily be scaled up or down by increasing or decreasing the number of available dynos for that instance. This can be done through the CLI or through Heroku's web UI.
Pro Dedicated build servers
Heroku has dedicated servers for building app dependencies, to ensure that you won't have issues like "out of memory" errors when deploying your app.
Heroku is one of the oldest PaaS providers. The fact that it's been around for such a long time means that it had a lot of time to mature over the years. There's also a massive number of articles, guides and tutorials on Heroku out there for beginners and advanced users.
Pro Free option
Heroku offers a free tier which contains a single dyno instance. It offers 512MB of memory and 100MB swap space.
DigitalOcean has a control panel that's intuitive and easy to use, new servers (Droplets) can be spun up in under a minute and they offer stock "apps" (LAMP, RoR, Wordpress) that can be deployed instantly. There's also an extensive documentation for people new to VPS.
Pro Pay-as-you-go with multiple payment options
Billing is done per hour. Each month has a 672 hour (28-day) billing cap with server runtime past that point being free of charge. DigitalOcean accepts payments via Visa, MasterCard, American Express, Discover, and PayPal.
Pro Competetive starter-level pricing
With pricing that starts at $5/month. It's a pretty cheap VPS provider.
Pro Extensive Tutorials/Guides
People can often find tutorials needed provided by DigitalOcean.
Pro Good API
DigitalOcean has an API for creating and destroying droplets and replicating droplet control panel functionality. The API is RESTful, uses oAuth, supports IPv6 and comes with an extensive documentation.
Pro (New) Block Storage Volumes
You can now attach dynamic distributed (assuming SAN) storage to a droplet. Multiple droplets cannot attach to the same volume. The storage is very affordable and there are easy to follow how-to guides.
(as of writing, only in certain datacenters)
Pro Flexible backup mechanism
Automatic backups can be made for 20% of the droplet price and an unlimited amount of snapshots at $0.02 per GB of storage can be made manually.
Con Constrained by addons
If you want to fully customize your production environment, then Heroku can be seriously constraining. Installing libraries or services can not be done unless there is already a Heroku plugin for it.
Con Further deployments are slow
While starting with Heroku is fast and easy, and the first few deployments are actually very fast, larger applications tend to have slower deployments. It takes some time for the dynos to restart and while they are restarting the application is completely offline. Which means that you can lose precious seconds of application time.
Con Really expensive
Heroku starts getting really expensive once you leave that free tier. It's not just the bare Heroku service that is costly, the addons as well are very pricey.
Con No DDoS protection
When Digital Ocean detects what they think may be a DoS attack, they will cut traffic to the droplet to avoid performance drops to neighbors etc. This means if your droplet comes under attack, or appears to be under attack, it will be disconnected from the network, effectively down.
Con Limited payment options
Con Setup is not as fast as advertised
A person who wants to set this up, set that up, configure this and so forth - and who has minimal time pressures would be okay. But the time it takes to be set up can be crucial for people who want to get up and running as fast as possible.
Con Don't accept Bitcoin yet
Even though it's one of the most voted suggestions on their customer feedback website, DigitalOcean does not accept any crypto-currency payment methods.
Con Limited Locations, compared to others
I know with many applications, locations are not always super important. However there are several good reason to have certain locations. Only having East Coast and West Coast happens to be an issue for us and a few of our partners.