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.