The patient was having erratic symptoms. Sometimes he'd be happily waddling along or warming his egg beneath his feet. Other times, he'd keel over, flapping one wing frantically before losing consciousness for hours at a time, causing great consternation.
Our beloved Opus, an Intel-based Xserve of a couple years' experience, has been acting increasingly oddly over the last few weeks. That's okay (if sad) for a penguin or a person, but not so much for a Web server that handles content and ecommerce, that has thousands of daily users, and from which several of us derive significant parts of our incomes. (We actually operate an older PowerPC-based Xserve as well, but it's no longer used for mission-critical operations.)
These errors had already gotten Adam Engst and me talking about the possibility of unleashing ourselves from owning hardware, but it all came to a head last Monday, with Opus suffering inexplicable slowdowns, freezes, and disk errors. That's bad enough on a Mac you can touch, but Opus was colocated at digital.forest, and while the folks at digital.forest are great, there's a limit to what you can ask support technicians to do for you. For example, in an effort to get the TidBITS issue out, disk errors on the boot disk forced Adam, for the second week in a row, to clone the boot disk to a secondary disk, restart from that secondary disk, and repair the errors on the former boot disk.
While Adam fought to keep Opus alive a bit longer, I started preparations for our expedition - up in the air! Rather, into the cloud: the ambiguously defined notion of locating your resources in servers you can neither see nor touch and that may in fact be entirely virtual collections of resources formed into what looks like a server from the outside.
I've been experimenting with Amazon's Elastic Compute Cloud (EC2) for some time, and I and TidBITS have used Amazon's Simple Storage Service (S3), but EC2 isn't a good fit for us. I've been a Unix and Linux system administrator for over 15 years, but I'm not an IT guy. Amazon's services are well designed for people who understand how to build and use an infrastructure. Using EC2 and Amazon's associated resources is a bit like a builder sourcing every nail, stud, and tile, but then telling someone remotely how to put a house together.
Instead, we opted for Rackspace's Cloud Servers, which offer a similar service designed with someone exactly like me in mind. Rackspace has fewer options, but fewer can be better if just the right ones are included. We opted for a 2 GB virtual server, which comes with 80 GB of storage, 40 Mbps of bandwidth, and 2 CPU cores. The monthly fee is about $88, with an additional per-GB rate for bandwidth ($0.22 for each outbound GB and 8 cents for each inbound GB).
Rackspace uses virtualized servers, just like Amazon, but offers a simplified console, and much less fuss. I had my first disk up in a few minutes, logged in via the command line, and rapidly configured the Linux distribution I'd chosen. You still have to know how to beat a Linux (or Windows) system into the form you want, but it's incredibly easy compared to any previous approach I've used. Within a few hours I had the basics of the system working, and after a few more hours the next day, we were ready to repoint our DNS to the virtual server.
Rackspace's simplified approach has competition too. A Twitter colleague mentioned Slicehost and Linode. Both are cheaper for the same system (they both include bandwidth in monthly fees), but we knew Rackspace and didn't have time to kick tires. And should we need to move again, it seems likely that it would be even easier the next time.
The nice part of the migration is that we've built our operations well enough that we could move from a Mac OS X Server system to a CentOS Linux virtual machine with only a handful of changes in our files. You always hope that planning for future eventualities is worthwhile, and in this case it was.
Obviously, although we've tested our TidBITS and Take Control Web sites and ancillary services, it's entirely possible there's something that isn't working that we've missed. If so, just drop us a note and we'll fix it.