Monday, January 11, 2010

A Brief Guide To Cloud Computing

Cloud computing is the latest technology trend to lack an agreed definition and as usual this is causing much confusion. This is the first in a series of blogs where I explore cloud computing. This first post addresses the question of what it is.

What is the Cloud?
In my experience when people talk about cloud computing they can be talking about anything from hotmail to Microsoft Azure to storage in the cloud. In this post I attempt to bring a degree to clarity to the definition.

I think that the best way to describe a definitionless concept such as the cloud is to think of its characteristics.
With this in mind, the essential characteristics of the cloud are:


  1. It is multi-tenant. By this I mean that multiple companies and organisations share the cloud and its capabilities. No one organisation 'owns' a piece of cloud infrastructure or software.



  2. It is highly abstracted. Users of the cloud do not know or need to know any of the details of how (or even which and what) piece of the physical cloud (e.g. server) they are using.



  3. You pay as you go. Access to cloud services is paid for on a pay as you go basis. Upfront capital costs do not feature.



  4. It is flexible and immediately scalable. Cloud services can be scaled up or down at the users discretion and without the need to provide advance notice or incur penalties.
So what is Cloud Computing?

I think the best way to look at computing in cloud is based on a model that divides cloud 'services' into three categories - Infrasturcture As a Service (IAAS), Software As A Service and Platform As a Service (Saas).


Infrastructure As A Service

This category is easily understood as in essence it involves renting and accessing CPU, storage and certain infrastructure related software (e.g. databases) from and through an internet based third party rather than having them located in your data center. The advantage is that IT departments are freed from many of the basic administration functions of these components and costs are contained as in general IaaS costs become operational rather than capital based. Additionally, capacity can be easily scaled up and down as daily, year end or seasonal demands dictate while containing the costs in involved in doing so.
Examples include: RightScale, Amazon, Go Grid, SkyTap.

Software As A Service

Saas is probably the category that is best understood because of the success of salesforce.com. Nevertheless even a cursory google search reveals a broad and every growing set of cloud based offerings in a range of areas including CRM, enterprise content management, billing, business process management and security to name but a few.

One of the great advantages of SaaS is speed to deployment. SaaS solutions can be up and running very quickly at a low cost and at low risk - doing a SaaS based proof of concept is very cost effective as, depending on the project, there are no capital software or hardware costs involved.
Examples include: SalesForce.com, SugarCRM, OpenText, GoogleApps

Platform As A Service

This is probably the hardest category to understand and is probably the least developed. Platform As A Service offerings such as Microsoft Azure and GoogleApps are essentially web application software development platforms in the cloud. Rather than having the development environment and tools in house they are instead hosted in the cloud. Essentially, using these platforms, developers 'program in the cloud'. In order to do this PaaS offerings provide all the features necessary to support the complete lifecycle of building and delivering web applications and services.

I hope this provides a degree of clarity to what cloud computing is. In my next post related to cloud computing I will look at the drivers and inhibitors of cloud computing which should help in bringing more clarity to the topic.

No comments:

Post a Comment