Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cloud Computing Terminology - IaaS , PaaS & SaaS

I went over a number of questions in Stackoverflow & on the web , which were very very useful. I had few questions on what I've read so far with regards to IaaS , PaaS & SaaS. However I have a lot of questions which may be very naive as I haven't seen any of these in action.

1) Is PaaS equivalent of a development environment where a software is developed / customized as opposed to IaaS which is an execution environment to run the developed the software (could be any env test or production)?

2) In case of PaaS , I saw apprenda as an example. As part of Apprenda , I saw .net , Java , IIS & SQL Server listed as part of platform. Does this mean that instead of having to install all these on my local machine or development box , I get to have a sort of remote machine where all the development tools are installed and I just have to go and program whatever I want to?

3) If I have not subscribed to IaaS for instance , how can I run the software developed using the platform that is exposed as a service?

4) I also read that PaaS can either be public or private (within company's firewall). If it is private , will the provider of PaaS basically set of up the platform for development on my company's infrastructure?

5) Can any website that provides be a capability to login be termed as SaaS? Eg: GMAIL , Yahoo Mail , Facebook etc.

6) Can Google Drive , Apple iCloud etc be termed as SaaS?

like image 990
Punter Vicky Avatar asked Nov 29 '25 23:11

Punter Vicky


2 Answers

PAAS : Platform as a Service

  • You don't care about the underlying hardware or OS.
  • You only care about your code, the platform takes care of the rest
  • Scaling is done for you
  • You have to adhere to some restrictions imposed by the platform
  • Pay for what you use (more traffick, storage used -> higher bill)
  • examples are Google AppEngine, Heroku, AWS Elastic Beanstalk

IAAS : Infrasctructure as a Service

  • You rent infrastructure where you choose the amount of memory, CPU, disk size, OS, ...
  • You setup the runtime environment will full choice from NodeJs, Redis or LAMP stack or any flavor you can think of.
  • You are responsible for configuring the rented infrastructure for high availability and scaling out
  • More freedom but more configuration (devops)
  • Pay for what you allocate (You setup your machines and choose your infrastructure beforehand)
  • examples are Google Compute Engine, Amazon EC2

But the world isn't that black and white. PaaS and IaaS grow towards each other. For example AppEngine managed VMS give you more freedom in choosing your underlying OS while still in a PaaS environment. And Google Autoscaler or Kubernetes brings managing your infrastructure to a more declarative level.

Finally SaaS products are oriented towards non-technical end users. So Apple iCloud, Google Drive, Gmail, Yahoo webmail are examples of SaaS.

like image 142
koma Avatar answered Dec 02 '25 03:12

koma


I try to provide simpler answer and mapping with Azure deployment model

SaaS: Software as a service.

  • It's simplest, easiest, fastest method to host your web app/service into cloud.
  • Your web will be deployed automatically into some VMs and autoscale when needed.
  • You don't need to care about the VMs. Cloud provider will maintain them.
  • SaaS in Azure: Azure App Services (or Web App/Websites).

PaaS: Plafform as a service.

  • Cloud provider will create the pre-configured VMs which install all prerequisites (Ex: Windows Server 2012 with .Net 4.5 and IIS installed). These VMs will autoload your sites/apps when it's completely spin-off.
  • PaaS almost identical to SaaS except it allows you can remote desktop connect to the VMs, do some configuration tasks on there such as run custom startup scripts...
  • PaaS in Azure: Azure Cloud Services. Azure provides 2 kind of preconfigured VMs. They are Web Roles if you need host the website and Worker Roles if you need run background process.

IaaS: Infrastructure as a service.

  • Cloud provider will provide you dedicated VMs so you have full control to do any customization you want (you can customize the OS to the services and software...). It just like the VMs on-premises.
  • It's suitable if your app need to do a lot of customizations on the hosting environments to run.
  • IaaS in Azure: Azure Virtual Machines
like image 39
huaminhluan Avatar answered Dec 02 '25 03:12

huaminhluan



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!