This time last week I planned on testing a new server. Now we are running on that new server! As I said in my post then I was thinking of going with SliceHost, well (sorry guys), but in the end we decided to go with Linode. Everything has been migrated over and it is purring along! Read on to find out why…
Before I had even heard of Linode there was one thing I just didn’t like about SliceHost: they required you to pay for 3 months in advance, and they don’t appear to offer a money back guarantee. This may not sound very major, but to us it was the deciding factor. Other than this they are very evenly matched. So onto what I believe to be the number one rule of business: make customers believe you service is risk free by providing a trial and/or refund policy. I could go on all day about this, but ill get back to the main point…
Anyway, Linode seemed to put you more in control by providing you with the nitty gritty details such as deciding how to setup your partitions and all other stuff us closet Linux users dream about so I went with them…. Another factor was that to me they seemed to be innovating more, over the past few months they had a number of new developments that looked good, including a private virtual LAN so you could transfer data for free between your ‘nodes’ (what they call a machine instance). Not that we need it yet, but if we ever need more than one machine its good to know.
A point where SliceHost wins though is that they are currently using Xen virtualisation which is supposed to be faster than UML (which Linode are using), but Linode are in the process of beta-testing their Xen system. Linode also provide slightly more resources, but we would be fine on the minimum that Slicehost provide so that wasn’t really a concern.
The setup process was fairly straight forward, it took about an hour for my account to be initially activated at which point I recieved an email saying my account was ready. Upon logging in I was asked where I wanted my node to be situated (Linode have a choice of three datacentres). I had read in the forum about ports being blocked in the Atlanta datacentre, so I avoided that and chose the Dallas one. After this I was prompted to chose my Linux distribution and setup partitions and a couple of minutes later I was sitting at the terminal of my shiny new server.
I chose Ubuntu Gutsy (7.10) as I was familar with this and then procedded to set everything up. I won’t bore you with the details, but the hardest bit was the mail server. Slicehost and Linode both have wikis that have a wealth of information, so look there if you are interested. Here is a list of packages I used:
Webserver - lighttpd
Database - MySQL, phpMyAdmin
Mail - Postfix, Courier IMAP, Spam Assassin, Super Secret Email Managing Thingy™ (with added pzzzzaazzzzz!) - our frontend to the awful Postfix configuration, RoundCube Webmail
Firewall - IPTables
And a load of custom backup and management stuff…
I had a few niggles with some of the Ubuntu packages so had to compile a couple of bits from source. The lighttpd package was out of date and had a major security flaw, so I built that, and the ImageMagick (for Keepsy previews) from Ubuntu didn’t work so I built the latest version.
I changed the backup script a bit so it properly backup the MySQL databases (before the actual files were copied, but I realised this was flawed as data is held in memory before being flushed to disk), as such instead I used mysqldump which dumps your database in SQL format, this is also much more efficient (we now store about a meg of SQL data - which compresses easily - rather than 30 Mb of MySQL databases - which doesn’t compress well). I was also quite supprised that the final system only uses around 800 Mb, so I figured we might as well put Amazon S3 to good use and create full system backups to easily restore in the case of problems. We just used tar set to exclude certain directories, it ended up create a 200 Mb backup!
Now onto performance. In my last post I said there was nothing wrong with MediaTemple. Well, sorry guys, but compared to our Linode setup, yours was poor. Everything just seem ssssooooo much faster now! We have plans to make it even better though, if you follow my keepsies you may have noticed I added cfis : Making Rails Go Vroom, a post about making Rails applications run faster - some quick initial tests showed that a few changes here and there would make a huge difference! Watch this space!
If you have any questions about our setup feel free to leave a comment!