Home / Glossary / PaaS (Platform as a Service)
Tech & ITPaaS (Platform as a Service)
By Sitraka Forler · Lecturer, Durham Business SchoolUpdated 3 October 2026 About this site
A managed platform where you deploy your own code and the provider runs the servers.
You bring the application; the provider runs the operating system, the language runtime (such as Python itself), scaling and hardware. Heroku, Google App Engine and Azure App Service are PaaS, and so is Vercel, which hosts EcoFinLearn. Do not confuse it with SaaS: on a PaaS you still write, deploy and fix your own code, and its bugs, data and configuration remain your job.
The intuition
Platform as a service sits between renting raw machines and renting a finished application. You write the code; the provider supplies everything it needs to run: the operating system, the language runtime, a web server, scaling, TLS certificates, logs and usually a managed database. You push your code and the platform builds and serves it. Heroku popularised the model, Vercel hosts this site, and Google App Engine and Azure App Service are the equivalents inside the big clouds.
The mental picture is a hotel kitchen you can cook in. The ovens, the dishwasher and the fire inspection belong to the hotel; the recipe and the ingredients are yours. If your dish is bad, that is your fault; if the oven breaks at midnight, the hotel's engineer comes. For a data team that wants to expose a pricing model as an HTTP endpoint, a PaaS means a working URL in an afternoon with no server to patch, at the price of accepting the platform's conventions about ports, start-up commands and file storage.
The shared-responsibility line moves accordingly. On IaaS you patch the operating system; on PaaS the provider does, but the libraries pinned in your requirements file, your application's bugs, its secrets and its data remain yours. The classic surprises are the ones that follow from not owning the machine: the local filesystem is wiped on every deploy, processes are restarted without warning, and anything the application must remember has to live in a database or object storage the platform provides.
Example
# inside the git repo of your app: creates the app and a remote called heroku heroku create # the platform builds, runs and serves your code git push heroku main
Deploying a bond-pricing API to a PaaS, and hitting the stateless-filesystem rule
- A quant team has a Flask application in a Git repository: app.py exposes POST /price, which takes a bond's cash flows and a yield curve and returns a clean price. requirements.txt pins flask and numpy; a Procfile reads web: gunicorn app:app, telling the platform how to start the process.
- Create the application and deploy: from the repository, run heroku create bond-pricer then git push heroku main. The platform detects Python, installs the pinned packages, starts gunicorn on the port it chooses, and prints a URL such as https://bond-pricer.herokuapp.com. On Vercel the equivalent is connecting the repository and letting every push to main deploy automatically.
- Configuration without code changes: the curve provider's API key is set with heroku config:set CURVE_API_KEY=... (or in the Vercel dashboard's Environment Variables). The application reads it with os.environ["CURVE_API_KEY"]. The key never appears in the repository.
- First test: curl -X POST https://bond-pricer.herokuapp.com/price -H "Content-Type: application/json" -d "{...}" returns a price and a 200 status. Logs stream with heroku logs --tail. The platform's TLS certificate, its load balancer and the operating-system patches were never the team's concern.
- What goes wrong: the code caches the downloaded yield curve in a local file, curves/latest.json. After the next deploy the file is gone and the first request fails with FileNotFoundError. PaaS filesystems are ephemeral, so the cache moves to the platform's Redis add-on or to object storage.
- Second surprise: the numpy version pinned in requirements.txt has a security advisory. The platform patched its operating system last night but will not touch your dependencies; the team bumps the pin, pushes, and the platform rebuilds.
A PaaS turns git push into a running service and takes the server off your hands, but your code, your dependencies, your secrets and anything that must survive a restart are still yours to manage.
Common pitfalls
- Writing to the local filesystem for anything that must persist: deploys and restarts wipe it, so uploads, caches and SQLite databases vanish without warning.
- Hard-coding the port or the database address: the platform assigns both at runtime through environment variables, and code that ignores them fails to start.
- Assuming the provider patches your dependencies: it patches the operating system and runtime, not the versions pinned in your requirements file.
- Forgetting the sleep and scaling rules of free or hobby tiers: a nightly job that calls a hobby-tier endpoint can hit a cold start of several seconds or a monthly hours cap.
- Running a long batch job inside the web process: platforms kill requests after a timeout, usually 30 seconds, so a two-minute Monte Carlo belongs in a worker process or a scheduled job.
Frequently asked questions
What is PaaS with an example?
Platform as a service is a managed environment where you deploy your own code and the provider runs the servers, runtime, scaling and networking. Heroku is the classic example: git push heroku main builds and serves a Python or Node application. Vercel, Google App Engine, Azure App Service and AWS Elastic Beanstalk work on the same principle.
What is the difference between PaaS and SaaS?
On a PaaS you still write, deploy and maintain an application; the provider runs the platform beneath it. With SaaS the provider runs the whole application and you only use it. Heroku hosting your pricing API is PaaS; Microsoft 365 is SaaS. If there is a bug in the application code, on PaaS it is yours to fix, on SaaS it is the vendor's.
What is the difference between PaaS and IaaS?
IaaS rents virtual machines you administer: you install the operating system patches, the runtime and the web server, as on Amazon EC2. PaaS does all of that for you and accepts code instead of a machine image. IaaS gives more control, for example custom kernels or GPUs; PaaS gives less work and faster deployment.
Is Vercel a PaaS?
Yes. Vercel takes a Git repository, builds the application on every push, serves it with its own certificates and global network, and runs server-side code as managed functions. You never see or patch a server. It is specialised for front-end frameworks such as Next.js, which is why EcoFinLearn runs there, but the model is the same as Heroku's.