My good friend from college recently asked me about my opinion on cloud computing. I replied earlier today, but also wanted to share it with a larger audience. Comments are welcome.
Honestly, I'm no expert in "cloud computing", so whatever I say, take it with a grain of salt. I don't think cloud computing is ready for prime time, and won't be in the near future, at least for home users.
Of course, certain aspects of cloud computing, such as availability of data on any device and at any time are becoming more and more prevalent with the advent of web-based applications such as Google Docs or Office Live. As I understand it, the main purpose of "cloud computing" is to allow a person to be connected with his or her social network and data anywhere and at any time. Gone are the days when you had to have access to your home computer to edit a file. Cloud computing is trying to give onus to the user - rather than the machine - such that the task that the user wants to perform is the thing in focus, not the tool that he uses to accomplish it. I believe "cloud computing", for the home user, is a means to an end - "pervasive computing".
Last year, I believe, more people in Japan accessed the internet on their phones than they did using traditional means such as desktops or laptops. To allow for such pervasive computing (phones, microwaves, washing machine?), there needs to be some way to synchronize the data between such devices - and what better way to use the already existing network called the internet?
Enterprises are another story. Their motivation to move to cloud computing has more to do with the fact that IT budgets are the first that get cut when the economy goes down. Each IT department duplicates the work required to provide 100% availability, redundancy, other measures that make an office run. There is no reason why all this can't be abstracted from a small business, or even a large enterprise, as long as certain guarantees can be made. It's the latter reason why everyone has not moved to "cloud computing" yet. Also, the basic infrastructure required to make cloud computing feasible in all scenarios is just not there. Think of the bandwidth, and the effects of large events (NFL, 9/11 etc.) on the internet. Such interruptions would not be acceptable to businesses.
Another aspect of cloud computing that allows for a heated debate is privacy. How much do you trust your provider? Who owns the data? Who has the right to confiscate it or audit it? Who is responsible in case of a breach? These questions need to be answered. Currently, I don't believe any of the cloud computing providers take any responsibility for any of these problems. That's a risk businesses and individuals needs to evaluate before making the jump. There's this notion of "acceptable risk" that gets set once a market matures. This just hasn't happened for cloud computing.
Lastly, as I mentioned in my tweets, I believe the future of cloud computing depends on the standardization of data exchange format between "clouds" as well as the standardization of interfaces through which a client can interact with the cloud. For example, there needs to be a standardized way to describe an application, instantiate it, move data between clouds or geographical regions, identify an instance of a virtual machine in the cloud, control it etc. I don't know if that is going to happen from the get-go, or if providers are going to go on their proprietary ways only to later realize that they need to work together.
Anyway, enough of my rambling :) . This is certainly an interesting space to watch in the next few years. I know Microsoft is working hard to enable certain scenarios in the cloud that a few years ago would have seemed preposterous. I am interested to see what others come up with.