Monday, March 2, 2015

IaaS vs. PaaS vs. SaaS

People often get confused about the cloud computing terminologies, and acronyms. Especially IaaS vs. PaaS vs. SaaS. So in this blog post let us see what these really are and how we can differentiate them from one another..

IaaS -- Infrastructure-as-a-Service
PaaS - Platform-as-a-Service
SaaS - Software-as-a-Service

A very simplified way of differentiating these terms of Cloud Computing is as follows;
  • IaaS is the hardware and software that powers it all – servers, storage, networks, operating systems 
  • PaaS is the set of tools and services designed to make coding and deploying those applications quick and efficient 
  • SaaS applications are designed for end-users, delivered over the web
Let us look at the characteristics of each of these for a better understanding :

IaaS
Infrastructure as a Service (IaaS), is a cloud service which helps us to use our desired infrastructure (servers, storage, operating systems etc.. ) whenever we require and in whatever configuration and with the components we want - as an on-demand service, from our cloud service provider.

Characteristics of IaaS
IaaS is a rapidly developing field, compared to other two cloud stacks - SaaS & PaaS. That said there are some core characteristics which describe what IaaS is. IaaS is generally accepted to comply with the following;
  • Resources are distributed as a service 
  • Allows for dynamic scaling 
  • Has a variable cost, utility pricing model 
  • Generally includes multiple users on a single piece of hardware
There are a plethora of IaaS providers out there from the largest Cloud players like Amazon Web Services, Microsoft Azure and Rackspace  to more boutique regional players.
The line between PaaS and IaaS is becoming more blurred as vendors introduce tools as part of IaaS that help with deployment including the ability to deploy multiple types of clouds.

PaaS
Platform as a Service (PaaS) is simillar to SaaS, but instead of software being delivered over the web, platform for development of software is delivered over the web. PaaS can be in simple terms defined as computing platform that allows the creation of web applications quickly and easily and without the complexity of buying and maintaining the software and infrastructure underneath it.

Characteristics of PaaS
There are a number of different takes on what constitutes PaaS, but some basic characteristics include;
  • Services to develop, test, deploy, host and maintain applications in the same integrated development environment. All the varying services needed to fulfill the application development process 
  • Web based user interface creation tools help to create, modify, test and deploy different UI scenarios 
  • Multi-tenant architecture where multiple concurrent users utilize 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
PaaS, which is similar in many ways to Infrastructure as a Service, is differentiated from IaaS by the addition of value added services and comes in two distinct flavors;
  • A collaborative platform for software development, focused on workflow management regardless of the data source being used for the application. An example of this approach would be Heroku, a PaaS that utilizes the Ruby on Rails development language. 
  • A platform that allows for the creation of software utilizing proprietary data from an application. This sort of PaaS can be seen as a method to create applications with a common data form or type. An example of this sort of platform would be the Force.com PaaS from Salesforce.com which is used almost exclusively to develop applications that work with the Salesforce.com CRM.

SaaS
Software as a Service (SaaS) can be defined as a software that is offered to customer over the web, whenever the customer requires it & is licensed to a customer as a on-demand service via subscriptions, pay-as-you-go basis or even offered free to a customer when there are other sources to generate revenue - like from advertisements... (eg: yahoo mail, gmail etc..).

Characteristics of SaaS
Like other forms of Cloud Computing, it is important to ensure that solutions sold as SaaS in fact comply with generally accepted definitions of Cloud Computing. Some defining characteristics of SaaS include;
  • Web access to commercial software 
  • Software is managed from a central location 
  • Software delivered in a “one to many” model 
  • Users not required to handle software upgrades and patches 
  • Application Programming Interfaces (APIs) allows for integration between different pieces of software.
Hope this post clears much of the confusion regarding the differences between IaaS, PaaS & SaaS, or atleast makes theses concepts to be understood better.

No comments: