Edge-keshler we POP
1) POP näme we näme üçin "gyra"
POP (Point of Presence) - ulanyja geografiki taýdan ýakyn kontent iberiş ulgamynyň (CDN/edge) düwünidir. Edge-kesh - jogaplary göni POP-da saklamak gatlagy, ol aşakdakylary azaldar:- Gizlinlik (müşderä çenli RTT-den az).
- Origin (offload) üçin ýük we çykdajy.
- Sebitleriň/bulutlaryň arasyndaky traffik (egress-tygşytlamak).
Edge diňe bir keş däl. Häzirki zaman POP, L7-marşrutlaşdyrma, WAF/bot-süzgüçleri, rate-limit, A/B/kanareýkalary, transformasiýalary we edge-compute (skriptleri/funksiýalary) goldaýar.
2) Edge-kesh arhitekturasy
2. 1 Tekiz vs köp derejeli (tiered)
Tekiz: her POP origine gidýär. Origin üçin ýönekeý, ýöne gymmat.
Tiered/Shield: POP → Shield POP (merkezi kesh) → origin. "Shield" kesh ýalňyşlyklaryny jemleýär, origin üçin "saýawan" döredýär.
2. 2 Sebit segmentleri
Sebitlere/ýurisdiksiýalara (GDPR/maglumatlaryň lokalizasiýasy) görä kesilen domenleri bölüň.
Opsiýa: "EU-only POPs" we "Global POPs", aýratyn açarlar/düzgünler.
2. 3 Anycast + latency/geo-aware routing
Anycast, müşderini iň ýakyn BGP POP-a alyp barýar.
Geo/latency-aware, RTT/ýalňyşlyklaryň işjeň ölçegleri boýunça ROP/sebit howuzlarynyň arasynda geçiş edýär.
3) Nagt açarlar, 'Vary', TTL we täzelik
3. 1 Açar dizaýny
Soraglary kadalaşdyryň: kwery-parametrleri tertipläň, sesleri aýyryň (utm, ref).
Semantik oklary açyň: 'tenant', 'locale', "shema wersiýasy" ('v = 3'), ýöne PII-den gaça duruň.
Hususy mazmun üçin - köpçüligiň we hususy keşiň bölünmegi (§ 7 serediň).
3. 2 Keş dolandyryşy (HTTP)
Sözbaşylar:- `Cache-Control: public, max-age=60, s-maxage=300, stale-while-revalidate=60, stale-if-error=120`
- Şertli GET üçin 'ETag '/' Last-Modified' (304).
- Wary: Kardinallygy azaldyň ('Accept-Encoding', 'Accept-Language', käwagt 'Authorization '/' Cookie' hususy ýollar üçin).
- "Diýen ýaly dinamika" üçin Micro-cache: 1-5 sekunt + SWR.
3. 3 Stale strategiýalary
SWR (stale-while-revalidate): Köne jogap berýäris we fon bilen täzelenýäris.
SIE (stale-if-error): origin ýalňyşlygy ýüze çykan halatynda 'SIE' -TTL keshini ulanýarys.
Soft/Hard TTL: ýumşak möhlet (stale bolup biler), gaty (doly sypdyrma).
4) Maýyplyk: "gyrany" nädip täzelemeli
4. 1 Açar we bellikler boýunça
URL/prefiks boýunça PURGE/BAN - gödek, ýöne çalt.
Surrogate-Key/Tags: obýektlere bellik ediň ('article: 42', 'category: 7'), bellik ediň - URL-den artykmaç däl köpçülikleýin maýyplyk.
4. 2 Wakalaryň maýyplygy
Origin-de maglumatlary üýtgedeniňizde, wakalary çap ediň (Kafka/NATS) → edge-maýyplar BAN/PURGE/soft-expire çagyrýarlar.
4. 3 Artefaktlary wersiýalaşdyrmak
Statika üçin - faýlyň adynda content-hash.
API üçin - gabat gelmeýän üýtgeşmeler üçin açaryň wersiýasyny ('v = 4') üýtgediň.
5) origin goragy we öndürijiligi
5. 1 Origin shielding
Shield POP-y ýeke-täk ýalňyşlyk nokady hökmünde açyň → origin boýunça tupany birnäçe gezek peseldýär.
5. 2 Coalescing/single-flight
Gyrada bir haýyş sypdyrylanda keş "döwýär"; galanlary garaşýarlar (yzarlaýan stampede ýok).
5. 3 Rate-limit/Queue/Shedding на edge
Artykmaç ýüklenende - origine däl-de, pes ileri tutulýan/anonim soraglary POP-a taşlaň.
5. 4 Signed URL / Signed Cookie
Origin edge üçin gizlenýär. Şahsy mazmuna girmek - "hemmelere" paýlanmazlyk üçin TTL we atributlar (IP/Geo/Path) bilen gol çekilen baglanyşyklar/kuklar arkaly.
6) Ulag we özgerişler
6. 1 HTTP/2–3 и QUIC
HTTP/2: multiplekslemek, heder-gysmak.
HTTP/3/QUIC: az HOL blokirlemeleri we ýitirilen kanallarda has gowudyr → p95/p99 TTFB aşakda.
6. 2 Gysyş we şekiller
Tekst üçin Brotli, suratlar üçin AVIF/WebP, gyrada surat-resizing (responsive sizes, DPR).
Keş wariantlary formaty/ululygy boýunça: açarlar 'width/format' (ýa-da 'Vary: Accept '/Client-Hints).
6. 3 TLS/0-RTT (seresaplylyk bilen)
Sessiýalaryň ýazuwy, diňe GET-ler üçin açylyp bilinjek 0-RTT tizleşdirýär.
7) Köpçülige vs hususy edge-kesh
7. 1 Köpçülige açyk
'Cache-Control: public, s-maxage =...' we iň az 'Vary'.
Katalog, habarlar, suratlar, statika CDN üçin amatlydyr.
7. 2 Hususy/şahsylaşdyrylan
Opsiýalar:- "Cache-Control: private" (brauzer keşi)
- Key-segmentation: açara tenant/user-id (ýa-da token-hash) goşuň we private-shared (ammar we PII bilen seresaplylyk bilen) diýip belläň.
- "Signed cookies" we "Edge-auth": "cache" köpçülige açyk, ýöne gol bilen elýeterlidir.
8) Edge-compute (Workers/Functions)
POP-da ýeňil funksiýalar: ýollaryň/sözbaşylaryň täzeden ýazylmagy, A/B-split, açarlaryň kadalaşmagy, SWR-logika, goňşy çeşmeleriň prefetch.
Lokal KV/Cache API-ni POP-da millisaniýelik amallar üçin.
Çäklendirmeler: gysga wagtlar/ýat, uzak möhletli baglanyşyklaryň ýoklugy, PII/sebitlilik bilen ünsli işlemek.
Psevdo-mysal (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) Konfigurasiýa mysallary
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 süzgüç)
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-style hereket (eskiz)
Behavior A: '/images/' - uzyn TTL, gysyş, format boýunça vary.
Behavior B: '/api/' - gysga TTL, SWR, signed cookie, WAF/bot-gorag.
Origin Shield goşuldy, statuslar 500/502/504 → 'stale-if-error'.
10) Gözegçilik, SLO we hasabat
10. 1 Metrikler
cache_hit_ratio (POP/sebit/route boýunça), byte_hit_ratio.
origin_offload = 1 − (origin_requests / edge_requests).
Kwantiller boýunça TTFB/TTL, stale_responses_total, revalidations_total.
stampede_prevented_total, coalesced_waiters.
shield_hit_ratio (tiered bilen), origin_egress_bytes (bahasy).
10. 2 Giriş/söwda
Bellikli loglar 'HIT/MISS/STALE/UPDATING/BYPASS', açar, TTL, POP, tenant.
Paýlanan söwdalarda çeşmäni ('edge', 'origin') we sebäbini (revalidate/stale/error) belläň.
10. 3 SLO-mysallar
«Для `/api/list`: p99 TTFB ≤ 250 мс, edge hit ≥ 70%, byte-hit ≥ 80%, origin error-offload ≥ 90%».
"Stale-if-error" jogaplarynyň paýy ≤ bir günde 1% ".
11) Howpsuzlyk, gizlinlik, laýyklyk
WAF/bot dolandyryşy - origine çenli süzmek üçin edge-de.
Maglumatlaryň sebitliligi: şahsy artefaktlary diňe kabul ederlikli POP-larda saklaň; sebitleýin açarlary we ACL ulanyň.
edge-daky gollar we bellikler, köpçüligiň keşinden şahsy jogap bermäň.
PII-minimalizasiýa: şahsy maglumatlary açarlara goşmaň; çerepleri şifrläň; şahsylaşdyrmak üçin gysga TTL.
12) Adaty reseptler
12. 1 "Dinamika diýen ýaly" (lentalar/sanawlar)
edge, shield, single-flight, negative-cache 1-5 s boş netijeler üçin + SWR bilen Micro-cache 1-3.
12. 2 Surat/media bulutlary
Edge-resaise/formatlamak (WebP/AVIF), 'width/format' üçin keş wariantlary, uzyn TTL, mazmun bellikleri boýunça maýyplyk.
12. 3 şahsylaşdyrmak bilen API
'Cache-Control: private' ýa-da signed cookie + açar segmentasiýasy (tenant), gysga TTL, SWR "köpçülige açyk" jogap bölekleri üçin.
12. 4 Uly satuwlar/iň ýokary derejeler
Esasy çeşmeleri gyzdyrmak (prewarm), statika TTL-ni köpeltmek, agressiw SWR/SIE, origin-de berk çäklendirmeler, Şield-i öz içine alýar.
13) Anti-patternler
'Vary' -siz, dürli jogaplarda → syzmak/nädogry maglumatlar.
Ullakan 'Vary' → kardinallyk → pes hit.
Prod/experiments → hapalanma üçin umumy kesh.
Origin-de ýekeje uçuş → tupan ýalňyşlygy ýok.
SWR çäklendirmesiz → täzeleniş ýaryşlary we tassyklama haýyşlarynyň göçmegi.
Şahsy jogaplary public → howpsuzlyk hadysalary hökmünde kabul ediň.
Worldwide-ýükde tiered/shield ýoklugy → origin-iň aşa gyzmagy.
14) Girizmegiň çek-sanawy
- POP-örtügini kartoçka ediň, anycast + latency-routing-i açyň.
- Tiered/shield we single-flight/coalescing syýasatlaryny saýlaň.
- Açarlary we Wary (iň az kardinallyk, PII ýok).
- TTL/SWR/SIE (soft/hard TTL) we negative-cache sazlaň.
- URL/cookie belgisini açyň, origini gizläň, WAF/bot süzgüçlerini açyň.
- Maýyplygy guraň: Surrogate-Key/BAN + event-driven.
- hit/byte-hit/offload/TTFB metrlerini we per-POP dashbordlaryny galdyryň.
- Iň ýokary derejelerden öň gyzdyrmak, tupan/aşa ýüklemek üçin runbooks.
- Gizlinlik/sebitlilik synaglary, açar barlagy we syýasatlar.
- SLO/edge üçin nädogry býudjet we TTL/SWR awto-twik ölçegleri.
15) FAQ
Q: Gyrada TTL nädip saýlamaly?
A: Rugsat berilýän köne we hit-ratio maksadyndan daşlaşyň. "Diýen ýaly dinamika" üçin - 1-5 s + SWR; maglumat kitaplary/suratlar üçin - wakalar/bellikler boýunça maýyplyk bilen minutlar/sagatlar.
Q: Shield POP haçan gerek?
A: Global traffik ýa-da gyzgyn açarlar bilen: shield origin ýalňyşlyklaryny düýpgöter azaldar we "yzarlaýan" tolkunlary durnuklaşdyrar.
Q: Ygtyýarly jogaplary nädip kesmeli?
A: Ýa 'private' (brauzer), ýa-da public bilen signed cookie/URL we açar segmentasiýasy (PII bolmasa), ýa-da umuman möhüm şahsy maglumatlar üçin bypass.
S: HTTP/3 bilen näme etmeli?
A: Goşmak: esasanam ykjam/ýitirilen kanal ýeňýär. Proxy we fallback-iň HTTP/2 gabat gelmegine gözegçilik ediň.
16) Netijeler
Edge-keshler we POP ulgamy - ýokary tizlikli we tygşytly platformalaryň binýady. Üstünlik dogry açar we 'Vary', paýhasly TTL/SWR/SIE, tagtlar/wakalar boýunça maýyplyk, tiered/shield origin goragy, şeýle hem syn edilmegi (hit/offload/TTFB) we howpsuzlyk/gizlinlik tertibi bilen kesgitlenýär. Çek sanawyny yzarlaň - "gyra" garaşylmadyk çeşmä däl-de, tizlendirijiňize öwrüler.