Cloud Computing is the new norm and there are many aspects of it that make it very viable for the enterprise of today. When we talk about Cloud Computing, one of the key queries that we normally hear is what are the various Cloud Computing Models and what is the difference between them. Let’s try and understand this today
IaaS, PaaS, and SaaS are the most used terms in the cloud computing industry. These three acronyms describe services in particular, but not just cloud computing specifically. It can be said that cloud computing is often broken down into these three major segments. IaaS, PaaS, and SaaS stand for Infrastructure as a Service, Platform as a Service, and Software as a Service respectively. Let us now try and understand the difference between these.
If you look at the diagram above, the difference really is in the fact that the provider manages different parts of the stack from the hardware layer upwards and the customer manages different parts. While there is no rule of the thumb that tells you which model is better suited to you or is easier to manage, it really is a function of budget and functionality and an optimal mix of both that help your organization to ramp up and solve problems faster.
SaaS – Software-as-a-Service – A cloud service that provides users access to software in a self-service, on-demand fashion. This could be a single application or provide a catalog of software a user might choose from.
SaaS is the simplest cloud service model that serves the end users. All end users have to do is log into the cloud service from a client (typically a browser) and start using the service – Excellent example here would be GMail . All you do is log into your gmail account and send/receive mails. It saves you the trouble of creating and maintaining software by yourself. There is a reasson why I used Gmail as an example for SaaS above. Assume that you are starting your own business/company and you need to communicate via emails. If build an on premises solution for this from scratch you will have to have your own mail server, configuration and most importantly it’s maintenance and resources dedicated to that . SaaS lets you delegate this to 3rd party (SaaS vendors) – Google in our example. The users or organizations do not and will not have to worry about implementation and maintenance of email, they just use it.
PaaS – Platform-as-a-Service – A cloud service that abstracts away the infrastructure (users don’t get to see the computers, loadbalancers, etc.) but rather provides a software development platform. It is possible to code and run an application on a PaaS and the system makes sure that the app has the necessary infrastructure to make it run and scale.
PaaS comes at a level lower than SaaS in the stack. PaaS allows you to deploy your code without bothering about underlying platform configuration,operating system or server infrastructure. Best example here would be – Google App Engine . Your team chooses what programming language suits your business model – Java, PHP etc, write code and deploy it on the PaaS provider. It saves you the trouble of owning and maintaining servers (data centers), operating systems on it, runtimes needed to build and deploy your application etc. PaaS delegates these infrastructure requirements to 3rd party (PaaS vendors) – Google App Engine in our example.Also you don’t have to worry about scaling and performance.
IaaS – Infrastructure-as-a-Service – A cloud service that enables users to get access to their own infrastructure – computers, networking resources, storage. Its worth noting that these may be typically virtual resources, but sometimes could be real, physical resources. It is entirely up to the cloud provider whether they are physical or virtual
IaaS is the lowest level of cloud services that are provided. This saves you the trouble of actually buying and maintaining IT infrastructure. When you go for this model, you get servers from IaaS vendor. You choose your own OS, your runtimes, your application code etc. The most famous example of this is AWS (Amazon web services). This very often works by using virtual environments. IaaS vendor will have data centers each hosting multiple servers. Each server will have multiple virtual machines running on them and each IaaS customer will get such a virtual machine. You can then decide what OS you prefer, what runtimes you need etc.
This is a very broad understanding of the differences between various Cloud Models that are in vogue now.