So, What's It All About?
When I first starting exploring the world of cloud, it took me a little while to fully understand the different cloud models available …. What does it all mean? What exactly is the different between Infrastructure as a Service (IaaS) vs Platform as a Service (PaaS) vs Software as a Service (SaaS)?
In this article we'll take a deeper look at the differences IaaS vs PaaS vs SaaS cloud models – but without all the tech jargon!
Yeah Yeah … Just Give Me The Short Version
We live in truly amazing times don't we! The rise of cloud computing has removed the shackles that once held us back … gone are the days of needing to have a dedicated team of crack specialists to procure and support your on-premise infrastructure.
While all this cloud technology can sometimes seem like magic … remember that behind all the smoke and mirrors, at a fundamental level the cloud is merely a set of computers running applications on an operating system platform.
In the world of cloud, there are 3 different hosting models; Each option provides varying levels of control of the overall technology stack.
- Infrastructure as a Service (IaaS)
- Platform as a Service (PaaS)
- Software as a Service (SaaS)
Applications are ultimately the cornerstone of computing. The level of control that you require and the complexities of your application will ultimately dictate which choice is right for you.
In essence, IaaS gives you the most control of the underlying server operating system platform and applications that run on it. However, with that extra control comes extra responsibility such as needing to configure services, secure the operating system, apply OS patches … and the list goes on and on.
On the other hand, with PaaS, the underlying operating system is managed for you so all you need to worry about is running your application, including mundane tasks such as OS patching.
While SaaS takes it to another level once again, by making it all someone else’s problem! As the name suggests, you merely consume the application as a service. Your application will be managed for you, so you can get straight down to business.
The below table summarises the key differences between each cloud model.
(less is better)
(more is better)
|IaaS||❌❌❌||✔️ ✔️ ✔️||✔️||❌❌❌|
|PaaS||❌❌||✔️ ✔️||✔️ ✔️||❌❌|
|SaaS||❌||✔️||✔️ ✔️ ✔️||❌|
Infrastructure as a Service (IaaS)
This option gives you the most control. Typically, you’ll be given a Virtual Machine running in the cloud. You have full control over the OS and everything running upon it.
- The biggest advantage is flexibility and customisability. You have full control over the operating system platform.
- More costly, as you're essentially paying for lease of a dedicated virtual machine running in the cloud.
- More administrative overheads for you to manage including tasks such as configuring services on the operating system, user access management, OS patching etc.
- Less scalable compared to other options – applications that require IaaS are typically tightly coupled with the underlying operating system platform, and therefore increasing complexity and reducing scalability.
Platform as a Service (PaaS)
The value proposition is simple; bring your code, and your provider will take care of the rest.
For this reason, it’s no surprise, this option is incredibly loved by developers because it takes away the burden of managing the underlying operating system.
With PaaS, you’re given a managed and optimised environment upon which you can run your application code. It allows developers to focus on the core application, rather than being concerned about building and maintaining the underlying infrastructure.
- Greatly simplifies development and deployment of apps. You’ll be given a program execution container where you can run your application code within.
- Better scalability than IaaS. PaaS applications are typically more portable by their nature which enables them to make better use of the cloud.
- Cost effective – No need to have a dedicated support team looking after your server infrastructure.
- Enabler of Continuous Integration (CI) / Continuous Deployment (CD) services to reduce time-to-market for new software releases.
- Gives you less control of the underlying OS platform i.e. you won’t have the ability to remotely connect to the underlying host machine.
- Generally speaking, PaaS is not suitable for applications that are tightly coupled to the underlying OS environment.
- Only specific programming languages are supported so you’ll need to check the requirements of your application to see if it’s compatible with PaaS.
Software as a Service (SaaS)
Does IaaS or PaaS sound like too much effort? … make it someone else's problem!
With SaaS your application will be managed by a third-party service provider, thereby allowing you to focus on simply using the application.
- Consumption pricing model. You only pay for what you use. Highly cost effective as there is no need to have a dedicated support team looking after your server infrastructure and applications.
- Switch to Operation Expenditure rather than upfront Capital Expenditure costs
- Automated software upgrades on a regular basis
- SaaS takes a cookie cutter approach; the software is provided as-is and there are generally little customisation options available. If you have highly specific requirements then SaaS may not be applicable for you.
- Vendor lock-in can be an issue. There may be limited hosting providers available for your software needs.
- Can be an expensive option if your application is only occasionally used.
Putting This Into Practice – Pizza Style
So, what do these abstract concepts really mean … well let me put this into context for you with the help of some pizza … yep, you can never go wrong with pizza!
In the world of pizza, IaaS would be akin to making the pizza yourself as it gives you a lot more control of the overall finished product.
Feel like adding extra toppings? Sure, why not! It’s all down to you. Feel like thicker crust? Let’s do it!
The downside of this approach is that it takes much more time and effort before you can enjoy that tasty pizza.
PaaS represents a take home and bake pizza. You just need to take it out of the box and put it into the oven and bake it to perfection. Yummm!
This approach is obviously much quicker than making your own pizza but you have a bit less control over the finished product because most of the work has been done for you.
Now comes SaaS… Feeling a bit lazy? Why not outsource the entire process. This option is akin to buying a take-away pizza from a fast food pizza parlour. You don’t need to worry about making the pizza, it’s all managed for you. No mess, no fuss, just yummy pizza … mmmmm.
The hosting options available to you will ultimately be dictated by the limitations of your applications and the size of your organisation, however generally speaking, the PaaS and SaaS hosting options are the recommended choice as they take full advantage of the clouds capabilities.
IaaS should only be reserved for running legacy workloads, where PaaS and SaaS are not available.
The value that the cloud brings is undeniable and very compelling for businesses. However it's important to understand they key benefits and disadvantages offered by each cloud hosting model before committing to one.
I hope this article has demystified the cloud hosting options available for you. No matter the choice you ultimately make, the cloud is the future of computing as we know it.
Happy cloud computing!