IaaS, PaaS, and SaaS – you’ve probably seen the acronyms for these cloud computing service models bounded around a lot lately. Many cloud computing services offer varying features and degrees of operational management depending on the service you consume.
This provides a lot of flexibility, often balancing between customizability, features, and cost. In the previous article “What is Cloud Computing“, you learned what cloud computing is. In this article, you’ll learn about the three main cloud computing service models, IaaS, PaaS and SaaS, and the various features and tradeoffs.
Infrastructure as a Service (IaaS)
With IaaS services, such as Amazon EC2, your company can consume compute servers, known as “instances”, on-demand. This means that the hardware and software stack, up to the operating system is managed for you.
You then need to choose which operating system to use with your instance (e.g. Linux or Windows) and you are responsible for the configuration and management of the operating system and any software you install on it.
An application programming interface (API) is typically provided for all cloud services, which can be used for programmatic management. Each compute instance will have an allocated storage capacity, and cloud networking functions such as routing, firewalls, and load balancers can be configured.
IaaS is the least popular of the cloud computing service models at present, though it is gaining in popularity. Currently, around 12% of enterprise workloads run on IaaS.
The benefits of IaaS include:
- You don’t need to invest in your own hardware
- The infrastructure scales on-demand to support dynamic workloads
- Increase stability, reliability and supportability
- Maintain operational control of the operating system
Platform as a Service (PaaS)
Developers love PaaS as it removes more complexity and operational overhead from them. With PaaS, the cloud service provider manages the infrastructure layer and also the middleware, development tools, business intelligence (BI) services, database management systems and more.
This allows developers to concentrate on their code without needing to manage the environment on which it runs. Developers simply upload their code to build web applications. PaaS is designed to support the complete web application life cycle: building, testing, deploying, managing, and updating.
You’re not just limited to web services with PaaS. Databases can also be offered in a platform as a service model. In this case the management of the database engine and underlying hardware is taken care of by the service provider, and you create tables and add data. Examples of database PaaS offerings include Microsoft Azure SQL and Amazon RDS.
PaaS is currently the most popular cloud computing service model, comprising around 32% of all enterprise workloads and is expected to grow in 2020.
The benefits of PaaS include:
- Cut coding time – develop applications faster
- Deploy new web applications to the cloud in minutes
- Reduce complexity with middleware as a service
Examples of PaaS services: Microsoft Azure WebApps, AWS Elastic Beanstalk, Heroku, Force.com and Google App Engine.
Software as a Service (SaaS)
SaaS is a service model where software applications are delivered over the Internet. In the consumer space, examples include Gmail, Facebook and Dropbox – these services are ready to use, no coding required, you just use them.
With SaaS the entire stack is managed for you, though you will often have some limited scope to configure the service according to your needs.
SaaS is the second most popular cloud computing service model for enterprises, totalling around 24% of all enterprise workloads.
The benefits of SaaS include:
- Sign up and rapidly start using innovative business apps
- Apps and data are accessible from any connected computer
- No data is lost if your computer breaks, as data is in the cloud
- The service is able to dynamically scale to usage needs
The diagram below depicts these three service models and shows where the responsibility for management lies, it also compares against the “legacy IT” or “on-premises” model:
Other Cloud Computing Service Models
There are several other cloud computing service models that are slight variations on what has been discussed already. These include Container as a Service (CaaS) and Functions as a Service (FaaS) which will be discussed below.
You may also have seen the acronym XaaS. The “X” in XaaS is a variable meaning you can replace it with whatever letter corresponds with the service you are offering in an “as a service” model. Also known as “anything as a service”. An example is DaaS which stands for “database as a service”, and BaaS which stands for “backup as a service”.
Container as a Service (CaaS)
A CaaS service sits somewhere between IaaS and PaaS, depending on the implementation. With a CaaS service the cloud service provider manages the container engine, such as Docker for you. You can use a management console or API to upload, organize, run, scale, manage and stop containers.
The benefits of using CaaS include:
- Pay only for what you use – such as compute instances, load balancing and scheduling capabilities
- It is easier to scale up a container using CaaS
- CaaS services can be responsive, secure and stable thanks to the support and management from the provider
- For developers, a CaaS model streamlines the process of building a scaled-out container and applications deployment
Functions as a Service (FaaS)
This is yet another level of abstraction. FaaS is part of a suite of services known as “serverless” services. With serverless computing you don’t need to worry about launching, managing, or scaling any compute resources such as server “instances”, clusters, or load balancers.
Serverless computing architectures are commonly associated with microservices applications. In the case of FaaS, compute processes are presented as “functions”. You upload your code and it is run when a request is received. When no requests to run your application code are being received, there are no costs being incurred, due to the “serverless” nature of functions.
The benefits of FaaS include:
- Easier on developers — all server management is handled by the cloud service provider
- Less management overhead = more time to focus on innovation/code
- Functions scale automatically and independently
- Never pay for idle resources
- Built in availability and fault tolerance
The diagram below compares IaaS to CaaS and FaaS:
This article is part of a series, please also check out:
- What is Cloud Computing? Cloud vs Legacy IT
- Cloud Computing Service Models – IaaS, PaaS, SaaS
- Cloud Computing Deployment Models – Public, Private & Hybrid
- Cloud Computing Basics – Compute
- Cloud Computing Basics – Storage
- Cloud Computing Basics – Network
- Cloud Computing Basics – Serverless