# 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 1. **Phase 1** (0-20K users) : NGINX mono-région 2. **Phase 2** (20-100K users) : NGINX multi-région (Gravelines + Strasbourg) + GeoDNS 3. **Phase 3** (100K+) : Évaluation CDN managé européen si ROI justifié ## Conséquences - Configuration NGINX avec `proxy_cache_path` et règles de TTL - RAM disk `/mnt/ramdisk` pour performance maximale - Monitoring bande passante et taux de cache hit - Sécurité : token authentication pour protéger les segments HLS