Well, after many years of posting my nonsense on the internets, I have finally made the transition from shared hosting to a VPS. This last week, I migrated this site over to a Linode VPS, and I must say that the whole experience has been pretty painless.
A Little History
I’ve used shared hosting for many years, partly because it’s significantly cheaper, and partly because I didn’t want to have to do all of my server management. Most recently, I’ve been using Webfaction for all of my sites, and they remain my favorite shared host. However, with the relaunch of this site with a brand-new code-base, I’ve begun to realize that I may have grown out of shared hosting, even shared hosting that’s as flexible as Webfaction. I’m a strong believer that in order to keep your mind sharp when it comes to computers, you’ve got to be willing to dive in and learn new technologies, which is why when I wrote this site I incorporated a number of fun features like better search and asyncronous tasks via message queuing.
Unfortunately, those techniques involve doing things like running additional process such as RabbitMQ, as well as Celery workers and that consumes memory. I had a number of small projects on that server already, and the cumulative memory was getting to the point that while it fit within the confines of my plan at Webfaction, it was really riding the line of what was acceptable. I had a decision to make: either get an additional plan at Webfaction, or consider moving this site to a VPS somewhere.
After a lot of consideration, I decided on going to a VPS for the following reasons:
- Dedicated hardware resources: In the case of Linode, significantly more resources than I am accustomed to having available to me.
- Full root access: Webfaction allows you to compile and install virtually anything in your home directory, but this can occasionally create strange configuration issues depending on the program. Being able to install as root simplifies this process.
- Choice of Linux distribution: I went with Ubuntu because I knew it would be easy, but I could have used virtually anything, including Gentoo.
I chose Linode as my VPS provider because they had a good reputation, support a wide variety of Linux distributions out of the box and offer quite a bit of server for just a few bucks more than my planned Webfaction configuration.
My Experience With Linode
Linode makes things pretty painless, both with setup, as well as ongoing management.
Setup & Configuration
Getting started with Linode was easy. I just selected my plan, data center and Linux distribution and my VPS was provisioned right away. It took me less than five minutes from clicking order to logging in as root. I’m familiar with Linux, so it took me less than an hour to install all the software I would be using and configure my security settings, but even if you aren’t familiar with Linux, Linode has some excellent documentation and tutorials that can get you on your way.
If you want to speed up deployment even more, you can utilize Linode’s StackScripts functionality to setup common technology stacks on your VPS, or write custom StackScripts to set up specialized environments. The StackScripts are tied into Linode’s API, which means you use them to do virtually anything, including configuration options on Linode’s management platform. I didn’t use a StackScript to configure my server, but looking through the documentation, I can see how if I ever get to the point where I want to deploy multiple Linode instances, using them could save me a ton of time and errors.
Management & Remote Access
Linode provides a nice control panel for monitoring all of your servers, which includes system performance graphs, resize/clone options, reboot controls, backup/restore options and alert settings. In addition to the standard ssh access provided by your Linux distribution, Linode provides out-of-band access through their LISH console. The LISH console can also be used to get access to your machine if you accidentally screw up a security setting and lock yourself out of your own server. Their control panel also provides an easy to use DNS Manager, although you are not required to use them for your DNS services.
In addition to their control panel, Linode also provides a respectable iOS app that provides access to your Linode account. You can view system graphs, reboot your server, and manage DNS settings directly from your iPhone.
People coming from a shared hosting environment who have little experience with Linux may be a bit overwhelmed initially, especially if they are used to using web-based control panels such as cPanel or Plesk, so if you that’s a show-stopper for you, it’s certainly possible to install one of those on your VPS. Honestly though, there comes a time in working on the web when you need to learn how those configuration files actually work, and if you’re doing anything more complicated than deploying a Wordpress site, you had better learn fast before you get yourself into trouble, regardless of where you are hosting your stuff.
It’s safe to say that I’m impressed with Linode’s offering, and the performance of the server itself has been stellar. It’s a flexible service and offers quite a bit for a very reasonable price. While I will continue to use Webfaction for my smaller projects, because their support and ease of use make it a no-brainer, I’m going to start using Linode for this site and any other major project I find myself working on in the near future.
UPDATE: I’ve now been with Linode for over two and a half months, and the performance of the server has continued to be stellar.