Wednesday 2 May 2012

The Cloud Computing Layer Cake – Is it really so easy?

The current media attention in cloud computing and wave after wave of product announcements from technology vendors has generated a lot of interest from organisations in how they can implement their own private cloud.

I was listening to the CTO of a software vendor describe his company’s product offerings and how the virtualisation capabilities these can bring to any organisation will help them implement a private cloud. The description of products was very interesting but I heard again from this CTO what I hear so often from technologists, “It’s just about buying the right technology and WE have the right technology”.

I found myself listening to this CTO and trying to imagine how some organisations would actually go about implementing a private cloud using the products from this organisation. I must admit that for some organisations that I have worked with in the past, I found it difficult to picture them with a private cloud deployed and delivering value to their business.

The reason I was having difficulty in visualising the end result was not due to a lack of available technology from the market, instead it was due to the often missing layers of infrastructure maturity that I know must exists in order to enable the higher order characteristics of cloud computing.

Without having a mature infrastructure baseline, embarking on a private cloud will result in a patchwork of hit and miss cloud-like capabilities that probably won’t deliver the expecting benefits and either become yet another endless IT project or fall away by the side after all of the initial hype has gone.

The Cloud Computing Layer Cake – What must you be able to do?

So what are the generally accepted characteristics of cloud computing, What must a private cloud be able to do?

I will summarise them here:

1. On-demand self service
Users of cloud services can request and get access to the applications they want when they want with little or no provider intervention

2. Ubiquitous network access
Users of cloud services should be able to exploit internet technologies to securely gain access to their applications and data wherever they are regardless of geography

3. Metered use
Users of cloud services should be able to consume services knowing that they will only be charged for services and resources they have actually used

4. Elasticity
The ability to anticipate, manage, measure and increase or decrease the responsiveness of an application based on the real time usage demands placed on an infrastructure using shared or pooled computing resources.

5. Resource pooling
By their very nature, cloud computing environments should be based on shared environments that allow resources to be securely pooled in transparent way that allow elasticity and resource efficiency
You cannot think of private cloud computing just in terms of these higher order characteristics, you need to consider the deployment models, these ways of consuming cloud services are referred to as Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and Software as a Service (SaaS).