Key idea
Every hosting option splits the work into layers, from hardware at the bottom to your data at the top. The more layers the provider manages, the less you can change, and the less you have to look after.
Who manages each layer
Reading the ladder
Pick a column and read it top to bottom: the cells marked You are your job, every day, for as long as the app runs.
- IaaS (infrastructure as a service) rents you a machine, usually a virtual one. You install and patch the operating system, install your language's runtime, run your app and keep it running. Full control, full to-do list.
- PaaS (platform as a service) takes your code, or a packaged image of it, and runs it. The provider looks after the machines, the operating system and the runtime. You write the app and own its data.
- SaaS (software as a service) is finished software you log into, like a hosted email or accounting tool. You don't run any code; you manage your own data and who can see it.
"Managed" still means someone's job
On an IaaS machine, a security fix for the operating system is released, and nothing happens until you install it. On a PaaS, the provider does that for you. That's the trade: you give up choosing every detail of the machine, and in return the tedious, easy-to-forget work isn't yours.
One layer never moves to the provider, even on SaaS: your data, including who you let at it. A leaked password or a deleted table is your problem on every column of the ladder.
Which one fits
- You're shipping a web app or API and want to spend your time on the product: PaaS.
- You need something the platform can't do, like a custom operating system setting or special hardware: IaaS.
- The job is already solved by a product you can sign up for, like email or a CRM: SaaS.
Many teams use all three at once: their own app on a PaaS, a database from a hosting provider, and SaaS for email and payments.
Check yourself