Cloud Computing Terminology - IaaS, PaaS & SaaS

I've looked at a number of questions on Stackoverflow and on the web that were very helpful. I had a few questions about what I have read so far regarding IaaS, PaaS and SaaS. However, I have a lot of questions that can be very naive as I haven't seen any of them in action.

1) Is PaaS the equivalent of a development environment in which software is developed / configured, as opposed to IaaS, which is a runtime environment for running developed software (could be any test or ENV release)?

2) In the case of PaaS, I saw apprenda as an example. Within Apprenda, I've seen .net, Java, IIS, and SQL Server listed as part of the platform. Does this mean that instead of installing it all on my local machine or in a development box, I end up with a remote machine that has all the development tools installed and I just have to go and program whatever I want?

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

4) I also read that PaaS can be public or private (inside a company firewall). If closed, will the PaaS provider basically set up a development platform in my company infrastructure?

5) Can any website that provides login capabilities be called SaaS? For example: GMAIL, Yahoo Mail, Facebook, etc.

6) Can you name Google Drive, Apple iCloud and SaaS?

+3


source to share


3 answers


PAAS : Platform as a Service

  • You don't care about the underlying hardware or OS.
  • You only care about your code, the platform will take care of the rest
  • The scaling is done for you
  • You must comply with some restrictions imposed by the platform
  • Pay for what you use (more traffic, storage used -> higher bill)
  • examples are Google AppEngine, Heroku, AWS Elastic Beanstalk.

IAAS : Infrastructure as a Service



  • You rent an infrastructure where you choose the amount of memory, processor, disk size, OS, ...
  • You will set your runtime to a full choice from NodeJs, Redis, or LAMP stack, or whatever flavor you can think of.
  • You are responsible for setting up the leased infrastructure for high availability and scalability.
  • More freedom, but more customization (devops)
  • Pay for what you allocate (you pre-configure your machines and pre-select infrastructure)
  • examples are Google Compute Engine, Amazon EC2

But the world is not black and white. PaaS and IaaS are growing towards each other. For example, the AppEngine managed VMS gives you more freedom to choose the underlying OS while in a PaaS environment. And Google Autoscaler or Kubernetes lets you manage your infrastructure at a more declarative level.

Finally, SaaS products are targeted at non-technical end users. So Apple iCloud, Google Drive, Gmail, Yahoo Webmail are examples of SaaS.

+3


source


I am trying to provide a simpler answer and mapping to the Azure Deployment Model

SaaS : Software as a Service.

  • The simplest, easiest and fastest way to host your web application / service in the cloud.
  • Your network will be automatically deployed to some virtual machines and will scale automatically.
  • You don't need to worry about virtual machines. The cloud provider will support them.
  • SaaS in Azure: Azure App Services (or web app / websites).

PaaS : Plafform as a Service.



  • The cloud provider will create pre-configured virtual machines that set all the prerequisites (for example: Windows Server 2012 with .Net 4.5 and IIS installed). These virtual machines will automatically load your sites / applications when they are fully allocated.
  • PaaS is almost identical to SaaS, except that it allows the remote desktop to connect to virtual machines, do some configuration tasks there, like running custom startup scripts ...
  • PaaS on Azure: Azure Cloud Services. Azure provides 2 kinds of pre-configured virtual machines. They are Internet roles if you need a host for a website and worker roles if you need to run a background process.

IaaS : Infrastructure as a Service.

  • The cloud provider will provide you with dedicated virtual machines so that you have full control over whatever setup you want (you can configure the OS for services and software ...). This is exactly the same as virtual machines in place.
  • This is suitable if your application needs to do a lot of settings in the hosting environment to run.
  • IaaS on Azure: Azure VMs
+1


source


The NIST definition of cloud services in general is a great place to start looking for answers. It gives 5 characteristics of cloud services:

  • Wide network access
  • Self-service on demand
  • Pooling resources
  • Fast elasticity
  • Measured service

And then it talks about SaaS, PaaS, and IaaS service models. Just running an app in the cloud isn't enough to tell SaaS this. Thus, these are not just applications aimed at non-technical users, but applications that cover these characteristics. The subclause for resource pooling above provides some multi-user support for delivering the solution to users.

1) Is PaaS the equivalent of a development environment in which software is developed / configured, as opposed to IaaS, which is a runtime environment for running developed software (could be any test or ENV release)?

A PaaS solution doesn't have to be a development environment. It can provide a resource for some software that is being developed without the developer having to provide all the basic capabilities to ensure the delivery of that resource. For example, SQL Azure is a PaaS that allows developers to have access to a relational database service. The developer can write and invoke queries against him without getting up the SQL Server instances themselves.

2) In the case of PaaS, I saw apprenda as an example. Within Apprenda, I've seen .net, Java, IIS, and SQL Server listed as part of the platform. Does this mean that instead of having it all installed on my local machine or in a development box, I have a kind of remote machine where all the development tools are installed and I just have to go and program whatever I want? This should mean that you have access to remote resources that your development tools can connect to and manage. The server (say SQL Server) is not the same as the tool you use to access it, such as SQL Server Management Studio.

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

You can not.

4) I also read that PaaS can be public or private (inside a company firewall). If it's private, will the PaaS provider basically install the development platform on my company infrastructure? Private PaaS means that the company has set up a private infrastructure to allow developers to use resources that are part of the solution architecture that does not need to be managed by the developers themselves.

5) Can any website that provides login capabilities be called SaaS? For example: GMAIL, Yahoo Mail, Facebook, etc.

No, not as defined by NIST. Granting user login is not the same as multi-tenant lease. Simply put, if an app allows companies / groups with user groups to use it, it moves to SaaS. So, consider solutions like Slack, Gitter, and Freshbooks.

6) Can you name Google Drive, Apple iCloud and SaaS? Yes, Google Google for Google Apps for Business. Until you see "iCloud for Business," no.

0


source







All Articles