The basics
What is a platform as a service?
A platform as a service (PaaS) is a cloud service that runs your application for you. You give it your code or a container image; it builds it, deploys it, keeps it running, scales it with traffic, and gives you a URL with a certificate. You don't manage servers.
Updated
PaaS versus IaaS and SaaS
Cloud services are usually split by how much of the stack the provider runs for you. The more it runs, the less you have to operate, and the less you can change.
- IaaS (infrastructure as a service) rents you virtual machines, networks and disks. You install the runtime, deploy the app, patch the operating system and set up scaling. Examples: Amazon EC2, Google Compute Engine, Azure Virtual Machines.
- PaaS (platform as a service) runs your code on infrastructure it manages. You own the application; it owns the plumbing. Examples are the ten options in our ranking.
- SaaS (software as a service) is a finished application you use rather than build: email, a CRM, a ticketing tool.
Who runs what
| Layer | IaaS | PaaS | SaaS |
|---|---|---|---|
| Your application code | You | You | Vendor |
| Runtime, build and deploy | You | Platform | Vendor |
| Scaling, load balancing, TLS | You | Platform | Vendor |
| Operating system and patches | You | Platform | Vendor |
| Servers, network, storage | Vendor | Platform (or your cloud) | Vendor |
What a PaaS handles for you
The details differ by platform, but a PaaS worth the name takes most of this off your plate:
- Builds. It turns a Git push into a runnable image, from a Dockerfile or by detecting your language (buildpacks).
- Deploys and rollbacks. New versions go out without downtime, and you can go back to the last one.
- Scaling. More instances when traffic rises, fewer when it falls, sometimes down to zero.
- Networking. Domains, TLS certificates, load balancing and private networking between services.
- Operations. Logs, metrics, health checks, restarts, and operating system patches.
- Environments. Staging, and often a preview environment for every pull request.
- Data services. Many offer managed Postgres, Redis and the like, or connect to your cloud's.
What you still own
Your code, its dependencies, its configuration and secrets, your data model and backups policy, and the cost of what you run. A PaaS makes these easier to manage; it doesn't make them go away.
The tradeoffs of hosting model
The biggest split among PaaS options today is where your apps actually run. Vendor-hosted platforms run your apps on infrastructure they operate: nothing else to own, but your data and network live in their account. Own-cloud platforms (often called bring your own cloud, or BYOC) deploy into an AWS, Google Cloud or Azure account you own: the same push-to-deploy workflow, but the data, the network and the cloud bill are yours.
Vendor-hosted is simpler
- One account, one bill.
- Nothing to configure in a cloud console.
- Usually the cheapest way to run one small app.
Own-cloud gives you control
- Data stays in your account and region.
- Cloud credits and discounts apply.
- Infrastructure stays if you leave the platform.
The full comparison, with the cases where each wins, is in vendor-hosted PaaS vs PaaS in your own cloud account.
When a PaaS is the wrong tool
- You need control of the operating system or kernel, or unusual hardware the platform doesn't offer.
- You already have a platform team running Kubernetes well, and a PaaS would add a layer without removing work.
- Your workload is mostly a static site, which a CDN or static host serves for less.