GH GambleHub

Edge-keşlər və POP

1) POP nədir və niyə «kənar»

POP (Point of Presence) - coğrafi cəhətdən istifadəçiyə yaxın olan məzmun çatdırma şəbəkəsinin (CDN/edge) qovşağı. Edge-cache - aşağıdakıları azaldan birbaşa POP-da cavab saxlama təbəqəsi:
  • Gecikmə (müştəriyə az RTT).
  • origin (offload) yükü və dəyəri.
  • Regionlar/buludlar arasında trafik (egress-qənaət).

Edge yalnız cache deyil. Müasir POP L7 marşrutlaşdırma, WAF/bot filtrləri, rate-limit, A/B/kanarya, transformasiya və edge-compute (skriptlər/funksiyalar) dəstəkləyir.

2) Edge-caching arxitekturaları

2. 1 Düz vs çox səviyyəli (tiered)

Düz: hər POP origin gedir. Sadə, lakin origin üçün bahalı.
Tiered/Shield: POP → Shield POP (mərkəzi cache) → origin. Shield cache səhvləri yığır, origin üçün «çətir» yaradır.

2. 2 Regional seqmentlər

Caching domenlərini bölgələrə/yurisdiksiyalara (GDPR/məlumat lokalizasiyası) bölün.
Variant: «EU-only POPs» və «Global POPs», ayrı açarlar/qaydalar.

2. 3 Anycast + latency/geo-aware marşrutlaşdırma

Anycast BGP ilə yaxın POP müştəri gətirir.
Geo/latency-aware aktiv ölçmə RTT/səhvləri PR/regional hovuzlar arasında keçid edir.

3) Cache açarları, 'Vary', TTL və təravət

3. 1 Açar dizaynı

Sorğuları normallaşdırın: query parametrlərini sıralayın, səs-küyü (utm, ref) çıxarın.
Semantik oxları daxil edin: 'tenant', 'locale', «sxem versiyası» ('v = 3'), lakin PII-dən çəkinin.
Şəxsi məzmun üçün - ictimai və şəxsi keşləri bölmək (bax § 7).

3. 2 Caching Control (HTTP)

Başlıqlar:
  • `Cache-Control: public, max-age=60, s-maxage=300, stale-while-revalidate=60, stale-if-error=120`
  • 'ETag '/' Last-Modified' şərti GET üçün (304).
  • Vary: kardinallığı minimuma endirin ('Accept-Encoding', 'Accept-Language', bəzən 'Authorization '/' Cookie' xüsusi yollar üçün).
  • «Demək olar ki, dinamika» üçün Micro-cache: 1-5 saniyə + SWR.

3. 3 Stale strategiya

SWR (stale-while-revalidate): köhnəlmiş cavab və fon yenilənir.
SIE (stale-if-error): Səhv olduqda origin 'SIE' -TTL-ə qədər cache istifadə edir.
Soft/Hard TTL: yumşaq müddət (stale ola bilər), sərt (tam səhv).

4) Əlillik: "kənar 'ı necə yeniləmək olar

4. 1 Açar və etiketlərə görə

URL/prefiksdə PURGE/BAN - kobud, lakin sürətli.
Surrogate-Key/Tags: obyektlərə etiketlər təyin edin ('article: 42', 'category: 7'), etiketlə bani - URL-lər olmadan kütləvi əlillik.

4. 2 Hadisə əlilliyi

Origin-də məlumatları dəyişdirdikdə (Kafka/NATS) → edge əlilləri BAN/PURGE/soft-expire çağırır.

4. 3 Artefaktların versiyası

Statika üçün - faylın adında content-hash.
API üçün - uyğunsuz dəyişikliklər zamanı açarın versiyasını ('v = 4') dəyişdirin.

5) origin qorunması və performans

5. 1 Origin shielding

Shield POP-u yeganə səhv nöqtəsi kimi yandırın → origin fırtınalarını bir neçə dəfə azaldır.

5. 2 Coalescing/single-flight

Kənarda bir sorğu səhv olduqda cache «sındırır»; qalanları gözləyir (heç bir tutmaq stampede).

5. 3 Rate-limit/Queue/Shedding на edge

Həddindən artıq yükləndikdə - aşağı prioritetli/anonim sorğuları origin-ə deyil, POP-a atın.

5. 4 Signed URL / Signed Cookie

Origin edge arxasında gizlidir. Xüsusi məzmuna giriş - «hamıya» paylanmamaq üçün TTL və atributları (IP/Geo/Path) olan imzalı linklər/kukilər vasitəsilə.

6) Nəqliyyat və transformasiya

6. 1 HTTP/2–3 и QUIC

HTTP/2: multiplexing, heder-kompression.
HTTP/3/QUIC: Daha az HOL kilidi və → p95/p99 TTFB-dən aşağı itirilmiş kanallarda daha yaxşıdır.

6. 2 Sıxılma və şəkillər

Mətn üçün Brotli, görüntülər üçün AVIF/WebP, kənarda image-resizing (responsive sizes, DPR).
Formata/ölçüyə görə cache variantları: açarlar 'width/format' (və ya 'Vary: Accept '/Client-Hints) daxildir.

