Teknolojiler ve Altyapı - CDN'ler ve İçerik Önbelleğe Alma
CDN'ler ve içerik önbelleğe alma
1) Neden CDN ve önbellek
CDN (İçerik Dağıtım Ağı) RTT ve TTFB'yi azaltır, kaynağı boşaltır ve P95/P99 kuyruklarını stabilize eder. IGaming/fintech için bunlar:- Katalog, varlıklar, promosyon, medya için hızlı ilk bayt.
- Başlangıç kapasitelerinde patlayıcı büyüme olmadan zirve istikrarı (turnuvalar/etkinlikler).
- Çıkış tasarrufu ve öngörülebilir maliyet.
- Geo-control (düzenleme, içerik lisanslama).
2) Temel önbellekleme stratejileri
2. 1 Önbelleğe alınabilecek cevaplar
Statik: JS/CSS/yazı tipleri/simgeler - adında uzun TTL (30-365 gün) + dosya-karma.
Yarı statik: oyun katalogları, afişler, yapılandırmalar - dakikalardan saatlere kadar TTL + 'bayat-while-revalidate'.
API GET/HEAD: dizinler, fiyatlandırma, leadboardlar - doğru anahtarla kısa TTL (5-120 sn).
2. 2 Başlık
'Cache-Control: public, max-age = 600, stale-while-revalidate = 300, stale-if-error = 600'
Yeniden değerleme için 'ETag'/' Last-Modified'.
'Surrogate-Control'/' CDN-Cache-Control' (sağlayıcı destekliyorsa).
Özel veriler için: 'Cache-Control: no-store' (sadece 'no-cache'değil).
2. 3 Önbellek anahtarı
Base: yöntem + URL yolu + yanıtı etkileyen sorgu parametreleri.
Eklemeler: 'Accept-Encoding' (gzip/br), 'Accept' (json/webp/avif), locale ('Accept-Language'), region/currency if content is affected.
Anahtardaki kazara başlıklardan (çerezler, iz kimlikleri) kaçının.
3) Vary yönetimi ve çerezler
'Vary: Accept-Encoding, Accept, Accept-Language' gerekli minimum kümedir.
Önbelleğe alınmış yollar için CDN çerez sıyırma: beyaz liste dışındaki her şeyi kaldırın (örn. AB bayrakları).
Oturum tanımlayıcılarını önbelleğe alınan içeriğin dışındaki alt alanlara/yollara aktarma.
4) TTL ve tazelik desenleri
Değişmez statik: Dosya adında 'Cache-Control: public, max-age = 31536000, immutable' + sürümleri.
SWRO/SIE: 'Bayat-while-revalidate've' bayat-if-error '- köken problemlerinde UX direnci.
Bölümlenmiş TTL: oyunların kök listesi - 30-60 saniye; Oyun kartı - 5-10 dakika; Afişler - 30 dk.
API karışımı: temel referans kitapları - 5-30 dk; Para birimleri/limitler - 1-5 dk; Leadboard ― 2-15 sn.
5) Katmanlı önbellekleme и menşe kalkanı
Katmanlı/Bölgesel önbellekler: Kenarı geçen istekler, menşe yerine bölgesel "kalkan'da savaşılır.
Avantajları: Orijinde daha az MISS, "fırtınaları" yumuşatmak, daha ucuz çıkış.
Kurulları en yüksek trafik yoğunluğuna sahip coğrafi olarak gruplayın (EU, TR, BR, LATAM).
6) Sakatlık ve ısınma
Yola göre temizle/önek/etiket: etiketler toplu temizlik için uygundur (katalog sürümü, promosyon kampanyası).
Yumuşak temizleme (grace): Içeriği eski olarak işaretleyin, ancak yenisi gelmeden önce verin.
Isınma (ön warm): Serbest bırakma sırasındaki/turnuvadan önceki senaryolar: popüler yolları yoklamak, sprite ve resim varyasyonları oluşturmak.
Kanarya sakatlığı: kısmen temizleyin, metrikleri/hataları doğrulayın, sonra genişletin.
7) Kenar kuralları ve işlevleri (İşçiler/İşlevler)
Yanıtların üzerine yazma: önbellek başlıkları ekleme, 'Vary' özelliğini normalleştirme, çerezleri soyma.
Geo/ASN yönlendirme: yönlendirmeler, ülkeye göre yerel/para birimi.
Korumalı ortam/nesneler için İmzalı URL'ler/Üstbilgiler.
Edge-AB testleri: ışık, orijinde yük artışı yok (sadece statik/yarı statik için).
Edge-compute: hafif widget/kişiselleştirme render, ancak sıcak ödeme yolu değil.
8) Resimler ve videolar
8. 1 Resimler
Autoconversion: 'Accept' istemcisi olduğunda WebP/AVIF; 'Vary: Kabul et'.
Kenarda yeniden boyutlandırma: 'w/h/fit/quality' parametreleri; Hazır ayarlar hazırlayın (kart, banner, önizleme).
Sprite ve SVG optimizasyonu, önde tembel yükleme.
8. 2 Video/Akış
Kısa parçalarla (2-4 sn) HLS/DASH, üst üste binen çalma listeleri.
En yakın parçaları ve 'bayat-if-error' ön yükleyin.
Canlı bahisler için - TTFB kesimi için bölümleri bölgesel kalkanda tutun.
9) CDN aracılığıyla API
Önbelleğe alınabilir GET: 'Cache-Control've doğru anahtarı (yerel/para birimi/bölge) ekleyin.
Koşullu GET: 'ETag'/' If-None-Match' baytları ve TTFB'yi azaltır.
POST/PUT: önbelleğe alınmamış; POST yanıtlarını yalnızca açık kurallar ve idempotent semantik (nadiren gerekçelendirilmiş) altında önbelleğe almak mümkündür.
Hız sınırlaması/Kenardaki WAF: Botları/anomalileri keserek kuyrukları azaltır.
10) Güvenlik, erişim ve uyumluluk
WAF/bot yönetimi: imzalar, davranışsal sezgisel, bonus tarayıcılara karşı koruma.
Medya ve özel indirmeler için İmzalı URL'ler/Üstbilgiler.
mTLS к kaynağı и IP izin listesi.
GDPR/PII/PCI: hassas verileri önbelleğe almayın; Kişisel yanıtlarla API - 'no-store'.
Piyasa düzenleme gereksinimlerine göre kenardaki coğrafi filtreler/kilitler.
11) Ağ ve protokoller
CDN, TLS devam ettirme ve OCSP zımbalama HTTP/2/3 etkinleştirin.
Metin formatları için Brotli (br), gzip - fallback.
TCP/QUIC ayarı (sağlayıcıda) - özellikle mobil ağda kayıpların daha az etkisi.
12) CDN için gözlemlenebilirlik ve SLO
Metrikler (kenar ve kalkan):- Isabet Oranı (genel ve önek olarak), Origin Aktarımı.
- Bölgelere göre TTFB P50/P95/P99/ASN.
- Verim/Durum kodlarına göre hatalar (kenar/orijin).
- Gecikme süresini temizle.
- Görüntü dönüştürme gecikmesi (Kenar Yeniden Boyutlandırma kullanıyorsanız).
- Oyun kataloğu: TTFB P95 ≤ 150 ms, Aktarım ≥ %85.
- Medya (görüntüler): Hit Oranı ≥ %90, dönüşüm hataları <0. 1%.
- API GET "dizinleri": TTFB P95 ≤ 200 ms, Revalization Hit ≥ 60 %.
13) FinOps: önbellek değeri
Boşaltma = orijinli çıkıştan daha az - doğrudan $ faydaları.
Katmanlı + kalkan kesme "fırtınalar've MISS yük.
Görüntü optimizasyonu (AVIF/WebP/yeniden boyutlandırma) en yüksek trafik tasarrufunu sağlar.
P95 yanıt ağırlıklarını ve "pahalı MISS'leri (bayt × sayı × bölge) kontrol edin.
14) Yapılandırmalar ve kurallar (parçalar)
14. 1 Origin Başlıkları (Nginx)
nginx статика с версионированием location ~ \.(css js woff2)$ {
add_header Cache-Control "public, max-age=31536000, immutable";
}
полустатика каталога location /catalog/ {
add_header Cache-Control "public, max-age=300, stale-while-revalidate=600, stale-if-error=600";
add_header Vary "Accept, Accept-Language";
}
14. 2 Kenarda anahtar normalleştirme (sözde)
js addRule((req) => {
// очищаем шум req.cookies.clearExcept(['ab', 'locale']);
// ключ = method+path+критичные query key = `${req.method}:${req.path}?lang=${q.lang}¤cy=${q.cur}`;
req.setCacheKey(key);
req.setVary(['Accept', 'Accept-Encoding', 'Accept-Language']);
});
14. 3 İmzalı URL (fikir)
/media/{path}?exp=1735707600&sig=HMAC_SHA256(secret, path exp ip)
На edge: проверка exp и подписи, опционально привязка к IP/ASN.
15) Serbest bırakma ve çalışma süreçleri
Serbest bırakma kancaları: Dağıtımdan sonra etiketler/önekler tarafından otomatik temizleme.
Prewarm-list: trafik/dönüşümdeki en iyi yollar - önceden ısınma.
Katalog TTL-matrisi: ürün/pazarlama ile mutabık kalınmıştır.
Olaylar: MISS/TTFB'nin büyümesiyle - bayat-eğer-hata açın, orijin stabilize olana kadar kenardaki pahalı dönüşümleri "çekin".
16) Uygulama kontrol listesi
1. İçerik eşlemesi (statik/yarı statik/API) ve TTL matrisi.
2. Doğru 'Cache-Control', 'ETag/Last-Modified', 'Vary'.
3. "Gürültü" olmadan önbellek anahtarı, çerez sıyırma, beyaz listeler.
4. Bölgelere göre katmanlı önbellekleme + kaynak kalkanı.
5. Etiketler/önekler, yumuşak temizleme, ön warm prosedürleri ile temizle.
6. Kenar işlevleri: normalleştirme, jeo-mantık, İmzalı URL'ler.
7. Görüntü optimizasyonu (WebP/AVIF/yeniden boyutlandırma), video için HLS parçaları.
8. WAF/bot filtreleri, coğrafi kısıtlamalar, mTLS orijine.
9. SLO kartları: TTFB, Hit Ratio, Offload, dönüşüm hataları.
10. FinOps raporları: $/GB, sevgili MISS, çıkış lider bölgeleri.
17) Anti-desenler
"Her ihtimale karşı'her yerde" önbellek yok ".
Önbellek anahtarı tüm sorgu/başlıkları içerir - sıfır Hit Oranı.
Statik için çerez bağımlı yanıtlar (tüm önbelleği keser).
Her sürümde tüm CDN'yi temizleyin.
Zirveler sırasında kenarda uzun eşzamanlı dönüşümler.
'Bayat-while-revalidate'/' bayat-if-error' yokluğu - UX'in keskin bozulması.
"No-store" olmadan kişisel verilerin/yanıtların önbelleğe alınması.
18) iGaming bağlamı/fintech: pratik notlar
Turnuvalar/etkinlikler: Liderlik tablolarında kısa TTL (2-10 sn) + SWR; Prewarm oyun kartları ve afişleri.
Coğrafi lisanslama: Ülkeye göre kenar kilitleri/yönlendirmeleri, önbellek anahtarında para birimi/yerel ayar.
Promosyon ve kuponlar: Afişleri/koşulları önbelleğe alıyoruz, ancak kişisel sınırları değil.
Sorumlu oyunlar: politika/limitler sayfaları - SWR ile yarı statik; Kişisel veriler - sadece 'mağaza yok'.
PSP/KYC webhook'ları: CDN yoluyla değil, önbellek olmadan ve zor zaman aşımlarıyla kenar geçişi.
Sonuç
Güçlü bir CDN stratejisi, doğru başlıklar ve önbellek anahtarı, MISS azaltma için katmanlı/kalkan, normalleştirme ve koruma için kenar özellikleri, hızlı sürümler için engellilik/ısınma ve SLO ve FinOps ile gözlemlenebilirliktir. Bu ilkelere bağlı kalarak, zirvelere dayanacak ve TTFB'yi kullanıcılar ve ortaklar için öngörülebilir hale getirecek hızlı ve ekonomik bir çevreye sahip olacaksınız.