Architectural Service Layers of Cloud Computing

Wednesday, October 21, 2009

Cloud computing can be pretty much anything provided as a service over the network. It can be the ability to rent a single server or thousands of servers and run a large scale distributed application on those servers. It can be the ability to deploy an application with multi-tenancy in a platform without having to worry about the infrastructure needed for the peak usage. It can be the ability to store peta scale of data over the network, while providing restricted access and protection to the data via a service. As I said initially it can pretty much be anything, from Network bandwidth as a service to security as a service.

The use of virtualization in clouds has created a new set of layers: applications, services, and infrastructure. These layers don't just encapsulate on-demand resources as services, they also define a new development model. Within each layer of abstraction there are several business opportunities for defining services that can be provided on a pay-per-use basis.
Software-as-a-service [SaaS]
SaaS is the topmost layer and features a complete application offered as a service, on-demand. A single instance of the application runs in the providers platform and services multiple clients. The most widely known example of SaaS is SalesForce.com. Now we have many other players in this layer including Google.

Platform-as-a-service [PaaS]
The middle layer, or PaaS, is the encapsulation of a development environment abstraction offered as a service. It includes a payload of services. For example, a PaaS might consists of an OS, Web Server and a Database instance bundled bundled with a programming environment provided as a service. PaaS services can be provided for every phase of software development and testing or they can also be specialized around a particular area. Google App Engine is the best example.

Infrastructure-as-a-service [IaaS]
IaaS is the lowest layer and it delivers basic storage and compute capabilities as standardized services over the network. Servers, storage systems, routers, switches and other hardware resources are pooled to provide support for particular type of workload. IaaS allows efficient expansion of resources on-demand and peak workload can be easily handled. Enterprises need not spend money on infrastructures for peak usage. The best known commercial example is Amazon web services.