Performance & Scalability serimizin bir parçası
Tam kılavuzu okuyunCDN Performans Optimizasyonu: Daha Hızlı Küresel Teslimat İçin Tam Kılavuz
Gecikme süresindeki her 100 ms'lik iyileşme, e-Ticaret dönüşüm oranlarını %1,1 artırır. Ayda 1 milyon dolar kazanan bir mağaza için bu 100 ms'lik iyileşme, yılda 132.000 dolar ek gelir anlamına gelir. CDN optimizasyonu teknik olarak sahip olunması güzel bir şey değildir; doğrudan bir gelir aracıdır.
Bu kılavuz, web uygulamaları, e-ticaret mağazaları ve ERP sistemleri için CDN mimarisini, önbelleğe alma stratejilerini, uç bilişimi ve performans ayarlamayı kapsar.
Önemli Çıkarımlar
- Uygun önbellek başlıkları tek başına kaynak sunucu yükünü %60-80 oranında azaltabilir
- CDN dönüşümleri aracılığıyla görüntü optimizasyonu, sıfır kod değişikliğiyle sayfa ağırlığını %40-60 oranında azaltır
- Edge bilişim, API mantığını kullanıcılara yaklaştırarak önbelleğe alınan yanıtlar için gecikmeyi 200 ms'den 20 ms'ye düşürür
- Çoklu CDN stratejileri, küresel hedef kitleler için yük devretme ve coğrafi optimizasyon sağlar
CDN Mimarisinin Temelleri
CDN'ler Nasıl Çalışır?
CDN, kullanıcıya en yakın konumlardaki içeriği önbelleğe alan ve sunan, küresel olarak dağıtılan bir sunucu ağıdır.
User in Tokyo --> CDN Edge (Tokyo, 5ms) --> [Cache HIT] --> Response
User in London --> CDN Edge (London, 5ms) --> [Cache MISS] --> Origin (US-East, +120ms) --> Cache + Response
User in London --> CDN Edge (London, 5ms) --> [Cache HIT] --> Response (subsequent requests)
Neler Önbelleğe Alınır?
| İçerik Türü | Önbellek Süresi | Önbellek Kontrolü Başlığı |
|---|---|---|
| Statik varlıklar (JS, CSS) | 1 yıl (değişmez) | KOD0 |
| Resimler | 30 gün | KOD0 |
| Yazı Tipleri | 1 yıl | KOD0 |
| HTML sayfaları (statik) | 5 dakika | KOD0 |
| API yanıtları (genel) | 1-5 dakika | KOD0 |
| API yanıtları (özel) | Önbelleğe almayın | KOD0 |
Önbellek Kontrol Başlıkları
Next.js Önbellek Yapılandırması
// next.config.ts
const nextConfig = {
async headers() {
return [
{
source: '/_next/static/:path*',
headers: [
{
key: 'Cache-Control',
value: 'public, max-age=31536000, immutable',
},
],
},
{
source: '/images/:path*',
headers: [
{
key: 'Cache-Control',
value: 'public, max-age=2592000',
},
],
},
];
},
};
Nginx Önbellek Başlıkları
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff2)$ {
expires 365d;
add_header Cache-Control "public, immutable";
add_header Vary "Accept-Encoding";
}
location ~* \.html$ {
expires 5m;
add_header Cache-Control "public, must-revalidate";
}
# API responses - let the application control caching
location /api/ {
proxy_pass http://backend;
proxy_cache_bypass $http_authorization;
}
Görüntü Optimizasyonu
Görseller çoğu web sitesinde sayfa ağırlığının %50-70'ini oluşturur. CDN tabanlı görüntü optimizasyonu, oluşturma sırasında görüntü işleme ihtiyacını ortadan kaldırır.
Cloudflare Görüntü Dönüşümleri
<!-- Original: 2.4 MB JPEG -->
<!-- Optimized: 180 KB WebP, properly sized -->
<img
src="/cdn-cgi/image/width=800,quality=80,format=auto/images/product-hero.jpg"
alt="Product"
width="800"
height="600"
loading="lazy"
/>
CDN'li Next.js Görüntü Bileşeni
// next.config.ts
const nextConfig = {
images: {
loader: 'custom',
loaderFile: './lib/image-loader.ts',
},
};
// lib/image-loader.ts
export default function cloudflareLoader({
src,
width,
quality,
}: {
src: string;
width: number;
quality?: number;
}) {
const params = [`width=${width}`, `quality=${quality || 80}`, 'format=auto'];
return `/cdn-cgi/image/${params.join(',')}${src}`;
}
Görüntü Optimizasyon Etkisi
| Metrik | CDN Optimizasyonundan Önce | CDN Optimizasyonundan Sonra |
|---|---|---|
| Ortalama resim boyutu | 850 KB | 120 KB |
| Sayfa ağırlığı (resimler) | 4,2 MB | 680 KB |
| LCP (En Büyük İçerikli Boya) | 3.8s | 1.4s |
| Toplam sayfa yükleme süresi | 5.2s | 2.1s |
Uç Bilgi İşlem
API Önbelleğe Alma için Cloudflare Çalışanları
// worker.js - Cache API responses at the edge
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request));
});
async function handleRequest(request) {
const url = new URL(request.url);
// Only cache GET requests to public API endpoints
if (request.method !== 'GET' || !url.pathname.startsWith('/api/public/')) {
return fetch(request);
}
const cache = caches.default;
const cacheKey = new Request(url.toString(), request);
// Check cache
let response = await cache.match(cacheKey);
if (response) {
return response;
}
// Fetch from origin
response = await fetch(request);
// Clone and cache successful responses
if (response.ok) {
const cachedResponse = new Response(response.body, response);
cachedResponse.headers.set('Cache-Control', 'public, max-age=300');
cachedResponse.headers.set('X-Cache-Status', 'MISS');
event.waitUntil(cache.put(cacheKey, cachedResponse.clone()));
return cachedResponse;
}
return response;
}
E-Ticaret için Edge Kullanım Örnekleri
| Kullanım Örneği | Gecikme İyileştirmesi | Uygulama |
|---|---|---|
| Ürün kataloğu API'si | 200 ms - 5 ms | 5 dakika boyunca uçta önbelleğe alın |
| Coğrafi konum yönlendirmesi | 100 ms - 1 ms | IP aramalı uç çalışan |
| A/B testi | 50 ms - 0 ms | Edge çalışanı varyantı atar |
| Bot tespiti | 100ms - 5ms | Başlangıç noktasından önce sınır mücadelesi |
| Fiyat yerelleştirmesi | 150 ms - 5 ms | Para birimi dönüştürmeyle uç çalışan |
CDN Sağlayıcı Karşılaştırması
| Özellik | Bulut parlaması | AWS CloudFront | hızla | Tavşan CDN |
|---|---|---|---|---|
| Küresel PoP'lar | 310+ | 450+ | 80+ | 114+ |
| Ücretsiz katman | Cömert | 1 TB/ay (12 ay) | Yok | Yok |
| Kenar hesaplama | İşçiler | Lambda@Edge | Hesaplama@Edge | Kenar Komut Dosyası Yazma |
| Görüntü optimizasyonu | Dahili | Lambda'yı gerektirir | Dahili | Dahili |
| WebSocket desteği | Evet | Evet | Evet | Evet |
| DDoS koruması | Dahil | AWS Kalkanı (ekstra) | Dahil | Temel |
| Başlangıç fiyatı | Ücretsiz | Kullanım başına ödeme | 50$/ay | 1$/ay |
Öneri: Çoğu işletme için Cloudflare. Ücretsiz katman cömerttir, uç ağ en büyüğüdür ve Çalışanlar ek altyapı olmadan güçlü uç bilgi işlem sağlar.
Çoklu CDN Stratejileri
Neden Çoklu CDN
Hiçbir CDN her bölgede en iyi performansa sahip değildir. Çoklu CDN stratejisi, kullanıcıları konumlarına göre en iyi performans gösteren CDN'ye yönlendirir:
| Yaklaşım | Karmaşıklık | Maliyet | Fayda |
|---|---|---|---|
| Birincil + yük devretme | Düşük | 1,1x | Güvenilirlik |
| Coğrafi yönlendirme | Orta | 1,3x | Gecikme optimizasyonu |
| Performansa dayalı yönlendirme | Yüksek | 1,5x | Mümkün olan en iyi gecikme |
Uygulama
Kullanıcıları en uygun CDN'ye yönlendirmek için DNS düzeyinde yönlendirmeyi kullanın:
User request -> DNS (Cloudflare/Route53)
|
+--> US/EU traffic -> Cloudflare (best PoP coverage)
|
+--> APAC traffic -> AWS CloudFront (strong APAC presence)
|
+--> China traffic -> Alibaba CDN (required for China performance)
Çoğu işletme için, DNS düzeyinde yapılandırılmış yük devretme CDN'sine sahip tek bir CDN (Cloudflare), tam çoklu CDN yönlendirmenin karmaşıklığı olmadan yeterli yedeklilik sağlar.
Yaygın CDN Tuzakları
Tuzak 1: Kimliği Doğrulanmış İçeriği Önbelleğe Alma
Kullanıcıya özel veriler içeren yanıtları asla önbelleğe almayın. A Kullanıcısının B Kullanıcısına sunduğu önbelleğe alınmış yanıt bir güvenlik ihlalidir. Kimliği doğrulanmış tüm API yanıtları için Cache-Control: private, no-store kullanın.
Tuzak 2: Dağıtımlar için Önbellek Bozmanın Göz ardı Edilmesi
Yeni JavaScript veya CSS dağıttığınızda kullanıcılar önbelleğe alınmış eski sürümleri alabilir. Çözümler:
- İçerik karması: Dosya adına bir karma ekleyin (
app.a1b2c3d4.js). Next.js bunu otomatik olarak yapar. - Dağıtım sırasında önbellek temizleme: Dağıtım hattınızın bir parçası olarak CDN önbelleğini temizleyin.
- Sürümlendirilmiş URL'ler:
/styles.cssyerine/v2/styles.css.
Tuzak 3: Dinamik İçerik için CDN'nin Yanlış Yapılandırması
CDN'niz önbelleğe alınmaması gereken dinamik içeriği (API yanıtları, kullanıcı durumu içeren HTML sayfaları) önbelleğe alıyorsa, eski veya yanlış veriler sunacaksınız. CDN önbellek kurallarınızı düzenli olarak denetleyin ve önbelleğe alma çakışmalarını önlemek için Vary üstbilgilerini kullanın.
Performans Ölçümü
Önemli Web Verileri Hedefleri
| Metrik | İyi | İyileştirme Gerekiyor | Zayıf |
|---|---|---|---|
| LCP (En Büyük İçerikli Boya) | <2,5sn | 2,5-4,0s | >4.0s |
| INP (Sonraki Boyayla Etkileşim) | <200ms | 200-500ms | >500ms |
| CLS (Kümülatif Düzen Kayması) | <0,1 | 0,1-0,25 | >0,25 |
Önbellek Performansını İzleme
# Check CDN cache hit ratio
curl -sI https://example.com/page | grep -i "cf-cache-status\|x-cache\|age"
# Expected output for a cached response:
# cf-cache-status: HIT
# age: 3600
Zaman içindeki önbellek isabet oranını izleyin. Hedef: Statik varlıklar için %85'in üzerinde, dinamik içerik için %50'nin üzerinde.
Sıkça Sorulan Sorular
Kullanıcılarımız tek bir ülkedeyse CDN'ye ihtiyacımız var mı?
Evet ama faydalar değişiyor. Coğrafi gecikme süresinde azalma yerine şunları elde edersiniz: DDoS koruması, SSL sonlandırma yükünün aktarımı, görüntü optimizasyonu ve kaynak sunucu yükünün azaltılması. Tek ülke hedef kitleleri için bile CDN, sunucu maliyetlerini azaltır ve güvenilirliği artırır. Cloudflare ücretsiz katmanı bunu sıfır maliyetli bir iyileştirme haline getiriyor.
Dinamik içerik için önbelleğin geçersiz kılınmasını nasıl ele alırız?
Üç strateji: (1) sık sık değişen içerik için kısa TTL'ler (1-5 dakika), (2) içerik güncellemeleri için etiket bazında temizleme özelliğine sahip önbellek etiketleri, (3) arka planda yeni içerik getirirken önbelleğe alınmış içerik sunan eski, yeniden doğrulama başlıkları. Bağımsız olarak CDN önbelleği için s-maxage ve tarayıcı önbelleği için max-age kullanın.
ERP sistemimiz için CDN kullanmalı mıyız?
CDN, ERP statik varlıkları (JavaScript, CSS, resimler) ve halka açık portallar için faydalıdır. Kimliği doğrulanmış API yanıtlarını veya oturuma bağlı içeriği önbelleğe almayın. ECOSIRE, güvenlik riskleri olmadan en iyi önbelleğe almayı sağlamak için Odoo uygulama hizmetlerimizin bir parçası olarak CDN önbelleğe almayı yapılandırır.
CDN, sunucu tarafı oluşturmayla nasıl etkileşime giriyor?
Next.js SSR sayfaları için CDN'yi, kısa TTL'lerle (1-5 dakika) tam URL'yi (sorgu parametreleri dahil) temel alarak önbelleğe alacak şekilde yapılandırın. Next.js arka planda yenilenirken biraz eskimiş içerik sunmak için stale-while-revalidate kullanın. ISR (Artımlı Statik Yenileme), CDN önbelleğe almayla doğal olarak çalışır.
Sırada Ne Var?
CDN optimizasyonu, yük altında performansı doğrulamak için yük testi ve önbellek isabet oranlarını ve gecikmeyi izlemek için izleme ile doğal olarak eşleşir. Altyapı optimizasyonu yol haritasının tamamı için Küçük işletmeler için DevOps kılavuzumuza bakın.
CDN kurulumu ve performans optimizasyonu danışmanlığı için ECOSIRE ile iletişime geçin.
ECOSIRE tarafından yayınlandı - işletmelerin dünya çapında daha hızlı içerik sunmasına yardımcı oluyor.
Yazan
ECOSIRE Research and Development Team
ECOSIRE'da kurumsal düzeyde dijital ürünler geliştiriyor. Odoo entegrasyonları, e-ticaret otomasyonu ve yapay zeka destekli iş çözümleri hakkında içgörüler paylaşıyor.
İlgili Makaleler
Yapay Zeka Aracısı Performans Optimizasyonu: Hız, Doğruluk ve Maliyet Verimliliği
Hızlı mühendislik, önbelleğe alma, model seçimi ve izleme için kanıtlanmış tekniklerle yapay zeka aracısının performansını yanıt süresi, doğruluk ve maliyet açısından optimize edin.
Envanter Optimizasyonu için Yapay Zeka: Stokları Azaltın ve Taşıma Maliyetlerini Azaltın
Stokları %30-50 oranında azaltmak ve taşıma maliyetlerini %15-25 oranında azaltmak için yapay zeka destekli envanter optimizasyonunu kullanın. Talep tahminini, güvenlik stokunu ve yeniden sipariş mantığını kapsar.
Yapay Zeka Odaklı Fiyatlandırma Optimizasyonu: Geliri En Üst Düzeye Çıkaran Dinamik Fiyatlandırma
Kanallar arasında dinamik fiyatlandırma, fiyat esnekliği modellemesi, rekabetçi izleme ve marj maksimizasyonu için yapay zeka fiyatlandırma optimizasyonunu uygulayın.
Performance & Scalability serisinden daha fazlası
Yapay Zeka Aracısı Performans Optimizasyonu: Hız, Doğruluk ve Maliyet Verimliliği
Hızlı mühendislik, önbelleğe alma, model seçimi ve izleme için kanıtlanmış tekniklerle yapay zeka aracısının performansını yanıt süresi, doğruluk ve maliyet açısından optimize edin.
Yapay Zeka Aracılarını Test Etme ve İzleme: Otonom Sistemler için Güvenilirlik Mühendisliği
Birim testi, entegrasyon testi, davranış testi, gözlemlenebilirlik ve üretim izleme stratejilerini kapsayan yapay zeka aracılarının test edilmesine ve izlenmesine yönelik eksiksiz kılavuz.
Web Uygulamaları için Yük Testi Stratejileri: Kırılma Noktalarını Kullanıcılar Bulmadan Bulun
Web uygulamalarını k6, Artillery ve Locust ile test edin. Test tasarımını, trafik modellemeyi, performans temellerini ve sonuç yorumlama stratejilerini kapsar.
E-Ticaret için Mobil SEO: 2026 İçin Tam Optimizasyon Kılavuzu
E-Ticaret siteleri için Mobil SEO kılavuzu. Mobil öncelikli indekslemeyi, Önemli Web Verilerini, yapılandırılmış verileri, sayfa hızı optimizasyonunu ve mobil arama sıralama faktörlerini kapsar.
Üretim İzleme ve Uyarı: Tam Kurulum Kılavuzu
Prometheus, Grafana ve Sentry ile üretim izleme ve uyarıları ayarlayın. Ölçümleri, günlükleri, izlemeleri, uyarı politikalarını ve olay müdahale iş akışlarını kapsar.
API Performansı: Hız Sınırlama, Sayfalandırma ve Eşzamansız İşleme
Hız sınırlama algoritmaları, imleç tabanlı sayfalandırma, eşzamansız iş kuyrukları ve yanıt sıkıştırmayla ilgili en iyi uygulamalarla yüksek performanslı API'ler oluşturun.