With all this talk about Amazon Turks, I wanted to push another idea out there which I think is just as important : EC2 and S3.
EC2 stands for the "Elastic Computing Cloud", which is Amazon's rent-a-server service. Need a server for an hour? Rent it for an hour. You package your standard web-like program in their image, upload it, and off you go. Need a thousand servers right now? Go get them. Not now? Get rid of them. I remember a few years ago I worked on this application for a "get out the vote" effort in Utah, where we had crazy traffic, but only for a few days.
S3 is the same sort of deal for storage. Need storage, go get it. It's fairly inexpensive too. This is a pretty interesting thing for a different reason: cash flow. As a service provider, you don't need to scale your resources until you scale your business. From a technical standpoint, nothing changes. All good.
Does the name Erlang ring a bell? If you happen to be a telephone engineer, it should. Mr. Erlang figured out how many telephone lines you needed to handle the traffic from a set of subscribers. For instance, everyone doesn't pick up the phone at the same time in a town and talk at once. On average, maybe one in a hundred people are using the phone at any one time. To be safe, telephone switches are typically setup to handle ten times that amount, just in case everyone decides to let their fingers to the walking. In Israel, they call it a "Scud Event". When a Scud missile flies across the country, all the grandmothers call to make sure everyone's OK. So, you actually have about ten times more hardware than what you would typically use, just in case somebody decides to start a war, or the equivalent.
How does this apply? Well, consider EC2. If you could deploy servers "on demand", then you could ramp up capacity when you needed it. You might think that it takes longer than a few seconds to deploy a server, and it does need a little more time than that, but peak usage actually grows rather slowly on the phone system, as the growth comes not only from new calls, but longer ones. The impact? One tenth the amount of hardware? Not bad.
Doesn't stop there. A big thing in telephony is resilience, which typically means redundant hardware. (Note to self : this is the wrong time to get on a soap box about how idiotic it is that telephony guys are always fighting a fragile network through making each element stronger instead of making the system stronger. They never watched that Borg episode in Star Trek, apparently.) If you could ramp up other servers, you could radically increase reliability at a lower cost. In this, don't let your head stop at failure of hardware, keep it moving to think about distributed denial of service attacks, or military applications. For this, EC2 and S3 shines.