Contact

What is PaaS (Platform as a Service)?

Definition

PaaS (Platform as a Service) is a cloud service model in which developers deploy and run their applications without managing servers, operating systems or networks. The provider runs the runtime environment, scaling, patching and often supporting services such as managed databases, while the customer controls the application and its configuration. PaaS sits between IaaS, which rents raw infrastructure such as virtual machines, and SaaS, which delivers finished software.

Also known as: Platform as a Service, IaaS, Infrastructure as a Service, application platform

Table comparing who manages each layer in on-premises, IaaS, PaaS and SaaS models, with the PaaS column highlighted

Where responsibility changes hands

NIST Special Publication 800-145, the US National Institute of Standards and Technology's 2011 definition of cloud computing, names three service models: SaaS, PaaS and IaaS. What separates them is not the technology but the line where the provider's responsibility ends and yours begins.

  • IaaS (Infrastructure as a Service): you rent virtual machines, block storage and networks. Installing, patching and securing the operating system and everything above it is your job. A VPS is the most familiar form.
  • PaaS: you hand over code or a container image. The provider manages the operating system, runtime, load balancing and scaling; you manage the application and its settings.
  • SaaS: you use a finished product, such as email or accounting software, and only manage your own data and users. See SaaS.

A useful shorthand: with IaaS you get a computer, with PaaS you get a place to run your app, with SaaS you get the app.

What a deploy looks like on a platform

  1. A developer pushes to a Git repository or uploads a container image.
  2. The platform detects the language or reads the image, installs dependencies and builds the app.
  3. Configuration such as database URLs and API keys comes from environment variables rather than files baked into the code.
  4. The platform starts one or more instances, puts a load balancer and TLS certificate in front, and routes traffic.
  5. Instances scale up or down manually or automatically, and logs and basic metrics appear in a dashboard.

Heroku, Google App Engine, Azure App Service and AWS Elastic Beanstalk are long-standing examples, joined by newer platforms built around web front ends. Serverless function platforms push the same idea further by removing even the notion of a running instance.

The rules a platform imposes

PaaS convenience depends on writing the app the way the platform expects. Local disk is usually ephemeral, so uploads belong in object storage. Long-running work can hit request timeouts and should move to a background job queue. Because the app may run as several instances at once, session state must live in a shared store rather than in memory. Apps that follow these rules from the start also move more easily to another platform or to your own infrastructure later.

Gains and costs

You gainYou give up
No OS patching or server maintenanceControl over OS-level configuration and network details
Fast setup and simple scaling for a small teamPrice efficiency at scale: bills can outgrow equivalent IaaS capacity
Managed add-ons for databases, queues and cachesPortability, when the app depends on platform-specific services

Packaging the app as a Docker image and keeping configuration in environment variables are the cheapest insurance against lock-in. For projects with data residency requirements, check which regions the platform can actually run in before committing.

Related terms

← Back to the glossary