For the last two years, cloud computing has been increasing in media presence and vendor push. Each of the major vendors in the emerging cloud space has a specific message about what cloud computing is, and what it means to you.
Whether due to cloud computing still being new, or whether it is deliberate on the part of the companies pushing it, cloud computing itself is still very loosely defined, and I’m not going to try define it here. However, the main basis of cloud computing is paying a recurring fee for a utility computing service.
To those in the infrastructure space, cloud computing seems to be the step after virtualization – once you have virtualized your servers (to an “internal cloud”), move them to or federate with an external cloud for extra capacity. This philosophy has been mostly generated by VMware’s vSphere marketing.
But the real benefits of cloud computing aren’t achieved with moving your existing applications (or VMs) offsite. Let me say that in a different way – virtualization is not cloud computing, and cloud computing is not virtualization.
Your existing applications won’t scale well – they’re limited by their architecture. They’re intertwined with the operating systems they run on. They often won’t scale horizontally, either – many being limited to a single operating system instance for each tier. For many of them, the user interface and the way they access their data can mean that you need very high bandwidth, LAN-type latency links to your cloud provider for these applications to perform.
The true benefit of cloud computing is when the application is designed for the cloud. This is a fundamental shift in the way that we use applications. A cloud-based application generally doesn’t require software installation, you don’t need to think about server management, and is usually decoupled from the operating system on both the server-side and the client-side due to a web-based delivery (There are exceptions, of course). They can be available offline with frameworks like Adobe Air and Google Gears. They scale horizontally exceptionally well due to a stateless front-end application architecture (web servers and browsers), and a backend that can be partitioned into different databases. Another benefit of cloud applications is that the enterprise doesn’t have to worry about application installation management – it’s all on the cloud side.
Cloud computing is here today, and you’re using it. Google.com is the archetypal cloud. Gmail, Facebook, Twitter are all cloud applications. Cloud computing is about bringing the scalability and resilience of the web’s best to your business application.
For those in the infrastructure space that were mystified when they did it – this is why VMware purchased SpringSource. SpringSource is an application development framework to build cloud apps. The next platform battle will be between the cloud frameworks – not the operating system or hypervisor. Virtualization will play a huge role, but on the back end.
Right now, the main contenders for application service cloud frameworks are: VMware/SpringSource, Microsoft Azure, (Sales)Force.com and Google App Engine. A minor contender is Heroku – a cloud service for the excellent Ruby on Rails framework. All of them are worth checking out.
My LinkedIn Profile
My Twitter Profile