There are basically three service models for a cloud computing system, namely, Infrastructure-as-a-Service, Platform-as-a-Service and Software-as-a-Service. The service models can be viewed as mapped layers as represented in the figure below.
Infrastructure-as-a-Service (IaaS) is a service-oriented and secure enterprise-level computing infrastructure that includes the computing resources and the storage, which can be efficiently scaled and managed to assist organizations in meeting their different business objectives.
Technically, it follows the concept of the virtual private server. The computing resources (include the CPU hours, bandwidth, storage space, and so on) and infrastructure (data transfers, virtual servers, storage, computing, content distribution networks, and so on) are metered based on a pay-as-you-go utility pricing model.
Virtual server instances having unique internet protocol addresses and storage block are also similarly offered on demand. The unique flexibility of IaaS allows subscribers to use application program interface (API) of service providers to initiate, stop, access, adjust and set up storage and virtual servers as required.
Some examples of IaaS include Eucalyptus, Nimbus, Amazon EC2, S3 and Rackspace. It is important to note that IaaS can be public, private and hybrid.
The advantage of IaaS are reliability , almost limitless computing power and storage, cost reduction, business agility, scalability, and privacy.
Public, private and hybrid IaaS
In a public IaaS, shared resources and accessed by the customers via a simple sign-up mechanism and managed by a service provider.
In a private IaaS, a secure and on-demand access to resources of an organization is provided by the service provider to the consumer(s).
Hybrid IaaS combines the functionalities and characteristics of both the public and the private IaaS. Both internal and external service providers are responsible for maintaining the cloud computing resource and infrastructure as the case may be.
The characteristics of IaaS are as follows:
- Resources are provisioned as a service
- Availability is based on utility-based pricing model
- Scaling of resources is dynamic and on-demand
- Supports multiple users to concurrently access a single piece of hardware
PaaS is a product development-oriented cloud service model which provides subscribers (developers) with a virtualized set of partial or full integrated development environment and tools to create , develop, execute, test, and deploy new applications directly in the cloud with a particular programming language via the internet as a service.
It has associated tools and services to facilitate efficient coding and deployment of complete applications. The developed applications using PaaS are provisioned as SaaS to the end-users via the internet.
Using this model, absolute control and maintenance of the key cloud infrastructure, especially the operating systems, storage and the server, resides with the service provider and not the consumer.
Using PaaS, collaborative projects can be jointly developed by several members of a project team irrespective of their wide geographical proximity.
Some examples of PaaS are Apache Stratos, Microsoft Azure, IBM Bluemix, Force.com and Google Apps.
PaaS is characterized by failover and security capabilities, high server speed, load balancing , availability , uniform authentication, robust scalability, automated backups creation, and high storage capabilities.
Advantages of PaaS
PaaS seamlessly allows the developers and the technical operations professional to access the same services on the same platform.
Provides ease of service provisioning
PaaS offers easy distribution of development tools and repository services, thereby eliminating interoperability challenges that may be associated with non-standard environments. Consequently, reduced errors, high consistency and improved efficiency often characterize the development life cycle management processes. PaaS also offers easy provisioning of scaling applications and runtime services.
- Offers an abstracted interface and platform to optimize the development life cycle of an application
- Relieves organizations of installation and operational burden
- Provides a unified environment to develop, build, distribute, host and maintain applications
- Provides web-based interface development tools for designing appealing graphical user interfaces
- Offers a multi-tenant architecture that supports remote collaborative team work and concurrent usage
SaaS is typically the functional layer of the cloud service model. Via a multi-tenant architecture, SaaS grants multiple users remote and exclusive access to a single application through a web browser.
To the consumer, the SaaS model is more or less a web-based application platform with an interface to present and deliver hosted software applications and services on the internet which are accessible via a web browser.
Using SaaS, consumers are relieved of capital investment in servers, software licensing, upgrading or maintaining software applications on their local systems. However, running and maintenance of the computing resources, the operating system and the application software are the responsibilities of the cloud service provider.
Characteristics of SaaS include configurability, scalability, high efficiency, and multi-tenant architecture among others.
Multi-tenant architecture enables a single software application to be delivered through a web browser to numerous users. Some examples of SaaS hosted applications include Microsoft Office 365, Google Docs, Salesforce, NetSuite, Hotmail, Gmail, WebEx and Microsoft LiveMeeting which can be accessed by a client using devices such as smartphones, iPads and laptops.
In particular, Google Docs provide users with interfaces to create, edit, delete, and share their documents, presentations or spreadsheets with anyone while Google retains the responsibility to ensure that the software and hardware that support the applications are routinely maintained.
SaaS applications are offered as a service on demand at no charge via a subscription or billed as per the pay-as-you-go utility pricing model.
Characteristics of SaaS
- Commercial software gets centralized web-based access
- Provides flexibilities that makes the entire business process to shift to the cloud
- No burden of software patches and upgrades of some sorts
- Integration with different applications is possible via application programming interfaces