6. 3 TLS/0-RTT (diqqətlə)

Recumpling seansları quraşdırma sürətləndirir, 0-RTT replay həssas ola bilər → yalnız idempotent GET üçün daxil edin.

7) Açıq vs xüsusi edge-keşi

7. 1 ictimai

'Cache-Control: public, s-maxage =...' və minimal 'Vary'.
Kataloq, xəbərlər, şəkillər, statik CDN üçün uyğundur.

7. 2 Xüsusi/Fərdi

Seçimlər:
  • «Cache-Control: private» (brauzer keşi).
  • Key-segmentation: açara tenant/user-id (və ya token-hash) daxil edin və private-shared (saxlama və PII ilə diqqətlə) kimi qeyd edin.
  • Signed cookies və Edge-auth: önbellək açıqdır, lakin imza ilə giriş (kənarda encrypted session state ilə variantları).

8) Edge-compute (Workers/Functions)

POP-da asan funksiyalar: yolların/başlıqların yenidən yazılması, A/B-split, açarların normallaşdırılması, SWR məntiqi, qonşu resursların prefetch.
Millisaniyəlik əməliyyatlar üçün POP-da lokal KV/Cache API.
Məhdudiyyətlər: qısa müddət/yaddaş, uzunömürlü əlaqələrin olmaması, PII/regional ilə diqqətli iş.

Psevdo-nümunə (Workers-like)

js export default {
async fetch(req, env) {
const key = normalize(req);
let res = await caches. default. match(key);
if (res) return withHitHeader(res, "HIT");

res = await fetch(req, { cf: { cacheEverything: true }});
const ttl = computeTTL(res);
eventWaitUntil(caches. default. put(key, res. clone(), { expirationTtl: ttl }));
return withHitHeader(res, "MISS");
}
}

9) Konfiqurasiya nümunələri

9. 1 Nginx: micro-cache + SWR

nginx proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=api:200m inactive=30m;
map $request_method $skip_cache { default 0; POST 1; PUT 1; DELETE 1; }

server {
location /api/list {
proxy_cache api;
proxy_cache_key "$scheme://$host$uri$is_args$args";
proxy_cache_valid 200 2s;          # micro-cache proxy_cache_use_stale error timeout updating;# SIE + SWR proxy_cache_background_update on;
add_header X-Edge-Cache $upstream_cache_status;
proxy_pass http://origin_pool;
}
}

9. 2 Varnish: surrogate keys и BAN

vcl sub vcl_recv {
if (req. method == "BAN") {
if (req. http. Surrogate-Key) {
ban("obj. http. Surrogate-Key ~ " + req. http. Surrogate-Key);
return (synth(200, "Banned"));
}
}
}

sub vcl_deliver {
set resp. http. Surrogate-Key = "article:42 tag:author:7";
set resp. http. Cache-Control = "public, s-maxage=300, stale-while-revalidate=60";
}

9. 3 Envoy (edge-cache filter)

yaml http_filters:
- name: envoy. filters. http. cache typed_config:
"@type": type. googleapis. com/envoy. extensions. filters. http. cache. v3. CacheConfig typed_config:
"@type": type. googleapis. com/envoy. extensions. http. cache. simple_http_cache. v3. SimpleHttpCacheConfig

9. 4 CloudFront-stil davranış (eskiz)

Behavior A: '/images/' - uzun TTL, sıxılma, formatlara görə vary.
Behavior B: '/api/' - qısa TTL, SWR, signed cookie, WAF/bot qorunması.
Origin Shield daxildir, statuslar 500/502/504 → 'stale-if-error'.

10) Müşahidə, SLO və hesabat

10. 1 Metrika

cache_hit_ratio (POP/region/route), byte_hit_ratio.
origin_offload = 1 − (origin_requests / edge_requests).
TTFB/TTL kvantil, stale_responses_total, revalidations_total.
stampede_prevented_total, coalesced_waiters.
shield_hit_ratio (tiered ilə), origin_egress_bytes (dəyəri).

10. 2 Log/Treys

Etiketli qeydlər 'HIT/MISS/STALE/UPDATING/BYPASS', açar, TTL, POP, tenant.
Paylanmış treyslərdə mənbəni ('edge', 'origin') və səbəbini (revalidate/stale/error) qeyd edin.

10. 3 SLO nümunələri

«Для `/api/list`: p99 TTFB ≤ 250 мс, edge hit ≥ 70%, byte-hit ≥ 80%, origin error-offload ≥ 90%».
"Stale-if-error" cavablarının payı ≤ gündə 1% ".

11) Təhlükəsizlik, məxfilik, uyğunluq

WAF/bot menecmenti - origin filtrasiya edge.
Məlumatların regionallığı: şəxsi artefaktları yalnız icazə verilən POP-larda saxlayın; regional xüsusi açarlar və ACL istifadə edin.
edge-də imzalar və tokenlər, ictimai cache-dən şəxsi cavablar verməyin.
PII-minimallaşdırma: şəxsi məlumatları açarlara daxil etməyin; cookies şifrələyin; personalizasiya üçün qısa TTL.

