Warning: this post is moderately technical in nature. I think it’s the first technical post I’ve done in almost five years here, so I apologize in advance if it’s too geeky for you.
I’m trying a new feature around here called How I Roll. It seems like I get lots of questions from other people about how/why I do what I do as it relates to tech stuff. For instance, I put a lot of thought into how I handle backups, DNS, web hosting, email, etc., and I figured it might be worthwhile to document and share some of that knowledge. Maybe I can save you some trouble or give you additional insight into something you’re researching for yourself.
For this first installment of How I Roll, I’ll be talking about how I handle web, email, and DNS hosting–the infrastructure-level components of nearly any website. I think it’s really important for those three things to be done right, because these days, online media is the first point of contact for a lot of people.
Let’s talk about DNS first. The most common analogy I’ve heard for DNS is that it’s like the phonebook of the internet. I guess that’s mostly true, but if you don’t already have a strong grasp of what it is and how it works, you shouldn’t be reading this article. A lot of hosting companies and domain registrars provide free DNS hosting, but I tend to stay away from them and do my own thing.
Nearly every major registrar has had DNS troubles of some kind over the past few years, and that’s understandable. It’s not their core business, it’s not important to them, and it’s not what they do well. Things also get complicated/broken when you start moving to different registrars. Just recently, I moved the majority of my domains from GoDaddy to NameCheap (I couldn’t stand GoDaddy’s low-class advertising or their constant upselling attempts anymore). If I had hosted my DNS with GoDaddy, I would have made a lot of extra work for myself by switching to someone else.
For the same reasons, I don’t let hosting companies handle my DNS, either. I’ve changed hosting companies too many times, and I just don’t feel comfortable giving a single company the “keys to the kingdom”. That’s why I use DNS Made Easy. Their user interface is really awful until you get used to it, and even then, it’s still pretty bad. But they do one thing well, and that’s all that matters: they offer rock-solid DNS hosting at a reasonable price.
Other companies specialize in DNS hosting, so don’t think that DNS Made Easy is the only choice. They just happen to have a very good track record and plans that fit my budget. EveryDNS.net is a free service that does an admirable job, and it was started by David Ulevitch of OpenDNS fame. Unfortunately, EveryDNS has had their own share of issues over the years. I’m mentioning it here because I think it’s the best option for people who aren’t willing to pay for this essential function.
Next on the list is web hosting. Again, I’m not going to explain the differences between shared/dedicated/VPS plans because I assume you already know that. In my earlier years on the web, I was perfectly content with shared hosting. My Linux CLI skills were modest, and I didn’t demand complete control over my server environment (root, baby). In the last 4-5 years, my sysadmin skills have grown and the price of hardware has dropped to the point where I can afford my own box.
The problem is that I don’t need my own box. My blog isn’t exactly on par with Amazon or eBay or Google in terms of traffic. I can get by just fine with a VPS, which is essentially a virtual chunk of a much bigger machine. For what I do, 256 or 512M of memory is more than enough, and I only require a couple gigs of HD space. After searching around for a long time and reading tons of reviews, I decided on Slicehost about a year ago (14 or 15 months ago, actually). They’ve been fantastic.
After 300 days of uptime, I restarted my box because I wanted to, not because I had to. I think that fact alone speaks to Slicehost’s reliability. Sure, I could build out my own server and drop it in a colo facility somewhere, but that’s cost-prohibitive. I’d be looking at about a grand for the initial build-out and then a monthly colo fee on top of that. And if (when) the hardware fails, it’s all on me. Instead, I choose to pay Slicehost $20/month for use of their high-end hardware and connectivity. When a drive dies, they replace it, and it doesn’t cost me a cent.
Recently, I’ve been exploring some other VPS providers that offer more bang for the buck. Linode and Prgmr.com both provide more capacity for the same price (or less). A server move is a big deal and involves a lot of work, so being the lazy sysadmin that I am, I’m not too keen to pack up and move quite yet.
If you’re still with me, I saved the best for last: email. In 2009, email is absolutely critical, so we can’t take any chances here. Everything from job offers to utility bill notifications are sent via email, and even though the underlying protocols are designed to be fault-tolerant to a certain extent, I’d rather not risk it. Imagine what would happen if your home mailbox suddenly disappeared before the mailman could deliver your mail. Get it?
Well, I’ve had a Gmail account since before they were cool, so I was using that for the longest time. Seriously, I had one of the early invites back in May of 2004–now that’s some geek cred right there. At some point, it occurred to me that I was stupid for not taking advantage of my own domain name, which I’ve had since 2002. I knew I didn’t want to run my own mail server because it would take up too much of my time. (You think it’s easy to stay on top of spam filtering, virus filtering, and block lists?) Besides, it would be cheaper and more reliable to outsource it to a company that specializes in mail hosting.
After researching Google Apps and Tuffmail, I decided to go with Google Apps–sort of. I think Gmail has the best web interface around, and it would have been hard to settle for something less. Google Apps comes in both a free version (Standard) and a paid version (Premier). They have similar feature sets, but you get a 99.9% uptime SLA, 25G of storage space, phone support, and the ability to disable ads with Google Apps Premier. The cost is $50/account/year, and with only one account, that translates to $50/year (I was always this good at math, by the way).
Since I had been using and enjoying my free Gmail account for about five years, I figured it was time to pay it forward by signing up for Premier instead of Standard. I was also getting a little nervous after reading horror stories of people being locked out of their Gmail accounts for days at a time, and I reasoned that a paid user with an SLA would have more protection against that kind of thing. For $0.13/day, the peace of mind, extra space, and lack of ads has been well worth it.
Since Tuffmail is equally awesome in a different way, I decided to use them for all of my auxiliary domains. I’ve got their most basic plan that costs $6/quarter, and they too have been well worth the money. Considering that I would have needed a separate email server at $20/month, paying Tuffmail $24/year is a bargain, and that’s not even counting the cost of my time to manage another box (and an email box, at that). You can set up as many domains as you want at Tuffmail and then have unlimited aliases all deliver to a single physical box. Cool.
Because of the way I’ve set up my essential services, I can continue to receive email even if my website is down. And because of Google’s SLA, I should be able to receive email 99.9% of the time. Changing domain name registrars or hosting companies is a breeze thanks to the decoupled nature of everything. Oh, and did I mention that I’m still able to receive email even when that happens?
I hope this article has been helpful, and I intend to write more like it in the future. Feel free to ask questions or spark up a discussion in the comments.
That’s how I roll.