Deployment Platforms
Cloudflare, Vercel, Netlify, AWS, Azure, GCP — the decision that shapes almost every other infrastructure choice.
7.8.1Definition
A deployment platform is the hosting service a product actually runs on in production — ranging from fully-managed edge platforms (Cloudflare Pages, Vercel, Netlify) that abstract away servers entirely, to full cloud providers (AWS, Azure, GCP) offering granular control over every layer of infrastructure.
7.8.2Why It Exists
Every product needs to run somewhere, and the right choice depends heavily on the product's actual requirements — a static marketing site and a stateful enterprise application have almost nothing in common operationally. This category exists because "just use AWS for everything" is frequently the wrong default: much of the market has moved toward managed platforms specifically to avoid infrastructure complexity that most products don't actually need.
7.8.3Platform Comparison
| Platform type | Control | Best fit |
|---|---|---|
| Edge/Jamstack (Cloudflare Pages, Vercel, Netlify) | Low — managed, opinionated | Static sites, frontend apps, small-to-medium backends via serverless functions |
| PaaS (Render, Railway, Heroku) | Medium — managed servers with more flexibility | Traditional backend apps needing a persistent server process |
| Full cloud (AWS, Azure, GCP) | High — full infrastructure control | Enterprise-scale systems (2.11) with specific compliance or architecture needs |
7.8.4Common Mistakes
- Defaulting to full cloud infrastructure for a simple product, taking on configuration and operational overhead a managed platform would have eliminated entirely.
- No environment variable/secrets management for the chosen platform, exposing sensitive configuration in the codebase itself (7.1).
- Ignoring platform-specific cold-start or scaling characteristics until they surface as a production performance problem.
7.8.5Best Practices
- Match platform choice to actual requirements — start with the simplest managed option that meets them, not the most powerful one available.
- Use the platform's native environment variable/secrets system rather than hardcoding configuration.
- Understand the chosen platform's scaling model (cold starts, concurrency limits) before it's tested by real production load.