Slashdot on Thursday referenced a post by Wladawsky Berger about a panel and keynote by leading analysts who were all over the map on cloud computing. Evidently, there are more than 20 attempts at creating a definition for this term, which is already being used widely to define this brave new world we seem to be running towards. This reminds me of client/server in the '80s; everyone knew this was the right direction, even though at the time, the better platforms were client or server, not both.
What Is Cloud Computing
To me, and this appears consistent with Trevor Doerksen's and Kevin Hartig's work referenced in the Slashdot piece, it is hosting where the resources are not location specific and can be shifted dynamically to reduce cost and/or improve performance. In effect, it is hosting using the power of a distributed system to create a more effective, lower-cost solution. Man, who doesn't want that? Better, faster, cheaper -- sign me up!
Problems with Cloud Computing
Complexity of solution comes to mind first. Part of the reason we define resources is to make sure there are enough of them to get the job done. Cloud computing is sharing resources on a massive scale, which means you'd better be able to predict loading or you'll have the equivalence of data brown outs.
The electrical grid is similar in concept to cloud computing. Even though it is decades old, it still has serious problems because there is still no way to assure that demand won't spike in too many places at once. It has to be over engineered and designed with to let it fail elegantly (as opposed to just blow up and shut down). Compared to IT, the electrical grid is actually very simple: a single resource in and out.
For IT, complexity is our middle name. Loading requirements for each system are dramatically different in terms of network, storage, processing power and security. We saw an example of how this can become a problem when Google's cloud computing application platform Apps failed and took all of Google's related customers down with it. For now, in the cloud, the simpler the solution, the better, which is why storage solutions seem to work best right now. Network speed slows down the traffic and, because we've been doing storage management in large enterprises for decades, the tools available to shift and manage resources are relatively mature.
But applications will have unique scaling problems, as Google demonstrated. This is probably one of the main reasons Microsoft created the competing Equipt product as a blended offering with some traditional aspects and some cloud aspects tied to services that had already been tested successfully as cloud services.
The key to success in the cloud will be keeping solutions simple, plus understanding and mitigating the related risks (with the understanding part being the most difficult at the moment). The axiom "prospectors catch the arrows, settlers get the land" applies here and while I too believe cloud computing represents the likely future, it may take a decade for most of the problems to be worked out to a degree where cloud computing can be the reliable service that it promises to be for the wide variety of applications and services that will reside there.