"The Cloud" is the latest advertising and development craze. There are plenty of useful things going on from distributed and virtualized computing to sharing tweets on Twitter and photos on Facebook. Some of the advertising claims are outrageous but overall the functionality of "the cloud" is amazing.
Unfortunately it turns the blue screen of death into a massive headache for all involved. My latest annoyance is with Sony's Playstation 3 that I have and the Playstation Network (PSN) that is down. I was going to look for some 3D games but that is not going to happen right now. Guess I will have to go to a brick-and-mortar shop.
Luckily not all of the applications running on the system are dead in the water. I can still play Borderlands, locally least, but not with friends. I think Netflix is still working so I don't have to resort to DVDs. Still, more systems are moving to online authorization even to play a game locally. Guess where that would put me with PSN down.
In case you think this is just fun and games, consider the recent failures of Amazon's Elastic Compute Cloud. It was definitely not much fun for their customers or their customer's customers. Having large enough audience and pockets would allow multiple virtual web servers but that does not matter if the entire block of underlying servers dies. That was the case for many customers that had little recourse other than to wait for things to return to normal.
This is not picking on Amazon. They are not the only ones in this boat. Any large server farm is susceptible to this problem even if there is massive redundancy provided. In theory, migrating virtual machines and having hot spares can eliminate the loss of some compute or storage facilities and, in practice, it usually works. The problem is when it doesn't. The dependency on the cloud or a particular vendor by a large number of customers runs the risk of massive failures.
The problem is not restricted to accidental faiures. In many cases, it may be on purpose although not necessarily at the request of those running an application or service. Take the SoundExchange and SWCast.net issue as an example. SWCast.net services hundreds of Internet radio stations. It was shut down by SoundExchange that claimed royalty payment fees were past due. The lawyers are having a field day. Everyone else is having a rather quiet one.
I won't even go into the area of companies that provide storage or services and then get sold, go belly up or have other issues that cause their customer's data to remain in a virtual neverland. Just ask those that purchased online music or saved files in online backup services.
So this is a typical rant but it is also one that developers need to take into account. Providing embedded devices that work with "the cloud" is good but remember that the network and the services may not always work as designed for a variety of reason like those just mentioned. Graceful degradation is something that can be designed in. I would talk about open source now but this entry is getting a bit long. I'll leave it as this. Use the cloud but be careful. It is a two edged sword.