3 Rails hosting options
28 Jun 2016
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
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
Pros:
- gets you dead-simple deploys
- automatically load-balances between processes
- has a free plan to get started
Drawbacks:
- expensive for large apps
- small room for control — can't install system packages
DigitalOcean
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
Pros:
- it's just a server; you can do anything with it
- cheaper for medium apps than Heroku
- one-click setup for common cases
Drawbacks:
- have to set everything up, etc
- auto scaling for large projects gets messy
(You can use my referral link to get $10 in credit.)
AWS EC2
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
Pros:
- advanced features
- AWS offers more services and levels of control
- has a free tier for new users
Drawbacks:
- more expensive than DO