You rock at what you do… which is, getting stuff done and using code to build solutions for problems. The question now is, how do you take it from your computer to some place everyone can see it?
This post is meant to be a quick run-down of the available options to help you make a choice.
Heroku is a popular Platform as a Service, which is built with simplicity in mind.
It takes care of almost everything in your deployment process — deploys are as simple as
git push heroku master.
It’s great for just getting your app out there, or hosting a small-to-moderate app.
Starting at $7/mo for 512MB RAM option.
For higher-traffic apps, the price can get too high, and more manual options could allow to reduce the cost.
Who Heroku is good for:
- people with zero or close to zero devops experience
- small to moderate websites
- gets you dead-simple deploys
- automatically load-balances between processes
- has a free plan to get started
- expensive for large apps
- small room for control — can’t install system packages
DigitalOcean is, at its core, just a VPS (virtual private server).
Unlike Heroku, you will need to manually configure your server and setup the deployment process.
There is one-click setup for some common cases, like Rails, that gets the environment ready. Deploys are still up to you, though.
Nominal DO cost is cheaper — $5 for what would be $7+ on Heroku, but you also have to take opportunity cost into account. It takes time and effort to set everything up. For small to medium apps, Heroku is clearly a better option, but once you outgrow it, DO looks like a great alternative.
Who DO is good for:
- medium apps
- people with devops experience, or willing to learn some
- it’s just a server; you can do anything with it
- cheaper for medium apps than Heroku
- one-click setup for common cases
- have to set everything up, etc
- auto scaling for large projects gets messy
(You can use my referral link to get $10 in credit.)
Compared to DigitalOcean, EC2 is more suited for large apps that can take advantage of things like autoscaling. It also offer more in terms of options.
It still shares some pros/cons of DigitalOcean, namely the need for manual setup.
Who EC2 is good for:
- high-traffic apps
- people with devops experience, or willing to do that
- advanced features
- AWS offers more services and levels of control
- has a free tier for new users
- more expensive than DO