In this blog, I will cover a comparison of IaaS, PaaS, SaaS cloud services.
Following diagram nicely illustrates the layers and target customers associated with these 3 cloud services.
Comparing cloud service types to computing model, IaaS is equivalent to hardware and servers, PaaS is equivalent to Operating system, Saas is equivalent to applications.
IaaS(Infrastructure as a service):
Amazon’s AWS mastered this category. Here customer can buy computing and storage resources on a demand basis. The customer can run any platform or application on top of this infrastructure. The customer gets complete control over granularity of the resource. AWS’s EC2 for compute and S3 for storage are classic examples of IaaS. When the customer’s needs increases, resources can be vertically or horizontally scaled. In this model, the customer is responsible for building all the infrastructure pieces of the application like Database, redundancy etc.
PaaS(Platform as a service):
PaaS is mostly targeted for developers where a platform is provided for faster development of applications. Google appengine is a great example of PaaS. With PaaS, there is no need to worry about compute and storage infrastructure, patching the OS, scaling the application, installing and configuring web servers and database servers. Application developer needs to worry about writing the application in his/her preferred language and PaaS takes care of the rest. One of the disadvantages of PaaS is the difficulty in porting applications between different PaaS providers, as per what I understand this is not possible. Also, I am not sure if PaaS applications can be efficiently written since there is limited knowledge about the infrastructure.
Easiest way to get familiarized with PaaS is to try the simple application development example specified in Google App engine developer page. Google App engine supports Python, Java, PHP and Go.
SaaS(Software as a Service):
This is the oldest cloud service category even before IaaS and PaaS came into existence. Majority of cloud services today are in the SaaS category. Typical example is web based mail from Yahoo, Google. SaaS might not be suitable for latency sensitive applications. For applications to work in the cloud, there are special considerations and we will talk about this in later blog.
Following table shows some of the cloud services available today and its comparison from traditional services:
All of the above are SaaS services except the last 2 which belongs to IaaS.
Following picture below illustrates some of the providers of different Cloud services.
Some big players seem to play in all categories of cloud services.
1 of the trends that is seen recently is the blurring of the edges between IaaS and PaaS. IaaS providers provide some services that step into PaaS. Typical example is AWS’s EBS(Elastic beanstalk service). EBS bundles Amazon’s EC2, S3, SNS(simple notification service), Elastic load balance and Auto scaling so that application developers dont have to worry about these aspects. EBS also gives control to the developer in case the developer wants to finetune any of the infrastructure pieces. Amazon claims that EBS provides the best of IaaS and PaaS.