Tuesday, August 27, 2013

Cloud Computing: some definitions

Cloud computing is a marketing rather than technical term. It refers to a way of delivering IT services, publicly or privately. To understand what's on offer take a look at the state-of-the-art technology stack in a modern data centre (diagram below). Starting from the bottom a provider can package layers, presenting a service and management interface to users. This is the cloud in operation.

IT Departments are interested in in flexible (virtual) servers (i.e. machines). The IT Department provides the operating system and all points north while the cloud provider supplies IaaS - Infrastructure as a Service: a virtualization layer (virtual machines, virtual networking, virtual storage) to host them.

Higher up the stack, application developers need their application development environment and other tools to be provided so that they can use existing applications and develop new ones: delivered from the cloud this is called Platform as a Service, PaaS.

At the highest level, users who are not in the IT development business need hosted applications which they can populate with their own data (e-commerce, CRM, billing, payroll, etc): this is called Software as a Service, SaaS.

Naturally to make this work requires that the cloud provider has automated the provisioning, configuration, operation and billing of these layers and has packaged functionality into a self-service portal for users. Many customers deploy a 'hybrid cloud' concept, where they use both their own data centres and rent services from a cloud provider, perhaps for extra capacity on demand.

The diagrams below illustrate the concepts.

The basic cloud technology stack

IaaS - Infrastructure as a Service (IT Depts)

PaaS - Platform as a Service (Developers)

SaaS - Software as a Service (end-users)

Cisco naturally has a soup-to-nuts cloud operating system; there is an open-source alternative: OpenStack.