Dimension
Cloudflare edge
On a VPS
Latency model
Code runs in 330+ cities, close to the user. Cold start < 5 ms.
Single region. Users on other continents pay the round-trip tax every request.
Scaling
Scales to zero and to millions of requests automatically.
You size a box. Either you overpay for idle headroom or you fall over on a spike.
Ops surface
No OS, no SSH, no patches, no fail2ban, no logrotate.
You are the sysadmin. Kernel updates, certs, firewalls, backups — all yours.
Security posture
DDoS, WAF, TLS, bot management included by default.
You configure it. One forgotten ufw rule is a bad week.
Deploy model
git push → live on the edge in seconds. Instant rollback.
SSH + rsync / Docker / Ansible / systemd. Deploy scripts nobody wants to touch.
Pricing shape
Pay per request. Idle costs nothing.
Pay 24/7 whether traffic is 0 or 10k req/s.
Global data
D1 read replicas, KV, R2 — globally distributed primitives.
One Postgres on one disk in one datacenter. Replicas are your problem.
Blast radius
A Worker crash affects one request. Node dies → traffic routes elsewhere.
The box goes down → the site goes down. Full stop until you fix it.