1.8 KiB
1.8 KiB
ADR-004 : CDN
Statut : Accepté Date : 2025-01-25
Contexte
Distribution audio HLS à 10M d'utilisateurs, besoin de performance, coût maîtrisé, et souveraineté : pas de dépendance à un service commercial tiers.
Décision
NGINX auto-hébergé sur OVH comme cache HLS, avec OVH Object Storage en origin.
Alternatives considérées
| Solution | Coût MVP/mois | Souveraineté | Setup | Dépendance |
|---|---|---|---|---|
| NGINX self-hosted | ~14€ | 100% FR | 2h | Aucune |
| CDN commercial externe | ~1 000€ | Slovénie | 15 min | Forte |
| OVHcloud CDN | ~50-200€ | 100% FR | 1h | Moyenne |
| Cloudflare | 0-5 000€ | US | 5 min | Forte |
| CloudFront | ~9 750€ | US (AWS) | 1h | Très forte |
Justification
- Souveraineté : 100% français (OVH), 100% contrôlé, zéro dépendance commerciale
- Open-source : NGINX sous licence BSD, stack entièrement libre
- Coût : ~14€/mois MVP (VPS inclus), scaling linéaire et prévisible
- Performance : Cache multiplexing 1→1000 (1 Mbps origin → 1 Gbps clients)
- Conformité RGPD : Données hébergées en France
Architecture
Clients
↓
NGINX Cache Proxy (OVH VPS Essential)
├─ Cache RAM disk (2GB)
├─ TTL .m3u8: 5s
└─ TTL .ts: 7 jours
↓
OVH Object Storage (origin)
Évolution prévue
- Phase 1 (0-20K users) : NGINX mono-région
- Phase 2 (20-100K users) : NGINX multi-région (Gravelines + Strasbourg) + GeoDNS
- Phase 3 (100K+) : Évaluation CDN managé européen si ROI justifié
Conséquences
- Configuration NGINX avec
proxy_cache_pathet règles de TTL - RAM disk
/mnt/ramdiskpour performance maximale - Monitoring bande passante et taux de cache hit
- Sécurité : token authentication pour protéger les segments HLS