Rails VPS Hosting comes in many forms.
The cheapest is to use the “cloud” VPS providers which currently include the likes of DigitalOcean, Amazon EC2, Hetzner, Vultr and several others.
These providers are able to offer infrastructure-independent services for as little as $5/mo (Vultr even experimented at $2.50/mo until they ran out of capacity).
The point is they are very inexpensive and provide an effective way to run Ruby on Rails based applications on infrastructure which you both own and can scale without having to buy expensive packages etc.
It works well, but there is one major downside – management. It’s very difficult to set up the servers and then to keep them running (without some sort of underlying management system). This is a problem which has attempted to have been solved by the likes of Chef/Puppet and Docket, but generally to no avail.
The good news is that it’s ALL software – almost every aspect of the “web” server stack is software-driven. The difficulty lies in getting all the software to work together, which of course is difficult and time-consuming.
This is a rundown of the software you require to get a web server online:
- Operating System
- Libraries / Packages
- Programming Language Interpreters (Ruby/PHP/etc)
- Web Server Software
- Application Server Software
- GIT Repos
The “GIT” repos thing basically means that you’re able to push applications to the server, and they’ll be able to run. The Web & Application server software packages are the equivalent of NGinx/Apache and the likes of Passenger.
Whilst most people don’t really think about it, if you’re running *any* sort of dynamic rendering mechanism for web servers (be it with PHP, NodeJS, Ruby, Python etc), you’ll need to use an application server to get it running.
Because application servers are generally bundled with web server software, no one really cares / knows much about them. This is why “shared” hosting is such a popular option – its bundling with PHP is all that’s required for the likes of WordPress, hence people are not really bothered about how it works in the back-end.
For Rails, the ability to manage the underlying dependencies, and the compatibility with the “Passenger” application server, are the two most paramount requirements to get the system running properly. This is what Rails VPS hosting is best for – allowing people to run their own web hosting infrastructure without any lock-in to specific software resources etc.
As mentioned, however, the problem with this is that you are responsible for all the server software, backups and any further integrations you may wish to apply. Unless you’re using a service such as VPSDeploy, you’ll end up having to manually account for everything in the system.
The only systems worth using in this capacity (for Rails) at the moment are HatchBox.io, Nanobox.io and VPSDeploy.com.