12) Tipik reseptlər

12. 1 «Demək olar ki, dinamika» (lentlər/siyahılar)

edge + SWR ilə Micro-cache 1-3, shield aktiv, tək flight, 1-5 s boş nəticələr üçün negative-cache.

12. 2 Görüntü/Media buludları

Edge-resayz/formatlaşdırma (WebP/AVIF), 'width/format' cache variantları, uzun TTL, məzmun etiketlərinə görə əlillik.

12. 3 kişiselləşdirmə ilə API

'Cache-Control: private' və ya signed cookie + açar seqmentasiyası (tenant), qısa TTL, cavabın «demək olar ki, ictimai» hissələri üçün SWR.

12. 4 Böyük satış/zirvələri

Əsas qaynaqların istiləşməsi (prewarm), statik TTL artımı, təcavüzkar SWR/SIE, origin sərt limitləri, Shield daxil.

13) Anti-nümunələr

Fərqli cavablar olmadan 'Vary' → sızma/səhv məlumatlar.
Böyük 'Vary' → kardinallıq → aşağı hit.
prod/experiments → çirklənmə üçün ümumi cache.
origin heç bir single-flight → fırtına qaçırmaq.
SWR məhdudiyyətsiz → yarış yeniləmə və uçqun validate-sorğular.
public → təhlükəsizlik hadisələri kimi şəxsi cavabların Edge-cache.
Worldwide yük → həddindən artıq isti origin zamanı tiered/shield yoxdur.

14) Giriş çek siyahısı

  • POP örtüyünü xəritələyin, anycast + latency-routing daxil edin.
  • Tiered/shield və single-flight/coalescing siyasətlərini seçin.
  • Açarları və Vary layihələndirin (minimum kardinallıq, PII olmadan).
  • TTL/SWR/SIE (soft/hard TTL) və negative-cache.
  • URL/cookie siqnalını açın, origini gizlədin, WAF/bot filtrlərini açın.
  • Əlilliyi təşkil edin: Surrogate-Key/BAN + event-driven.
  • hit/byte-hit/offload/TTFB metrləri və per-POP dashboard qaldırın.
  • Pik əvvəl istiləşmə, fırtına/həddindən artıq yük runbooks.
  • Məxfilik/regionallıq testləri, açar auditi və siyasət.
  • SLO/edge üçün səhv büdcə və TTL/SWR auto twicks meyarları.

15) FAQ

Q: kənarında TTL seçmək üçün necə?
A: Icazə verilən köhnəlmə və hit-ratio hədəfindən uzaqlaşın. «Demək olar ki, dinamika» üçün - 1-5 s + SWR; məlumat kitabçaları/şəkillər üçün - hadisələr/etiketlər üzrə əlillik ilə dəqiqə/saat.

Q: Shield POP nə vaxt lazımdır?
A: Qlobal trafik və ya isti açarlar ilə: shield origin səhvlərini kəskin şəkildə azaldır və «tutma» dalğalarını sabitləşdirir.

Q: Səlahiyyətli cavabları necə önbelleğe almaq olar?
A: Ya 'private' (brauzer), ya da public ilə siqnal cookie/URL və açar seqmentasiyası (PII olmadan), və ya ümumiyyətlə kritik şəxsi məlumatlar üçün bypass.

Q: HTTP/3 ilə nə etmək lazımdır?
A: Daxil: xüsusilə mobil/itirilmiş kanal qazanır. HTTP/2 proxy və fallback uyğunluğunu nəzarət edin.

16) Nəticələr

Edge-keşlər və POP şəbəkəsi sürətli və qənaətli platformaların təməlidir. Uğur düzgün açar və 'Vary', ağlabatan TTL/SWR/SIE, etiket/hadisə əlilliyi, tiered/shield origin qorunması, həmçinin müşahidə (hit/offload/TTFB) və təhlükəsizlik/gizlilik intizamı ilə müəyyən edilir. Çek siyahısını izləyin və «kənar» sürprizlərin mənbəyi deyil, sürətləndiriciniz olacaq.

Contact

Bizimlə əlaqə

Hər hansı sualınız və ya dəstək ehtiyacınız varsa — bizimlə əlaqə saxlayın.Həmişə köməyə hazırıq!

Telegram
@Gamble_GC
İnteqrasiyaya başla

Email — məcburidir. Telegram və ya WhatsApp — istəyə bağlıdır.

Adınız istəyə bağlı
Email istəyə bağlı
Mövzu istəyə bağlı
Mesaj istəyə bağlı
Telegram istəyə bağlı
@
Əgər Telegram daxil etsəniz — Email ilə yanaşı orada da cavab verəcəyik.
WhatsApp istəyə bağlı
Format: ölkə kodu + nömrə (məsələn, +994XXXXXXXXX).

Düyməyə basmaqla məlumatların işlənməsinə razılıq vermiş olursunuz.