Virtual Insider

Blog archive

IaaS, PaaS, SaaS: Defining the Various Cloud Offerings

There are so many "as a service" acronyms these days that you can"t even keep up with them. Heck, at VMworld there was a "Party as a Service" (great party, by the way; you all should attend).

Seriously, though, I now have a barrage of e-mails and queries about the difference between the three main types of services: Infrastructure as a Service, Platform as a Service, and Software as a Service. And what people are asking for is an explanation in plain, simple English, without fancy and elaborate market-speak, with examples that can help them wrap their heads around what these are, how they may fit, etc.

So, this blog is all about simplifying what these services really mean. I'm confident that I've answered you all adequately. Here goes:

IaaS -- I have decided to start with the easy one. IaaS is simple: Instead of spending CapEx to build out hardware and purchase physical servers, network equipment and storage, you can very simply go to the cloud. Amazon with its EC2 offering is one such IaaS, where you can request the services of a virtual infrastructure.

And what does a virtual infrastructure include? Well, everything. You can build virtual servers, virtual desktops, network load balancers, control firewall access, etc. It's exactly the same resources with exactly the same approach you have in your datacenter today, except all of it is virtualized and you don"t spend the upfront CapEx. You buy what you need when you need it. More important, you scale when you need less, without having to worry about all the facilities requirements that you would normally consider.

PaaS -- People usually get IaaS and SaaS, but you throw in PaaS and things start to blurred and confusing. So, what is the difference between PaaS and IaaS? And what is the difference between PaaS and SaaS? Let"s take a closer look.

PaaS is the future of cloud because it re-architects the way developers write applications and deliver these applications to users. PaaS is a platform that gives developers everything they need from an infrastructure stand point to write and deliver applications. And so, you might be saying, "Eli, that is the standard definition, which confused us in the first place!"

Ok, let"s break it down. Today, you purchase an application and when it comes time to install it, you have decisions to make. If it is a personal application, you have to provide the platform for this application to be installed, correct? You have to look at the system requirements: determine what OS it was written for, hardware requirements, and so on. Once you've sorted that all out, you acquire all the hardware and software, configure everything and install your application.

IT departments of all sizes follow a similar process when deploying an enterprise application. You need a database, a domain controller, a Web server and a few application servers...all these servers in order to deploy a CRM application. So, think about what you just did: You created a platform upon which your application can be installed. Now this application that you purchased was written and developed to be deployed in this manner.

Now, what happens when you deploy enterprise class applications? You start to consider high availability using clustering, scalability, security etc. Well what if there was a way for you to deliver applications to users differently? Instead of the developer writing an application that is stand-alone and does not take into account high availability or security, etc., what if they wrote the application against an online platform like Windows Azure, which, by nature provides scalability, high availability security and more? Would that not be easier?

Want more specific examples? Take a look at what Salesforce is doing with its Force platform. You can build an online presence with all the needed components to run your business. PaaS will provide all the back-end databases needed, workflow management, application servicing and so on.

How many times have you been faced with a situation where you were given an application by someone in the business unit that was purchased without consulting IT? And how many times have you had to deal with applications that don"t scale well, that don"t install on servers very well, that were written to support only Microsoft Access and you want to use this application for 400 users? How many times have you pulled your hair out because no matter how much hardware you throw at an application that's poorly written, the performance is the same? Would it not be easier if developers were writing applications against a very specific platform that inherently has built-in provisions to address all of the listed concerns? Would that not be a welcome thing? Well behold, I give you PaaS. (Whew!)

SaaS -- This one is easy as well; it is based on the concept of renting applications from a service provider and not worrying about installing or configuring, etc. And now you're thinking, "Eli, you confused me here; is that not PaaS?" The answer to this million-dollar question is that the final developed application on PaaS becomes a SaaS. Most of the applications that will be written against PaaS will use a shared platform like Azure.

Now the trick with these new forms of software-as-a-service is that individually they are self-sufficient and great, but how do I tie them together in order to create my organization? How do I get a collection of SaaS and allow groups of users access to them? Where will my authoritative directory like Active Directory be? These are all valid questions and the answer is that identity management will play a central role in tying all these applications together to form a logical entity for an organization that can easily manage user access to applications. Many companies are making moves in that direction, such as VMware's Project Horizon and Citrix's Open Cloud, to name a few.

The bottom line is, with the cloud we are not just porting our existing physical infrastructure to a virtualized environment and continuing to do business the old-fashioned way. We are changing the way applications are written and delivered, and with that, everything changes.

Posted by Elias Khnaser on 05/19/2011 at 12:49 PM


Subscribe on YouTube