14.3 — Hébergement
🎯 Objectif : choisir un hébergement adapté à ton projet — pas le plus cool, ni le moins cher, ni celui qui revient le plus dans les podcasts. Le bon est celui qui correspond à ta charge, ton équipe et ton budget.
À l'issue de cet axe, tu sauras :
- Distinguer Serverless / PaaS / IaaS / VPS et leurs trade-offs
- Connaître les acteurs majeurs 2026 et leur niche
- Calculer le coût total (TCO) au-delà du prix de surface
- Configurer un VPS solide (Caddy + systemd + UFW)
- Anticiper le vendor lock-in et les chemins de sortie
Confirmé
La pyramide des abstractions
Section intitulée « La pyramide des abstractions »flowchart TB
Edge[Edge / Serverless<br/>Vercel, Cloudflare Workers]
PaaS[PaaS<br/>Render, Fly.io, Railway, Heroku]
Container[Container Orchestrator<br/>ECS, Cloud Run, K8s managé]
IaaS[IaaS — VM<br/>EC2, Hetzner CCX, OVH]
Bare[Bare-metal / colo]
Edge --> PaaS --> Container --> IaaS --> Bare | Niveau | Ce que tu gères | Ce qui est géré pour toi |
|---|---|---|
| Edge / Serverless | Code | Tout (runtime, scale, OS, réseau) |
| PaaS | Code + config minimale | OS, runtime, scale, TLS |
| Container | Image + manifests | OS, runtime |
| IaaS | OS + tout au-dessus | Hardware, réseau de base |
| VPS | Idem IaaS — souvent plus simple à provisionner | — |
| Bare-metal | Tout, vraiment tout | Le câble |
Règle pratique : commence aussi haut que possible. Tu redescends d’un cran quand le coût unitaire ou les contraintes l’imposent.
Serverless / Edge — pour démarrer petit ou scaler partout
Section intitulée « Serverless / Edge — pour démarrer petit ou scaler partout »| Acteur 2026 | Force |
|---|---|
| Vercel | Next.js zero-config, ISR, preview PR, edge functions |
| Cloudflare Workers + Pages | Edge mondial, R2 / D1 / Durable Objects, prix imbattable |
| Netlify | Frontend statique + serverless functions |
| Deno Deploy | TS / Deno natif, ergonomie excellente |
| AWS Lambda + API Gateway / CloudFront Functions | Brique de base AWS, intégration native |
Quand l’utiliser :
- Site statique / marketing → Cloudflare Pages, Vercel, Netlify.
- API frontend Next.js / Nuxt → Vercel ou Cloudflare Pages.
- Job ponctuel (webhook, cron léger) → Lambda, Workers.
- Charge en pics ultra-variables (5 req/h ou 5000 req/s) → Workers.
Limites :
- Cold start : 50-300 ms ajoutés sur la 1ʳᵉ requête après inactivité (sauf Cloudflare Workers, isolat V8 < 1 ms).
- Limites d’exécution : Vercel ~60 s par fonction (configurable), Lambda 15 min.
- Pas de connexions persistantes simples (WebSockets, long polling) → Durable Objects ou plate-forme dédiée.
- Coût explose au-delà d’un certain volume — calcule le seuil.
PaaS — équilibre simplicité / contrôle
Section intitulée « PaaS — équilibre simplicité / contrôle »PaaS = tu déploies une image Docker ou un repo Git, la plateforme s’occupe du reste (TLS, scaling, restart).
| Acteur 2026 | Force | Faiblesse |
|---|---|---|
| Render | UX excellente, Postgres / Redis managé | Régions limitées |
| Fly.io | Multi-région native, anycast IP, machines à la demande | Plus de friction au début |
| Railway | Setup en 30 s, DB managées | Tarification à l’usage parfois imprévisible |
| Heroku | Le pionnier, encore solide | Cher, écosystème vieillissant |
| Coolify | Self-hosted PaaS open source | Tu héberges la PaaS toi-même |
| Dokploy | Alternative OSS récente à Coolify | Communauté plus petite |
Quand l’utiliser :
- API + DB pour un SaaS B2B small/mid.
- Side-project qui décolle, tu veux pas gérer K8s.
- Migration d’une app monolithique simple depuis Heroku.
Quand basculer ailleurs :
- Tu veux du multi-cloud ou multi-région profond.
- Tu paies plus de 1500 €/mois et tu as une équipe ops → IaaS.
- Tu as un compliance fort (HDS santé, DGSI) → IaaS souverain.
IaaS — VM dans le cloud
Section intitulée « IaaS — VM dans le cloud »| Acteur | Région | Force |
|---|---|---|
| AWS | Mondial | Catalogue le plus large, écosystème massif |
| GCP | Mondial | BigQuery, ML, K8s natif (GKE) |
| Azure | Mondial | Intégration Microsoft, AD |
| OVH | Europe | Souverain FR/UE, prix corrects |
| Scaleway | Europe | Souverain FR, simple |
| Hetzner | Europe (DE/FI) | Imbattable côté prix : CCX23 (4 vCPU, 16 GB) ~30 €/mois |
| Cloudflare | Mondial edge | R2 (S3 sans egress), Workers, D1 |
| DigitalOcean | Mondial | UX simple, droplets éprouvés |
Quand l’utiliser :
- Charge stable et significative (le coût unitaire bat la PaaS).
- Compliance fort (RGPD strict, données santé).
- Tu as une équipe DevOps qui veut le contrôle.
- Tu fais beaucoup d’egress (Cloudflare R2 ou Hetzner battent AWS S3 d’un facteur 5).
VPS classique — la voie sous-estimée
Section intitulée « VPS classique — la voie sous-estimée »Un VPS Hetzner CCX23 (4 vCPU dédiés, 16 GB) à ~30 €/mois fait tourner :
- 1 backend Node/Hono à 500 req/s.
- Postgres 17.
- Redis.
- Caddy reverse proxy avec TLS auto.
- 4-5 conteneurs Docker.
Un même setup en serverless coûte 200-500 €/mois pour la même charge.
Stack VPS sain en 2026
Section intitulée « Stack VPS sain en 2026 »Internet │ ▼┌──────────────┐│ UFW │ Firewall — seuls 22, 80, 443 ouverts└──────┬───────┘ │ ▼┌──────────────┐│ Caddy │ Reverse proxy + TLS auto via Let's Encrypt└──────┬───────┘ │ ▼┌──────────────┐ ┌──────────────┐ ┌──────────────┐│ app (systemd │ │ postgres │ │ redis ││ ou docker) │ │ │ │ │└──────────────┘ └──────────────┘ └──────────────┘Caddy — TLS auto en 8 lignes
Section intitulée « Caddy — TLS auto en 8 lignes »api.example.com { reverse_proxy localhost:3000 encode zstd gzip log { output file /var/log/caddy/access.log }}Caddy provisionne et renouvelle automatiquement le certificat Let’s Encrypt. Aucune config TLS à la main, aucun cron à monter.
systemd unit pour ton service
Section intitulée « systemd unit pour ton service »[Unit]Description=MyAppAfter=network.target
[Service]Type=simpleUser=myappWorkingDirectory=/opt/myappExecStart=/usr/bin/node --enable-source-maps server.jsEnvironmentFile=/opt/myapp/.envRestart=on-failureRestartSec=5LimitNOFILE=65536NoNewPrivileges=trueProtectSystem=strictReadWritePaths=/var/log/myapp
[Install]WantedBy=multi-user.targetsudo systemctl daemon-reloadsudo systemctl enable --now myappsudo systemctl status myappjournalctl -u myapp -fMise à jour via SSH + Git
Section intitulée « Mise à jour via SSH + Git »Workflow zero-downtime simple : pm2, systemctl restart après build, ou un déploiement bleu/vert avec deux services qui alternent. Encore plus simple : Coolify ou Dokploy sur ton VPS = PaaS-like sans frais récurrents externes.
Edge & multi-région
Section intitulée « Edge & multi-région »Cas d’usage : utilisateurs partout dans le monde. La latence Paris ↔ Tokyo est ~250 ms. Inacceptable pour une API critique japonaise.
| Stratégie | Outil 2026 |
|---|---|
| CDN edge pour assets statiques | Cloudflare, Fastly, CloudFront, Bunny |
| Edge functions pour logique légère | Cloudflare Workers, Vercel Edge, Netlify Edge |
| Multi-région app | Fly.io regions, AWS multi-AZ + multi-region |
| Read replica par région | Postgres + logical replication, Cloudflare D1, PlanetScale |
Attention au coût d’écriture multi-région : un write Tokyo qui doit synchroniser Paris ajoute toujours la latence. Souvent on garde un single-writer Europe + reads partout.
Calculer le TCO réel
Section intitulée « Calculer le TCO réel »Le prix affiché ne dit pas tout. Liste à cocher avant de signer :
| Poste | À ajouter |
|---|---|
| Compute (CPU, RAM) | Affiché |
| Egress (sortie réseau) | Souvent caché, ~0,09 $/GB sur AWS |
| Stockage (volumes, S3) | Affiché |
| Base de données managée | 2-3× le prix d’une auto-hébergée |
| Backups | Stockage redondant |
| Logs / observabilité | Datadog, Sentry, etc. — peut doubler la facture |
| Support payant | $100-15 000 / mois |
| Temps humain | 1 jour de dev = ~600 €. 1 incident = ~3 000 €. |
| Risque de lock-in | Migration coûte 1-3 mois de dev |
Le coût humain bat presque toujours le coût cloud sur les projets early-stage. Choisis l’option qui te coûte 0 jour de gestion.
Vendor lock-in — anticipe la sortie
Section intitulée « Vendor lock-in — anticipe la sortie »| Plate-forme | Niveau de lock | Échappatoire |
|---|---|---|
| Docker image + PaaS | 🟢 Faible | Toute autre PaaS prend la même image |
| Serverless avec API spécifique (Lambda, Workers) | 🟡 Moyen | Refactorer pour Hono / Hono adapter |
| BaaS (Firebase, Supabase) | 🟠 Fort | Schéma de DB exportable, mais Auth / Functions à refaire |
| AWS-only (DynamoDB, SQS, EventBridge…) | 🔴 Très fort | Réécriture quasi complète |
Stratégie défensive : encapsuler les services tiers derrière une interface (un module storage, email, auth). Le jour du switch, tu changes l’implémentation.
Sécurité minimale d’un VPS
Section intitulée « Sécurité minimale d’un VPS »# Firewall — n'autoriser que SSH + HTTP/HTTPSsudo ufw default deny incomingsudo ufw allow 22/tcpsudo ufw allow 80/tcpsudo ufw allow 443/tcpsudo ufw enable
# SSH par clé uniquementsudo nano /etc/ssh/sshd_config# PasswordAuthentication no# PermitRootLogin nosudo systemctl reload ssh
# fail2ban — bloque les IPs qui tentent du brute SSHsudo apt install fail2bansudo systemctl enable --now fail2ban
# Mises à jour automatiques de sécuritésudo apt install unattended-upgradessudo dpkg-reconfigure -plow unattended-upgradesTâches récurrentes :
apt upgrademensuel (ou unattended-upgrades).- Backup DB chiffré ailleurs (S3 + cron + restic / borg).
- Surveillance basique (Uptime Kuma sur un autre VPS, ou Better Stack gratuit).
- Rotation des clés SSH 1×/an.
Choisir — l’arbre de décision
Section intitulée « Choisir — l’arbre de décision »Projet perso / side-project / MVP → Vercel / Cloudflare Pages / Render free tier (€0–10/mois)
API + DB pour un SaaS débutant (< 10 k utilisateurs) → Render / Fly.io / Railway (€20–80/mois)
API stable, équipe sans ops, ~€100–500/mois → PaaS (Render, Fly) ou Cloud Run / ECS Fargate → Garder Postgres managé (Neon, Supabase, RDS)
Charge significative, équipe avec sens DevOps → VPS Hetzner ou Scaleway (€30–200/mois, 1-3 machines) → Caddy + systemd + Postgres self-hosted
Compliance fort (santé, banque, gov) → IaaS souverain (OVH, Scaleway, Outscale, OVH HDS) → Probablement K8s ou ECS
Géant cible — > 10 M utilisateurs / multi-région → AWS / GCP, K8s ou serverless pousséAuto-évaluation
Section intitulée « Auto-évaluation »Pour aller plus loin
Section intitulée « Pour aller plus loin »- Cost of Cloud, a Trillion Dollar Paradox — a16z (2021), toujours d’actualité
- Hetzner CCX line — hetzner.com/cloud
- Caddy — caddyserver.com
- Fly.io machines — fly.io/docs/machines
- Cloudflare Workers — developers.cloudflare.com/workers
- DigitalOcean Tutorials — guides VPS très complets
Suite : 14.4 — Conteneurs en production pour l’industrialisation Docker / Kubernetes.