CDN Nedir?
Content Delivery Network (CDN), statik içerikleri (görsel, video, dosya) dünya genelinde dağıtılmış sunuculardan kullanıcıya en yakın noktadan sunan sistemdir. 2026 itibarıyla CDN kullanımı mobil uygulama geliştirmenin standart parçasıdır.
Neden Gerekli?
- Hız: Kullanıcıya yakın sunucu = düşük latency
- Ölçeklenebilirlik: Yoğun trafik dağıtılır
- Güvenilirlik: Bir sunucu çökerse diğeri devam eder
- Maliyet: Origin sunucu yükü azalır
- Güvenlik: DDoS koruması (özellikle Cloudflare)
Popüler CDN Sağlayıcıları
| Sağlayıcı | Özellik | Fiyat |
|---|---|---|
| Cloudflare | Ücretsiz plan, güvenlik, R2 storage | Free plan var |
| AWS CloudFront | AWS ekosistemi, S3 entegrasyonu | Kullanıma dayalı |
| Bunny CDN | Ucuz, hızlı, basit | $0.01/GB'dan |
| Fastly | Edge computing, gerçek zamanlı | Enterprise |
| KeyCDN | Basit fiyatlandırma | $0.04/GB |
Mobil Uygulamada CDN Kullanımı
Görsel Asset'ler
- Profil fotoğrafları
- Ürün görselleri
- Uygulama içi banner/kampanya görselleri
- User generated content
Statik Dosyalar
- Font dosyaları
- Konfigürasyon JSON'ları
- Ses dosyaları
- Video içerik
OTA Updates
- JavaScript bundle (React Native - CodePush, EAS Update)
- Asset güncellemeleri
- Hot reload bundle'ları
Image Optimization
CDN'ler genellikle otomatik görsel optimizasyonu sunar:
- Format dönüştürme: WebP, AVIF (daha küçük dosya boyutu)
- Boyut uyarlama: Cihaz ekranına göre resize (?width=400)
- Kalite ayarı: Ağ hızına göre kalite (?quality=80)
- Lazy loading: Görünür olduğunda yükle
- Blur placeholder: Düşük çözünürlük placeholder → yüksek çözünürlük
Cloudflare Images
- On-the-fly resize ve format dönüştürme
- Variants ile önceden tanımlı boyutlar
- $5/100K image transformation
Imgix / Cloudinary
- Gelişmiş görsel işleme API'ları
- Face detection ile akıllı crop
- Watermark, overlay desteği
Cache Stratejisi
Cache-Control Header'ları
- max-age: Ne kadar süre cache'de kalsın
- immutable: Asla değişmeyecek (versioned dosyalar)
- no-cache: Her seferde revalidate
- stale-while-revalidate: Eski veriyi göster, arka planda güncelle
Öneri
- Statik asset'ler: Uzun cache (1 yıl) + dosya adında hash
- API yanıtları: Kısa cache (5-60 saniye) veya no-cache
- Kullanıcı içeriği: Kısa cache + purge mekanizması
Cloudflare R2
- S3 uyumlu object storage
- Egress (çıkış) ücretsiz (büyük avantaj - S3'te pahalı)
- Custom domain desteği
- Workers ile edge işleme
- 10GB ücretsiz depolama
Best Practices
- Görselleri CDN'den sun, origin sunucudan değil
- Responsive image: Farklı boyutlar oluştur (thumbnail, medium, full)
- Lazy loading uygula (ekranda görünmeyeni yükleme)
- Placeholder/blur-up tekniği (düşük çözünürlük → yüksek çözünürlük)
- Cache invalidation stratejisi belirle
- Dosya adlarında content hash kullan (cache busting)
- Custom domain kullan (.r2.dev gibi varsayılan domain'ler bazı platformlarda sorun çıkarabilir)
CDN kullanmamak, mobil uygulamada en yaygın performans hatalarından biridir. İlk günden CDN entegrasyonu yapın.