1.2 KiB
1.2 KiB
Annexe A2 — Estimation de charge
4 scénarios d'usage
| Scénario | Utilisateurs simultanés | Workers Gunicorn | RAM recommandée | vCPU |
|---|---|---|---|---|
| Développement local | 2–5 | 1 (serveur Flask dev) | 512 Mo | 1 |
| Usage promo ydays | 10–30 | 4 (formule 2×2+1≈5, arrondi à 4 threads×2) | 1 Go | 2 |
| Déploiement département | 50–100 | 9 (2×4+1) | 2 Go | 4 |
| Pic événementiel | 100–200 | 9–17 selon CPU disponible | 4 Go | 4–8 |
Formule appliquée
workers = 2 × CPU + 1 (formule standard Gunicorn). Configuration retenue
en production : 4 workers, classe gthread, 2 threads par worker
(web/Dockerfile : gunicorn --workers=4 --worker-class=gthread --threads=2 --bind=0.0.0.0:5000 app:app), dimensionnée pour le scénario
« usage promo ydays », le plus représentatif de l'usage réel actuel du
projet.
Disponibilité
restart: unless-stopped sur tous les services Docker (redémarrage
automatique en cas de crash), healthcheck MariaDB avec 6 tentatives
espacées de 10 s avant que Flask ne tente de se connecter (depends_on: condition: service_healthy dans docker-compose.yml), TLS/HTTP2 géré
automatiquement par Caddy (renouvellement Let's Encrypt sans intervention).