57 lines
1.8 KiB
Markdown
57 lines
1.8 KiB
Markdown
# 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
|