Gone are those days when we have to build & manage our own servers.

We live in a cloud era where servers / infrastructures can be rented instead of owning, maintaining & upgrading them.

We often come across these cloud computing service model terms such as IaaS, PaaS, SaaS quite often.

what do they actually mean ?
Are they any different from each other ?
What should I choose ?

We will try to address these questions in this post and we will compare Iaas & PaaS.
we will discuss about SaaS in a separate post

The Cloud

Cloud Computing offers on-demand access to computing resources such as cpu, storage etc.. These can be in a form of Infrastructure or platform or software.

An average consumer can subscribe to these services on a pay-as-you go model and just pay for the resources they use and don’t have to worry about anything else.

Let’s take a look at Iaas & PaaS models.

IaaS - Infrastructure as a Service

Infrastructure as a Service literally means Infrastructure is provided as a Service (which is a mix of both Hardware & Software).

Lets take a look at how this stacks up.

IaaS

As we can see in the above diagram from Networking layer upto the Virtualization layer is managed by the cloud vendor.We don’t have to worry about investing & maintaining the infrastructure.

All we have to do is spin a Virtual Machine of our choice on top of the infrastructure provided and thats it.From there its our responsibility to install necessary softwares, install databases, deploying applications, creating firewall rules etc.This will be typically billed for the number of hours used by our servers (which are also called as instances) and if we don’t want our servers to be up we can always stop it and we won’t be billed when the servers are not running.

This gives us great control over the server environment and the cost.But using IaaS has a little overhead of creating & maintaining our servers (VMs).

Few examples for IaaS would be

  • Elastic Compute Cloud (EC2) in AWS
  • Google Compute Engine in GCP
  • Compute in Azure
  • Compute / Virtual Machines in IBM Cloud

PaaS - Platform as a Service

Platform as a Service sits on top of IaaS where the environment required to run our application is available ready made.We just have to bring our application and deploy it.

PaaS

As we can see from the above diagram the cloud vendor pretty much maintains everything that is required to run our application.

EBS

(Screenshot from AWS EBS)

Most of the cloud vendors provide support for major programming languages such as Java, NodeJS, .Net Core, Python, GO etc..

Our only job is to bring our application & deploy it and rest is taken care of.

Few examples for PaaS would be

  • Elastic Bean Stack in AWS
  • Google App Engine in GCP
  • Openshift
  • Firebase
  • Heroku
  • Apache Stratos

How do they compare against each other

Both IaaS & PaaS have their fair share of the offerings.What we are going to choose is completely upto us & based on our use case.

If we are comfortable maintaining our own VMs, environments & resources IaaS would be the correct choice this will give us flexibility down to the server level where we can tweak stuff if required.

If we are not comfortable maintaining servers or resources but want an easy to operate deployment environment PaaS would be the correct choice.

Both are highly scalable on-demand and comes with a pay as you go model.

PaaS is still the go to option for many than IaaS

Share