I recently put my portfolio live and along the way embraced a lot of change and new tools. One of these changes was my recent decision to move my hosting from MediaTemple to Linode. (that's my referral, please consider using it if this post is useful to you!)
Linode, if you've not heard, offer VPS hosting at varying levels, from 512mb to a staggering 20gb RAM. I won't go into too much detail as you can find out more on their Features and Why Linode? pages.
I've been a MediaTemple customer for a couple of years, they're a great service and I personally found the customer support helpful and very quick to respond (via Twitter at least).
It's pretty obvious they have a great brand. I'd seen developers proudly proclaiming their website was hosted by MediaTemple in footer. It was like designer label hosting.
I soon outgrew my previous host, Krystal, and their basic packages and at the time couldn't offer anything quite like the bells and whistles of MediaTemple.
Its come to a point however where I was again re-evaluating my hosting needs. Rather than outgrowing MediaTemple, I felt I didn't need the handholding and wanted something a bit more surgical than swiss-army.
Reviews and recommendations
Late last year I'd read a post on Linode by Matt Gemmell. His post was from a few years ago so I asked Matt over Twitter if he'd still recommend Linode, he would.
I googled around a little to find popular opinion for Linode's service, and it was a universal thumbs up from seemingly everyone.
This was a good sign as even with MediaTemple, a host I had been very happy with, for every good review there was also someone keen to share their displeasure with downtime or poor customer service.
Linode's basic 512mb VPS comes in at $19.95/mo. This to me is an absolute bargain.
You get nearly double the bandwidth with the (ve) (350gb vs 200gb), but with Linode this is an optional extra , so you only pay if you require it.
London, UK data centre
Over the last year or so I've become quite obsessed with page speed. Its good for your users, and its good for Google.
Linode allow you to choose from 6 different data centres, and the option to test the speed of each centre with a basic download trial. Naturally, I chose London
I try to pay attention to best practices regarding Page Speed in my websites, GZipping, CSS sprites, combined and minified scripts, optimised images etc, but the response time from the US data centres on my MediaTemple websites always felt like a let down.
I realise MediaTemple offer the (ve) service, but due to the 3 points above this wasn't really an option.
I loathe Plesk, it feels like unnecessary bloat and made tasks more difficult as you were wrestling with the software, bending it to do what you actually wanted.
I felt I'd outgrown the control panels and pre-written software of the (dv) server, and the shared hosting of (gs). Although in fairness MediaTemple's control panel is excellent.
Too much to mention
I could go over everything but instead I'd recommend you take a close look at Linode's features
My Linode setup
I opted for the basic 512mb VPS to begin with as Linode make it very easy to upgrade via your Dashboard as your requirements change.
My setup is as follows:
Being new to all this I chose to use the widely recommended Ubuntu 10.04 as my OS, which was as easy as selecting it from a drop down menu in Linode's dashboard.
I have no preference to any particular Linux distro, I know very little about the differences, but Linode offer many different flavours in many different versions and your server is ready to use almost instantly after selection.
Nginx is a lightweight web server. I'd had memory problems using Apache in the past, even having just a handful of visitors on a site at any one time and my web server would become cumbersome.
I'd done various optimisations but things still weren't ideal, and I couldn't justify the large jump in price to a more hefty (dv).
"Apache is like Microsoft Word, it has a million options but you only need six. Nginx does those six things, and it does five of them 50 times faster than Apache." Chris Lea
As Chris describes, I've found this to be the case. The memory footprint is much lower with the same traffic, and I've been able to do everything in Nginx that'd previously needed from Apache.
I've had to make a few modifications to the Symphony CMS rewrite rules, translating them from Apache to Nginx, but this was the only change that was needed. As a personal side note, I've also found the Nginx configuration to be much more intuitive.
As my Linode server is only 512mb, Nginx seemed a logical choice.
Obvious choice really. I'd like to look into areas such as MongoDB in the future, but as a lot of my work uses open-source CMS systems and frameworks supporting MySQL only, I'll stick with what I know.
PHP-FPM is a FastCGI implementation of PHP that cleverly adapts its processes based on traffic load. You can find out more on their website, and there's various guides around for installing this as a package.
E-mail hosted by Google Apps
This was a bit of a no-brainer, and I've been meaning to do it for a while now.
Rather than hosting your own memory hungry mail server, spam filter, IMAP processes etc, Google will do this for you for free.
They allow you to have up to 10 e-mail accounts, all integrated with Google calendars and Google docs. You can Sync your contacts too, making them accessible from all your devices.
Connect to your e-mail using traditional POP3/IMAP clients such as Apple Mail/Outlook/Thunderbird, or use the webmail service (the slick Gmail interface). You can even setup a custom domain such as http://mail.example.com/.
Simply point your MX records in your DNS to their servers and they'll take care of everything. All for free, I honestly can't see many reasons why you wouldn't want to do this.
In summary, I'm only a few days in and I'd highly recommend trying Linode. Setup was quick, migration was painless, and my website appears to be stupidly fast.