A few notes about my infrastructure
February 20th, 2008
As part of starting my own business I've decided it's about time I get some essentials done right - namely backups, uptime monitoring, DNS hosting and email hosting. I'll also detail some of the other software and hardware I use. Nothing ground-breaking - but some of these services may be new and/or useful to my readers (24 now!!!).
UPDATE: Many Ayromlou wrote a blog post about setting Google Apps up with easyDNS, which is exactly what I've done.
Backups
I tackled this first. Since I'm running OS X Leopard, Time Machine is the obvious place to start. I bought myself a Lacie Quadra d2 500GB drive for £99, which is not bad seeing as a bare metal 500GB SATA drive will set you back about £75, and doesn't come with a FireWire 800 port on the back, or a funky flashing blue light on the front.
I'm actually a little disappointed with Time Machine. Clearly they pulled the encrypted backup feature but Leopard went gold - which means your backup hard drive is a portable history of your entire life and/or business just waiting to go walkies. And with no network backup features, you've got no protection against fire, earthquakes or particularly aggressive coffee spills.
I solved this with an online backup service. I considered Mozy, but settled on Jungle Disk. Jungle Disk seems more committed to openness: their desktop client is truly cross-platform (Win/Mac/Linux are all equal) and they provide sample source for decrypting data in the event they go under. (Having said that, the client is dog ugly, but hey, nothing's perfect.) Also, strictly speaking, Jungle Disk is really a network share - the backup is an extra feature you get from the client software. So it may turn out useful for document sharing.
DNS
For outgoing DNS I don't use my ISP's servers - I use OpenDNS. According to their own stats, they have 3 million users and serve 3 billion(!) DNS requests a day. They don't offer DNS hosting, but when I contacted them they recommended the Canadian company EasyDNS, who I now use for patchspace.co.uk, my company's domain (this domain to follow, when I get round to it). EasyDNS is the sort of company the internet needs - their customer service is prompt and helpful, they are actively improving the security of their services, and offer some useful freebies (eg myprivacy.ca to help stop WHOIS email harvesting). They also have a bearable web interface - anyone who has used 123-reg.co.uk will know what I mean.
EasyDNS let you edit TXT records on each domain, so you can configure Sender Policy Framework to help cut down on spam forged from your domains. SPF is something I only discovered recently, and I'm in the process of applying it to all my domains.
For all accounts @patchspace.co.uk I'm using Gmail as part of Google Apps. I avoided Gmail for ages because I hate web interfaces for things I consider desktop apps, but since they rolled out IMAP access I'm hooked. You can point your DNS MX records to the Google servers - and configure SPF of course - and send and receive everything from your desktop under your own domain. I use Apple's Mail.app, which takes a bit of configuration to map the sent/received/drafts etc, but afterwards integrates perfectly. (POP access is supported directly, so hopefully Mail in OS X 10.6 will support Gmail IMAP natively too). Gmail maps label to IMAP folders, and it respects slashes, so the label "Shops/Amazon/Marketplace" produces a nesting three levels deep.
Uptime monitoring
I looked at a few (I can't remember which others now) but eventually I settled on Pingdom, a Swedish startup. For $9.95 a month, the basic package lets you watch 5 sites/servers, with email and text message notifications. The web interface is a dream to use, and works exactly how you want it to. You can configure HTTP and HTTPS requests to check for text strings, handy in case your server is there but actually showing a proxy error. They have monitoring servers round the world, and let you check as often as every minute.
This server
This server is actually a desktop machine, running FreeBSD. It cost about £200, and for that I got a dual-core AMD64 processor, 1GB RAM, and two 80GB SATA drives, which are configured as RAID-1 using gmirror. When FreeBSD 7 is released I'd be interested in using gjournal, as the lack of a journalled filesystem in FreeBSD is frustrating. I'm not yet sure how to configure it alongside gmirror, although the intention of GEOM was to make the modules pluggable, so some combination should work.
Software wise, the web sites are hosted in or through Apache httpd (this blog uses mongrel through mod_proxy). I chose Apache partly by default, even though nginx is pretty trendy right now. Apache can do pretty much everything, and I've never had it crash on me (except, that is, when I was meddling at the time...).
The rest
The only weak spot in my setup is the really crappy SafeCom router that used to crash on me on a weekly basis. It's been well behaved lately, so I won't rock the boat...
I was actually surprised how much I ended up using hosted services. There are some pretty good deals out, and they are really dropping the cost of setting up an IT infrastructure. Obviously I've only gone through a few solutions here, mainly the critical ones that maintain your minimum bare minimum functioning state (working off a borrowed laptop in an internet café).
Certainly, out of all the barriers to forming a Web 2 startup or other IT setup, the cost of the supporting technology is pretty much a non-issue these days.

February 25th, 2008 at 01:52 PM
Do you have any links or tips regarding how you've got your mail setup with Gmail?
March 8th, 2008 at 11:23 AM
Hi David
Basically I am using Google Apps. I've set MX records to point to Google's servers, so my email is sent directly there. I'm not sure if it's possible to do this with a standalone Gmail account - I looked, but I could only see a way to use another domain if you fetched mail for that domain via POP.
I'm still in the process of organising my mail - Gmail rules can only be created through the web interface which is a bit awkward.
Ash