So, let’s start with the foundation here, with IaaS. IaaS is a set of compute, networking, and storage resources that have been virtualized by a vendor so that a user can access and configure them any way they want.
In design, we have a concept of talking about users—called personas—and the persona for IaaS is a System Admin or an IT Admin.
What is Software-as-a-Service (SaaS)?
Let’s jump up to the top with Software-as-a-Service—that’s the easy one. Software-as-a-Service is just software that you don’t have to install on your machine and you don’t have to manually update.
And so, the user for Software-as-a-Service could be anyone. In fact, if you’re watching this on YouTube right now then you’re a user of Software-as-a-Service. It’s usually charged on a subscription model rather than a one-time license fee.
What is Platform-as-a-Service (PaaS)?
And that brings us to Platform-as-a-Service. PaaS takes advantage of all the virtualized resources from IaaS and then just abstracts them away so the user doesn’t have to worry about managing any of those virtualized resources.
The user for PaaS is not a System Admin usually—it’s usually a Dev. In IBM we call this Dev “Jane,”—that’s the name of our persona.
And so this whole metaphor—the pyramid metaphor—is meant to indicate that as you move down, you’re increasing complexity in terms of your knowledge and management of infrastructure resources, and you’re increasing the ease of use.
The car metaphor for IaaS, PaaS, and SaaS
Another metaphor I use when I’m talking to the designers on my team about PaaS is having to do with a car.
So, in this metaphor, IaaS is like leasing a car.
So, if you’ve ever leased a car, you probably did a lot of research and you care about the specs of the car and the performance. You care about the color of the car, and what kind of car it is. You’re the one driving and you’re paying for it. You’re also paying for the gas and any tolls or maintenance.
With Platform-as-a-Service in this metaphor, that’s more like renting a car. So, say you’re on vacation and you just got out off at the airport, and you’re going to pick up your rental car—you don’t really care what color it is, you don’t even care about the specs of it, but you’re still driving and you’re paying for the gas and any tolls you go through.
Software-as-a-Service is again, the easiest one. That one’s more like getting a taxi or an Uber. So, with the taxi or Uber, you don’t care at all about what kind of car it is, what color it is, and in fact, you’re not even the one driving or paying for gas or any tolls because that’s baked into the price.
What does the vendor provide and what does the user provide?
So, let’s think about what that means in terms of cloud computing and what the vendor provides and what the developer, or “Jane”, provides.
So, the vendor provides servers, storage, networking, virtualization, middleware, the operating system, and the runtime.
All that leaves for the developer to provide is their data and applications.
So, this is the developer and this is the vendor—the cloud vendor.
Pros and cons of Platform-as-a-Service (PaaS)
So, there are some pros and cons with that just like with leasing, renting, or getting a taxi.
Pros of PaaS
The pros for using Platform-as-a-Service are that it’s generally assumed that it’s quite fast and easy to get an app up and running, which is great.
It’s easy to create and delete the resources, which is important for, say, you’re running a proof-of-concept app for a conference and you want to spin it up right before the conference and then delete it right after. You’re not paying for the whole month, and it’s easy to spin it up and delete it.
Also, that really results in some cost benefits. Another cost benefit of Platform-as-a-Service is that you don’t have to pay for a full-time system or IT admin to run this app, they can focus on something else.
And another pro is that a lot of providers of Platform-as-a-Service have been building out some tools on their platform. So, you can use DevOps tools, collaboration tools, and there’s a lot of API marketplaces that have been coming out, which is great because you can just take those services and plug them into your app, again still without having to worry about any of this.
Cons of PaaS
There are some cons to using Platform-as-a-Service.
This big one is lack of control—but some people will still say that that is a pro because although some people like to pull all the levers and push all the buttons having to do with fine-tuning their infrastructure, a lot of people don’t want to have to worry about that, nor do they have the understanding or ability to do that.
Another con is the vendor lock-in—it’s a little bit hard to migrate your app; unless you’re using an open-source framework like Cloud Foundry, it’s a little hard to migrate a Platform-as-a-Service app from one cloud to another. So, make sure you trust and like your cloud provider before you choose it.
And then finally the performance at scale can be an issue. Performance at scale—so say that Jane the developer had a Platform-as-a-Service proof-of-concept app from that conference, and then she released it to 10,000 people the next day. It definitely won’t have the same in and out performance as if it was running on a dedicated bare metal server, for example. So, that’s a consideration to have.