A quick note before I get started. I've been working on a public database for the cloud computing community called the Cloud Portal
. The full url is http://cloudcomputing.qrimp.com
. Anyone can add and edit data, like Wikipedia, except it is a fully relational database, which provides a little more power.
While putting the site together, I came across a panel discussion called Cloud Computing -- What's next?
. Listening to the panel, I was overcome by this vision of the future racing forward faster and faster. Humans are about to be displaced by the technology they are creating. The singularity is inevitable
, but what about the more immediate future?
Cloud Computing is still very new. There are no standards in place. Each vendor is competing for customers and will do what they can to lock them in. But we still want to write once, run anywhere
. Proof: It was only a matter of days until someone ported Google App Engine apps to Amazon EC2
. But the solution isn't perfect. A lot of performance will be lost with the big flat files. Big Table might be great -- but you don't have one
Eventually we are going to have to slow down and think about the problem abstractly. What is an application? What is a grid? How do we solve this problem so we can move forward as a team to solve the problem of information? Imagine if we hadn't standardized electricity. If you travel outside the country, you know what a pain it can be to work with electronics in different environments.
In Cloud Computing, also known as "Utility Computing," the issues are the same, so standardization is inevitable. This community won't stand for anything less. Recently we developed Open Social for social networks. The future of cloud computing is The Open Cloud.
Ask yourself, how are application vendors going to write software to run equally well on a laptop or a giant cloud? The consumer will
want this. Not everyone is comfortable putting their data on someone else's servers. I believe in many cases it is actually safer there, but consumers don't make purchasing decisions rationally
. As a vendor, you can make the choice to write software customized to Google's App Engine or Amazon EC2, but you may find that the market for the product wasn't as big as you imagined when you started. What do you do then?
What happens when computing power in the cloud becomes less of a performance advantage compared to the local machine? This will happen and it isn't far away. Quantum Computing is on the horizon
and 3D CPUs are being commercialized today
. When these components make their way to the desktop, the performance bottleneck will be the network. In this scenario, grid computing becomes much less palatable.
We need a standard to which computing platform vendors can build clouds on which applications can seamlessly transition to the laptop, PDA or cellphone. People don't want to be tethered to the cloud. They want to work off-line. They want to be mobile. They don't want to be locked in to anything. Keep all doors open. If I want to run my application on my own server, that's what I want and increasingly, vendors who enable their customers to have the freedom to do just this will win out.
When asking, Should human-powered search abandon the Long Tail?
, Seth Godin points out that, "Every abundance creates a new scarcity." In this recent rush to Cloud Computing, the scarcity will shift to those software vendors who allow their customers to escape the cloud. The future of cloud computing will create a market for technology that doesn't limit itself to the cloud.
Those vendors will be sought for by a large market.
To have a future, software vendors must be extremely critical of Cloud Vendors with lock in. How much of your code will you have to rewrite if your vendor goes out of business before you do? As Cloud Computing approaches commodity computing, the margins will shrink, the complexities will be resolved, vendors will consolidate and your platform may cease to exist. How quickly can you transition from one provider to another in this scenario?
Do you have a contingency plan? Don't leave your customers stranded.