Archive for the ‘web services’ Category

reliability in an unpredictable world

Tuesday, May 15th, 2007

Much is written about reliability for computing services, web services in particular. “Five nines” uptime became a popular catchphrase a few years back (referring to 99.999% uptime, which turns out to be about 5.2 minutes downtime per year).

Reliability is obviously a good thing; you want your website to be up whenever your customers might need it. However this often leads people to spend way more time, energy, and money focusing on building out a large infrastructure (and excess capacity to handle peak load) than is really necessary or useful, and can in fact have a negative effect on your reliability if you’re centralizing too much.

Assuming you have the same amount of resources (human, financial, etc.) to spend on a centralized location with a small number of large servers, or on several locations with a large number of small servers, I’d almost always go for the latter. Also, having redundant machines and a way to remotely restart and diagnose your equipment should be a given; it doesn’t matter where in the world your servers physically reside.

(more…)

pay-as-you-go hosting

Sunday, May 13th, 2007

Entry-level web hosts like AnyHosting tend to have fairly simple price structures designed to fit within their upstream provider’s price structure. Typically, there is a buffer such that the virtual hosting customer or the provider can go over limit temporarily, although some fees may be incurred (especially in the case of bandwidth charges, usually measured at the 95th percentile to allow for this kind of thing).

Provisioning more storage space or bandwidth for a particular customer is generally a manual process, and makes the pricing structure more complicated, so many providers tend to avoid it if possible.

But what if you could access (virtually) unlimited storage on-the-fly, or boot up a few more (or a few hundred more) servers to handle an unusually high load?

Amazon has launched a few services (under their Amazon Web Services moniker) that do just this – Simple Storage Service (S3) and the Elastic Compute Cloud (EC2). Both seem to use fairly straightforward web service APIs (EC2 looks like it supports SOAP and also simple HTTP queries).

S3 gives you (virtually) unlimited online storage, and EC2 lets you create a Linux disk image and boot up a (virtually) unlimited number of virtual servers.

EC2 is still in beta, and I haven’t my own account to start playing with it yet, but I have checked out the storage piece (S3). You can read/write files using the web services APIs that Amazon provides, and also link users directly to the files.

It looks like you can tie this all together with Amazon’s Simple Queue Service (SQS), the idea being that you could put the computing jobs you need done into a queue, which would send messages to your EC2 virtual servers, which could then read and write into S3. There’s a good illustration in this tutorial on doing mass video conversion using AWS:

The cost of all of these services is all per unit used (storage, CPU, messages sent, etc) as well as data transfered. These are all currently in the range of 0.10 to 0.20 cents, so if you have a good idea of your projected usage (or have infrequent need of large amounts of resources) it could be a really good deal.

This has been out for a while, and there are a ton of reviews and opinions out there, so I am going to hold off on saying much more until I’ve had a chance to try it for myself. That said, I am very much looking forward to this kind of service taking hold; it has the potential to shake up the industry and bring the cost way down on the website lifecycle idea that I’ve written about before.

(EDIT – “seem use” -> “seem to use”)