Thursday, May 15, 2014

What is the difference between IaaS, Paas and SaaS?

Software as a Service (SaaS)

This has been around as long as the internet exists. These are pieces of software that you can subscribe to, like for instance Gmail, outlook.com, office 365 but as well as Adobe's creative cloud for instance. The main characteristics of this model is that you always are up to date with the latest version. If you take the example of outlook.com (Hotmail), Microsoft will not ask you to update it, you cannot rollback to a previous version. This off course will require from the provider that they always have to ensure continuity of their service. Since I as a customer would not appreciate it that I would not be able to read the emails in my inbox I received or sent 5 years ago.


Platform as a Service (PaaS)

In Microsoft azure these are all the features Microsoft makes available to you the only thing you need to worry about is get your code on there and Microsoft will keep all these features up to date to the latest versions. You have little or no Control over the Operation System or the underlying Infrastructure. In return off course you get certain things in return. For instance in Azure Websites You can have zero downtime scaling, high availability, and failover. Cloud Services provide you with more control in configuring the underlying infrastructure but that's it, you cannot install additional components on these features like a SQL server, you get an OS, an IIS and that's it, there is however some control in the version of the underlying OS and network (expose additional endpoints, deploy on a virtual network, etc). 


Infrastructure as a Service (IaaS)

These are basically virtual machine, the customer is responsible to monitor and maintain the OS and install and maintain the necessary features on these Virtual Machines like e.g. IIS, MSMQ, …
It's all matter of what you want to do yourself, are willing to do yourself



Scott Hanselman provides a very good analogy with regards to this: http://www.hanselman.com/blog/IntroducingWindowsAzureWebJobs.aspx