One of the most common analogies used to describe the forces behind cloud computing is the rise of electric utilities at the turn of the century. The analogy is useful, but the cloud will evolve in some critically different ways.
Nick Carr's classic vision of cloud computing, The Big Switch, spent a lot of time exploring the evolution of the electric utilities in the early part of the 20th century. That history is a powerful one, and one that shows the true value that can be derived from centralized generation and distribution of a critical commodity.
However, some have taken electricity as an analogy to cloud adoption to an extreme, and declared that there will be a massive and sudden shift from corporate data centers to entirely external cloud computing environments--public cloud utilities, if you will. They are wrong, and the reason why they are wrong can be captured in a single simple statement.
Data is not electricity.
Here is the fundamental difference between data and electricity: With electricity, I don't care what electrons pushed the electrons that ultimately come out of the socket. I also don't care that if I were to generate power and supply it to the grid (through, say, solar panels on my home) who might take that electricity and store it in a battery someplace. An amp is an amp is an amp.
With the cloud, however, I care about exactly which bits come out of my ethernet port. Furthermore, if I generate data and put it out on the Internet, I care exactly where and how my data is stored, and who can have access to it. The Internet is not a shared information grid, its a shared network for transmitting information from one specific point to another. There is a difference.
While the physical infrastructure we use to deliver information technology might be getting commoditized, the information itself isn't.
Thus, "trust" becomes the biggest problem to be solved in cloud computing. The value of the external cloud is worthless if it can't be trusted. The speed and agility provided to developers and operators alike just can't be leveraged if cloud systems can't be secured and audited, the data stored in a way in which the accountable parties can control what happens to it, and the laws of the land protect the cloud vendor, cloud customers, and (perhaps most importantly) the privacy and safety of all of us.
And there's the rub. What we have right now is a multifaceted problem: until there is some way of consuming the cloud with verifiable security, control, service levels and compliance, much of the most valuable data in business today will not move to external clouds. It just won't.
Don't get me wrong, I truly believe that there will be some amazing parallels between the evolution of IT and the move from mechanical systems to on-site generators to centralized utilities that forms the history of electric utilities.
Over time, I do actually believe that much of enterprise computing will find its way out of corporate data centers, and into the cloud. However, I also believe that such migration will take place over several decades, and that there are tremendous hurdles yet to be overcome to get us there.
The technical hurdles are the easiest to target, though the solutions will likely be quite difficult to implement. For example, check out the cloud security API proposal known tentatively as A6. (Also check out the excellent exploration of a REST implementation of A6 on the Ironfog blog.)
However, even with something like A6, the laws of the United States and the European Union do not provide the same protections for external cloud storage that they do for data stored in house. That alone may be the single biggest difference between electricity and data.
While electricity can power commerce, data can power politics.
That alone will encourage enterprises to keep a lot of data close to home, and out of the public cloud utilities.