The simple answer to running Ruby on Rails applications on different hosting services is that if you have access to the underlying operating system, you will be able to run the applications.
The core requirements (well, two core requirements) that are essential for Rails applications and are missing from most “traditional” hosting services include…
- Deployment engine (usually GIT)
- A viable application server that supports Rails (Puma or Passenger)
The first problem can usually be overcome using FTP (not the most efficient solution, but still works).
The second is much more problematic and why most people end up using VPS solutions to deploy Rails applications (VPS servers give you unlimited access to the underlying infrastructure).
VPS servers are basically what “cloud” providers give people access to. Contrary to “traditional” hosts – which literally allocate space to a single server, the new “cloud” infrastructure setup basically divides the load between an entire data center of servers.
This not only keeps costs down, but ensures that the buyer can actually *scale* their computing resources without having to physically pay for a new server. In any case, if you absolutely want to host a “rails” based application on a “cloud” VPS. The only problem with this is that you are responsible for securing the server (which is another story in itself).
Rails Compatible Hosts
To that end, the most important thing to understand is that if you’re looking at this list – ANY VPS server will be able to run a Rails application. You just need to make sure you know how to install the different apps (which I’ll cover in another article). For now, let’s take a look at the most efficient and cost-effective hosts:
The undeniable TSAR of cheap “cloud” VPS providers. Founded in 2011, it was the first to provide VPS infrastructure at a single price for developers. From $5/month you get access to multiple data centers and many different server configurations. The most important thing to understand about DO – as with most other “cloud” VPS hosts – is that spinning up a VPS server literally gives you access to a Linux box running in a data center. You are responsible for setting up everything else (unless – of course – you pay for the precompiled images, etc.). Regardless – this is the most effective “budget” VPS provider for Rails applications.
A lesser known but still very effective cloud VPS service, Vultr is basically a “mini-me” for DigitalOcean. It has data centers in various locations (from the US to Japan and even Germany and the Netherlands) – allowing for wider coverage. The most important thing to appreciate about Vultr is that it’s basically designed to be the equivalent of DigitalOcean – without any of the extra frills that the former might have. For example, it has no built-in monitoring software (which DigitalOcean includes for free), and Vultr’s big claim to fame came from its $2.50/mo VPS server (which is currently “sold out”). This was very effective for developers who just wanted to push simple applications (either for testing in a staging environment or to keep costs low). You still need to provision servers like you do with DigitalOcean.
Advertised as the “fastest” cloud VPS provider, Finland’s UpCloud essentially provides the same services as the first two providers (DigitalOcean + Vultr) – except with a much deeper focus on support. Providing an API along with a myriad of other services, the system provides users with the ability to deploy VPS servers in a number of data centers around the world. Again, the main difference with this is the proportional speed of the servers they run. This is apparently due to their MaxIOPs technology, which basically allows them to store a lot of data in memory (therefore speeding it up). Prices start at $5/month and – yes – you’ll still need to provision the servers yourself.
European Cloud Hosting – Based in Switzerland, they specialize in providing Eurocentric infrastructure. With 4 data centers (2 in Switzerland, 1 in Austria and 1 in Germany), the company has chosen to be extremely specific in its approach to providing infrastructure for various application developers. Although their prices are very competitive, the most important thing to realize about this company is the efficiency they provide. Being Swiss, they benefit from the ingrained culture of efficiency that permeates much of the Swiss community. This means you’ll not only get quick email responses, but also in-depth and well-thought-out responses. They tend to provide services to many banks and financial institutions across Europe. Their niche level targeting allows them to specialize in providing optimal speed, reliability and efficiency of their services to the clients they end up working with.
Hetzner is a German hosting company with two data centers in the country. While they were founded as “traditional” hosting, meaning they essentially allocated their data center around who paid for servers. Since 2017, the company has started offering a “cloud” service – through which you can provision VPS servers in exactly the same way as DigitalOcean, Vultr and the group of other providers. At comparable prices, the most important element of Hetzner’s business is that it is almost exclusively focused on the German market. That’s not to say they don’t serve international customers – but in terms of the availability of their data centers and how they handle support etc, it’s a completely German operation. Obviously, with prices starting at ~$5/month, they only provide the ability to host servers – the onus is on you to provision them.
Not as famous as DigitalOcean or Vultr, but no less effective – Linode is a favorite of many smaller developers, as it was one of the first to offer cheap “cloud” VPS servers. Linode is efficient, with prices starting at $5/month – it has a number of data centers around the world and is almost on par with more popular “cloud” services. As always – you get no frills with the service. You still need to provision and maintain the servers yourself.
The “father” of online hosting, RackSpace has been a major player in the hosting world since its inception in 1998. As you can imagine, they also got into the cloud game very early on. The problem with Rackspace — like Microsoft — is that it’s expensive. Designed primarily for larger organizations, their “cloud” servers start at $50/month – but make up for it with the “fanatic” support the company will provide. This support is actually very good and allows users to really rely on them to keep things as efficient as possible. I would not recommend Rackspace for smaller projects. It’s just not worth the price, especially when you have people like DigitalOcean doing the same thing but for a fraction of the price.
Microsoft’s “cloud” VPS offering is probably the most efficient of the big 3 (Google, Amazon, Microsoft). Azure is packed with additional services that help developers run applications across the vast number of Microsoft-owned data centers. Fully supporting Linux and Windows VPS systems, the company is one of the few that provide a deeper insight into how different servers work. They give access to a rich dashboard through which you can track everything from resource usage to how many requests different servers have received. While this sounds good, it is expensive. And it is really designed to help huge organizations adopt the “cloud” – putting it out of reach for most smaller developers. If you are interested in using it, you should definitely look it up first.
AWS is good but expensive (especially if you need more computing resources). Hailed as the “original” cloud provider, each EC2 instance you spin up actually acts as an independent VPS. The problem with AWS is that because it’s so broad, it’s hard to know what you actually need with it. Also, like Microsoft Azure and Google Cloud Platform – the sheer scale of the infrastructure at play is huge. To that end, it should come as no surprise to learn that the majority of popular web-based applications (especially those that rely on the likes of S3) rely on EC2 & AWS to run. Because of this, the service is generally seen as supporting larger deployments that require multiple server clusters, DB servers, and CDN management (Amazon actually owns “CloudFlare”). After all, if you want to deploy a large and popular application, AWS infrastructure will surely help you. The pricing isn’t great, but it’s well maintained and backed by Amazon’s massive infrastructure (which it uses for its own operations).
Google Cloud Platform
Google’s entry into the “cloud” space, its “cloud platform” is used by companies such as Apple and Twitter. Like Azure & AWS, it is used by larger organizations to streamline their infrastructure requirements. Since Google uses the platform for its own infrastructure, it stands to reason that you should be able to trust the system – and their community is actually very strong and active. The big difference with Google’s platform is pricing. They offer a very competitive price range, which allows a number of different developers to deploy software without incurring huge costs to do so.
The key to all of this – as mentioned – is that you’ll usually need to provision the various servers. This means installing web + application server software, libraries, and any ancillary services (SSL certificates, etc.).
If you’re willing to use a service like Nanobox, Hatchbox, RailsHosting or VPSDeploy – you should be able to avoid the pain of having to set up a valid web host… but ultimately it’s entirely up to you what you do.
To be clear – the beauty of ‘traditional’/’shared’ hosting has yet to catch on in the ‘cloud’ arena. Instead of providing a simple platform for app deployment, you’re pretty much left to your own devices.