Jump to content

Three Approaches to Cloud Computing: Understanding IaaS, SaaS, and PaaS

+ 1
  chco's Photo
Posted Aug 24 2011 09:38 AM

The idea behind any cloud computing proposal is for you to pay only for what you use, scaling up or down according to business needs. Vendors supporting cloud computing can interpret this statement differently, providing varying levels of services to achieve this result. The three approaches to cloud computing are Infrastructure as a Service (IaaS), Software as a Service (SaaS), and Platform as a Service (PaaS). This excerpt from the recent publication Windows Azure Step by Step will elaborate.

Infrastructure as a Service

Some vendors provide the infrastructure to build solutions, and you rent the hardware such as servers, load balancers, a firewall, and cables. You then configure these remotely and install your solutions on them. You can scale up by requesting more servers and reconfiguring the load balancer without purchasing more hardware. You can scale down at any time by reconfiguring the infrastructure you rented from the cloud service provider. This vendor approach is called Infrastructure as a Service (IaaS) because a customer can rent the infrastructure without having to forecast and provision for the highest possible demand in advance. In this approach, you are responsible for correctly configuring the rented infrastructure.

These are the most important points to remember about IaaS:

  • The lower levels of the stack are managed by the vendor.

  • Very few vendors actually provide an operating system. You are still responsible for managing everything, from the operating system to the applications.

  • The obvious benefit of IaaS is that it frees you from the concerns of provisioning many physical or virtual machines.


Software as a Service

In another approach, you can rent a service offered by the vendor and then configure the service by using the interface provided by the vendor, without having to know what infrastructure the vendor uses to provide that service. This approach is called Software as a Service (SaaS) because you pay to use defined services. For example, Microsoft Exchange Online carries a per-mailbox charge. To configure it, you use a web application supplied by the vendor to request mailboxes, and name and dimension them. You receive a password for that user and nothing else is necessary—users can access their mailboxes immediately.

This proposed interface has little in common with the on-premises version of Microsoft Exchange. In an SaaS model, you do not have control over nor are you responsible for the hardware on which the service is installed. Similarly, you have no control over the operating system that runs the service, nor any control over the software apart from what the web user interface exposes to you. In other words, a vendor provides everything required to run the application, shielding you from all the underlying components.

Platform as a Service

The third approach is Platform as a Service, or PaaS. In this approach, you rent a platform on which you deploy your applications without configuring the infrastructure and without the limitations of the SaaS approach.

The Wikipedia definition for PaaS is as follows (Wikipedia, Platform as a Service, 2011, http://en.wikipedia....rm_as_a_service):

...the delivery of a computing platform and solution stack as a service. PaaS offerings facilitate deployment of applications without the cost and complexity of buying and managing the underlying hardware and software and provisioning hosting capabilities, providing all of the facilities required to support the complete life cycle of building and delivering web applications and services entirely available from the Internet.

PaaS offerings may include facilities for application design, application development, testing, deployment and hosting as well as application services such as team collaboration, web service integration and marshaling, database integration, security, scalability, storage, persistence, state management, application versioning, application instrumentation and developer community facilitation. These services may be provisioned as an integrated solution over the web.


The Windows Azure platform fits best in the PaaS category, because it doesn’t provide access to the underlying virtualization environment or operating system details such as the network interface, IP configuration, and disk management.

The key concepts to remember when dealing with PaaS are:

  • The platform vendor provides and manages everything, from the network connectivity to the runtime.

  • PaaS offerings reduce the developer burden by supporting the platform runtime and related application services.

  • Developers can begin creating the business logic for applications almost immediately.

  • PaaS, compared to traditional hosting solutions, offers the potential for significant productivity increases, because the cloud provider manages all the hardware and operational aspects of the cloud platform.


Cloud Services Defined

The responsibility of you and the vendor is summarized in the following figure.
Attached Image

As you can see in the figure, despite significant differences among the various offerings in the cloud computing industry, vendors provide a set of services that you can rent so that you do not have to manage layers (presented as white, below the line).

The definition of cloud computing from Wikipedia is as follows (Wikipedia, Cloud Computing, 2011, http://en.wikipedia....Cloud_computing):

Cloud computing is Internet-based computing, whereby shared servers provide resources, software, and data to computers and other devices on demand, as with the electricity grid. Cloud computing is a natural evolution of the widespread adoption of virtualization, service-oriented architecture and utility computing. Details are abstracted from consumers, who no longer have need for expertise in, or control over, the technology infrastructure “in the cloud” that supports them. Cloud computing describes a new supplement, consumption, and delivery model for IT services based on the Internet, and it typically involves over-the-Internet provision of dynamically scalable and often virtualized resources. It is a byproduct and consequence of the ease-of-access to remote computing sites provided by the Internet. This frequently takes the form of web-based tools or applications that users can access and use through a web browser as if it were a program installed locally on their own computer.


This definition points out two important aspects of these offerings: the usage of distributed resources (IaaS, SaaS, and PaaS), and the abstraction of the underlying technology from the developers. You already learned about the first aspect. The second aspect is important because you can manage abstracted resources such as distributed storage without having to know much technical detail about how to configure it, secure it, and distribute it.
Cover of Windows Azure™ Step by Step
Learn more about this topic from Windows Azure™ Step by Step. 

Teach yourself how to build and host scalable applications in the cloud using Windows Azure—one step at a time. Ideal for those with basic programming skills, this tutorial provides practical, learn-by-doing exercises for working with the core services and features of the Windows Azure platform.

Learn More Read Now on Safari


1 Reply

0
  rozarka's Photo
Posted Oct 06 2011 12:16 AM

there is a really good PaaS providers comparison list - http://www.paaslist.com//