Thursday, November 24, 2011

Cloud jargon

Having been deeply involved in the cloud revolution, I thought it would be good to actually take a step back and unpick some of the cloud computing jargon I've heard over the last twelve months. What does it all actually mean?

I like to keep things simple, so let me try to simplify the tangle of definitions currently floating out there.


Iaas, Paas, Saas


Well, here's a confusing one to begin with! Why Iaas over Paas? Why Saas over Iaas? Do we all understand the difference? Maybe, maybe not. Here's my interpretation, for what it's worth.

IaaS is 'Infrastructure as a Service'. It means service providers provide an infrastructure to you, the customer, as an ongoing service and not as a one-off hardware purchase. OPEX versus CAPEX for you accountants out there. That infrastructure includes data storage, CPU, memory and networking. However, what a self-service cloud lmeans is that this is all available through a user interface where the customer has instant access to provision and configure the infrastructure instantly.

PaaS is 'Platform as a Service'. This is similar but not quite the same as IaaS as it is still about providing a virtual cloud computing infrastructure. PaaS differs by having a software layer on top of the IaaS as an intermediary between the customer and the infrastructure itself. Therefore, although the software may make some tasks easier, it may lack the flexibility that comes with direct access.

SaaS is 'Software as a Service'. This is a further step above Iaas and PaaS where you use software that happens to be powered by the cloud and is accessible online. Salesforce is a great example of SaaS.



Public, Private and Hybrid clouds


Public cloud computing is where you run a virtual infrastructure entirely through an external cloud provider. This would be a typical scenario for startups or people who have fully migrated their data centres into the cloud.

Private cloud is where a cloud computing environment is run internally on your own hardware infrastructure. This can often be as simply as running KVM, VMware or Citrix Xenserver to configure your infrastructure to offer cloud flexibility to your internal IT department.

A hybrid cloud leverages both private and public cloud.

As customer accounts are kept entirely separate and all virtual resources are dedicated (ie; are not impacted by the activities of other users), there is often very little benefit to a private cloud but plenty of additional hardware expense. We might call it public cloud computing, but it's still virtually (pun intended) as private as your traditional server infrastructure.
 

Online Storage versus Compute Storage


Online and compute storage are two very different service offerings. Compute (your virtual servers) obviously needs storage to run the operating system and is bundled as part of the offering. However what happens when you want to just use offsite storage - to backup or archive your files, for example - without the expense of running virtual servers to access the necessary storage? Would you buy a new computer just because you needed more hard drive space?

True public cloud storage can be used completely independently of compute and costs a lot less as a result. By connecting either your public, private or hybrid cloud to online cloud storage, you can simply extend your local storage setup to a safe and secure offsite location. With an API, you can also do lots of cool things with it, such as storing all your website assets (images, video, etc) in cloud storage instead of driving more expensive compute server requests every time someone visits one of your web pages.
Horizontal and vertical cloud compute

This really can be simplified as the difference between the number of cloud servers you're running compared to how powerful these servers are. If you have ten web servers and you need to accommodate a period of heavy traffic, then you may want to add another ten servers to your server farm to deal with this increased demand. This is horizontal scaling. However, if you decide to scale the size - and therefore the memory and CPU of those servers - from 2GB to 4GB, then this is vertical scaling. Most providers enables you to do both. Of course, you can also scale down the resources you use once demand dies down. You could shutdown the ten VMs and keep them on standby or decease the vCPUs and memory on each server. This can be done via our API or using our UI interface.


Cloud bursting


Cloud bursting is a term often thrown around that I particularly like. This is really the gem in the crown for cloud computing in my opinion.

Remember you only pay for what you use. Imagine this: it's nearly Christmas and you sell customised Christmas cards. Your busy period is unlikey to be January, but December is likely to be a mad rush. You need compute resources to deal with increased customer demand in the weeks up to Christmas but for the other ten months of the year you won't need anywhere nearly the same level of resources. A more efficient way is to burst into the cloud. Cloud bursting enables you to spin up, manually or automatically, cloud compute resources to cover your busy period and then once this period is over simply power down or completely remove the compute instances.

You can spin up on demand and only be charged for the period you ran the servers. It can be as little as an hour or as much as a year.
 

Cloud Compute versus VPS


VPS stands for virtual private server. A VPS runs on compute hardware with allocated resources, shared or explicit. Sometimes a VPS server can run on one dedicated physical server. It can be configured with high availability but doesn't always allow you to easily manage your compute resources. So VPS is similar to cloud computing, but not as scalable or flexible.

Cloud compute gathers a large number of resources, compute, network, storage etc and presents this to the end user so they can leverage the entire service to scale and provision quickly using either a user interface or an API. Cloud compute runs on large and powerful clusters, configured with redundancy and high availability as standard, enabling virtualisation of compute assets on demand over the internet.
 

Cloud storming


This is similar to cloud bursting, but is really for the dedicated cloud user or cloud junkie. Cloud storming is when you leverage a number of different cloud service offerings for your own compute environment.

Why would one do this? Benefits such as redundancy, reduced latency in different geographical locations, or to be in a relevant operating time zone.

These are just some of the most common terms and I'm sure some of you may disagree on my definitions. Let me know what bits of cloud jargon I've missed or offer your alternative definitions in the comments below.