Cloud computing is a broad term that describes a range of services provided by businesses that have seized the term “cloud” by many vendors. The cloud stack is a range of services across three main areas of operation that comprises infrastructure, platforms and software delivered via the internet. So many conversations recently have leveled thinking about cloud services as simply infrastructure and I have seen some of smartest people I know in the tech industry refer to cloud as just that and nothing more as if it was merely a purchase to be made.
There are essentially three main areas of cloud computing that are gaining the most focus on enterprises, and these are: Infrastructure as a Services (IaaS), Platform as a service (PaaS) and Software as a Service (SaaS). The vendors in each space have a very different set of offerings, although they do start to cross over into the other services. It is crucial that an understanding of each is achieved in order to make the right decisions.
The National Institute of Standards and Technology defines cloud computing as a model for enabling convenient, on-demand network access to a shared pool of computing resources (networks, storage, applications and services) that can be rapidly deployed with minimal management and effort. These services include:
- On demand self-service, for a user to sign up without long delays;
- Broad network access to services via standard platforms (desktop, laptop and mobile);
- Resource pooling across multiple customers;
- Rapid elasticity to scale and cope with demand peaks;
- Measured services that are metered, billed and delivered as a utility service.
Initially, vendors provided services across specific platforms, however this has changed over the last few years and have commenced offering services on two or all three.
Software as a Service (SaaS)
A provider of SaaS products will deploy access to the software via the internet and charge a licence to customers for access to that application through a subscription in a pay-as-you-go model. This is one of the fastest growing segments of the cloud market with more organisations offering services each year. Some of the defining characteristics of SaaS include:
- Web access to commercial software;
- Software is managed from a central location;
- Software is delivered in a one-to-many model;
- Users are not required to handle software upgrades and patches; and
- Application Programming Interfaces (API’s) allow for easy integration between different pieces of software.
Platform as a Service (PaaS)
The PaaS model brings the benefits that SaaS brought for applications in to the software development world. PaaS is a computing platform that allows the creation of web based applications quickly and easily and without the complexity of buying and maintaining the software and infrastructure underneath it. The concept is analogous to SaaS except that, rather than the software being delivered over the web, it is a platform for the creation of software delivered over the web. PaaS has a number of characteristics which include:
- Services to develop, test, deploy, host and maintain applications in the same integrated development environment. All the varying services need to fulfil the application development process;
- Web based user interface tools to create, modify, test and deploy different UI scenarios;
- Multi-tennanted architecture where concurrent users utilise the same development application;
- Built in scalability of deployed software including load balancing and failover;
- Integration with web services and databases via common standards
- Support for development team collaboration – Some PaaS solutions include project planning and communication tools;
- Tools to handle billing and subscription management; and
- Recently, more PaaS providers have opened marketplaces to take advantage of pre-developed software that can either be customised, enhanced and deployed, or is ready to be deployed. Examples of this include the Amazon Web Services marketplace, SalesForce marketplace and IBM BlueMix.
Infrastructure as a Service (IaaS)
IaaS is a way of delivering cloud computing infrastructure – servers, storage, network and operating systems as an on demand service. Rather than purchasing servers, operating software, datacentre space or network equipment clients can purchase these resources as a fully outsourced service. IaaS can be obtained as a public (shared resources deployed on a self-service basis via the internet) or private cloud (emulates ‘cloud-like’ features on a private network). A hybrid cloud combines traditional dedicated hosting alongside a public and/or private cloud. IaaS usually includes the following characteristics:
- Resources are distributed as a service;
- Allows for dynamic scaling;
- Has a variable cost, utility pricing model; and
- Generally, includes multiple users on a single piece of hardware.