GH GambleHub

Edge кэштер жана POP

1) Эмне POP жана эмне үчүн "чети"

POP (Point of Presence) - колдонуучуга географиялык жактан жакын контент жеткирүү түйүнү (CDN/edge). Edge кэш - жоопторду сактоо катмары түздөн-түз POP, бул төмөндөтөт:
  • Латентность (кардарга RTT аз).
  • origin (offload) боюнча жүк жана наркы.
  • Аймактар/булуттар ортосундагы трафик (egress-үнөмдөө).

Edge бир гана кэш эмес. Заманбап POP колдойт L7-багыттоо, WAF/бот чыпкалар, rate-limit, A/B/канарейка, трансформация жана edge-compute (скрипттер/функциялар).

2) edge кэш архитектурасы

2. 1 жалпак vs көп баскычтуу (tiered)

жалпак: ар бир POP origin барат. Жөнөкөй, бирок origin үчүн кымбат.
Tiered/Shield: POP → Shield POP (борбордук кэш) → origin. Shield кэш-каталарды топтоп, origin үчүн "кол чатыр" түзөт.

2. 2 Аймактык сегменттер

Региондор/юрисдикциялар боюнча кэш домендерди бөлүңүз (GDPR/маалыматтарды локализациялоо).
Вариант: "EU-only POPs" жана "Global POPs", өзүнчө ачкычтар/эрежелер.

2. 3 Anycast + latency/geo-aware роутинг

Anycast BGP боюнча жакынкы POP кардар алып келет.
Geo/latency-aware активдүү өлчөө RTT/ката PR/региондук көлмөлөрдүн ортосунда которулат.

3) Кэш ачкычтары, 'Vary', TTL жана сергектик

3. 1 ачкыч дизайны

Суроо-талаптарды нормалдаштыруу: query параметрлерин сорттоо, ызы-чууну алып салуу (utm, ref).
Семантикалык окторду киргизиңиз: 'tenant', 'locale', "схеманын версиясы" ('v = 3'), бирок PIIден качыңыз.
Жеке мазмун үчүн - коомдук жана жеке кэштерди бөлүү (караңыз § 7).

3. 2 Кэш башкаруу (HTTP)

Аталыштары:
  • `Cache-Control: public, max-age=60, s-maxage=300, stale-while-revalidate=60, stale-if-error=120`
  • шарттуу GET үчүн 'ETag '/' Last-Modified' (304).
  • Vary: кардиналдуулугун азайтуу ('Accept-Encoding', 'Accept-Language', кээде 'Authorization '/' Cookie' жеке жолдор үчүн).
  • Micro-cache үчүн "дээрлик динамика": 1-5 секунд + SWR.

3. 3 Stale стратегиясы

SWR (stale-while-revalidate): эскирген жооп жана өбөлгөлөр.
SIE (stale-if-error): Эгерде origin ката болсо, кэшти 'SIE' -TTL чейин колдонобуз.
Soft/Hard TTL: жумшак мөөнөтү (болот stale), катуу (толук ката).

4) Майыптык: "четин" кантип жаңылоо керек

4. 1 Ачкыч жана тегдер боюнча

PURGE/BAN URL/префикс - орой, бирок тез.
Surrogate-Key/Tags: объекттерди белгилөө Tags ('article: 42', 'category: 7'), тег боюнча тыюу салуу - массалык майып жок URL.

4. 2 Окуялардын майыптыгы

origin окуяларды жарыялоо маалыматтарды өзгөртүүдө (Kafka/NATS) → edge-майыптар BAN/PURGE/soft-expire чакырат.

4. 3 Экспонаттарды чыгаруу

Статика үчүн - файлдын аталышындагы content-hash.
API үчүн - шайкеш келбеген өзгөрүүлөрдө ачкычтын версиясын ('v = 4') өзгөртүңүз.

5) origin коргоо жана аткаруу

5. 1 Origin shielding

Shield POP 'ту жалгыз ката катары күйгүзүү → origin боюнча бороондорду бир нече жолу азайтат.

5. 2 Coalescing/single-flight

Четте бир суроо ката болгондо кэш "тешип"; калгандары күтүп жатышат (эч кандай кууп stampede).

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

Ашыкча жүктөөдө - төмөн артыкчылыктуу/анонимдүү суроо-талаптарды origin эмес, POPке ыргытыңыз.

5. 4 Signed URL / Signed Cookie

Origin edge артында жашырылган. Жеке мазмунга кирүү - кол коюлган шилтемелер/TTL жана атрибуттары бар кукилер (IP/Geo/Path) аркылуу "баарына" таратпоо үчүн.

6) Транспорт жана трансформация

6. 1 HTTP/2–3 и QUIC

HTTP/2: multiplexing, хедер-компрессия.
HTTP/3/QUIC: аз HOL блоктору жана жоготуу каналдарында жакшы → p95/p99 TTFB төмөн.

6. 2 Компрессия жана сүрөттөр

текст үчүн Brotli, сүрөттөр үчүн AVIF/WebP, четинде Image Resizing (responsive sizes, DPR).
Формат/өлчөмү боюнча кэш варианттары: ачкычтар 'width/format' (же 'Vary: Accept '/Client-Hints) кирет.

6. 3 TLS/0-RTT (кылдат)

Recumpling сессиялар орнотуу тездетет, 0-RTT replay алсыз болушу мүмкүн → гана Emempotent GET үчүн күйгүзүү.

7) Коомдук Vs жеке edge кэш

7. 1 Коомдук

'Cache-Control: public, s-maxage =...' жана минималдуу 'Vary'.
каталог үчүн ылайыктуу, кабар, сүрөттөр, CDN статикасы.

7. 2 Жеке/жекече

Параметрлери:
  • 'Cache-Control: private' (браузер кэши).
  • Key-segmentation: ачкычка tenant/user-id (же токен-хэш) киргизип, private-shared (сактоо жана PII менен кылдаттык менен) деп белгилеңиз.
  • Signed cookies жана Edge-auth: кэш ачык, бирок кол менен кирүү (encrypted session state менен параметрлери четинде).

8) Edge-compute (Workers/Functions)

POP жарык өзгөчөлүктөрү: жол/баш, A/B-split, ачкычтарды нормалдаштыруу, SWR-логика, prefetch кошуна ресурстар.
Жергиликтүү KV/Cache бир миллисекунддук иш үчүн POP боюнча API.
Чектөөлөр: кыска убакыт/эс, узак мөөнөттүү байланыштар жок, PII/региондук менен кылдат иштөө.

Псевдо-мисал (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) Конфигурация мисалдары

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 чыпкасы)

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 жүрүм-туруму (эскиз)

Behavior A: '/images/' - узун TTL, кысуу, формат боюнча vary.
Behavior B: '/api/' - кыска TTL, SWR, signed cookie, WAF/бот коргоо.
Origin Shield кирет, статусун 500/502/504 → 'stale-if-error'.

10) Байкоо, SLO жана отчеттуулук

10. 1 Метрика

cache_hit_ratio (POP/аймак/route), byte_hit_ratio.
origin_offload = 1 − (origin_requests / edge_requests).
TTFB/TTL Quantils, stale_responses_total, revalidations_total.
stampede_prevented_total, coalesced_waiters.
shield_hit_ratio (tiered менен), origin_egress_bytes (наркы).

10. 2 Логи/соода

Tags 'HIT/MISS/STALE/UPDATING/BYPASS', ачкычы, TTL, POP, tenant.
Бөлүштүрүлгөн соодада булагын ('edge', 'origin') жана себебин (revalidate/stale/error) белгилеңиз.

10. 3 SLO мисалдар

«Для `/api/list`: p99 TTFB ≤ 250 мс, edge hit ≥ 70%, byte-hit ≥ 80%, origin error-offload ≥ 90%».
"Stale-if-error" жооп үлүшү ≤ күнүнө 1% ".

11) Коопсуздук, купуялык, шайкештик

WAF/бот башкаруу - origin чыпкалоо үчүн edge боюнча.
Маалыматтардын регионалдуулугу: жеке экспонаттарды уруксат берилген POP гана сактаңыз; региондук ачкычтарды жана ACL колдонуу.
Кол тамгалар жана белгилер edge, коомдук кэшден жеке жооп бербеңиз.
PII-минималдаштыруу: жеке маалыматтарды ачкычтарга киргизбеңиз; куки шифрлөө; кыска TTL жекелештирүү үчүн.

12) типтүү Recipes

12. 1 "Дээрлик динамикасы" (тасмалар/тизмелери)

edge + SWR менен Micro-cache 1-3, shield киргизилген, бир-flight, 1-5 б бош натыйжалары үчүн negative-cache.

12. 2 булуттар сүрөттөр/медиа

Edge-кайра иштетүү/форматтоо (WebP/AVIF), 'width/format' кэш варианттары, узун TTL, мазмун тегдери боюнча майыптык.

12. 3 жекелештирүү менен API

'Cache-Control: private' же signed cookie + ачкыч сегментациясы (tenant), кыска TTL, SWR үчүн "дээрлик коомдук" жооп бөлүктөрү.

12. 4 Чоң сатуу/чокулары

Негизги ресурстарды жылытуу (prewarm), статика боюнча TTL жогорулатуу, агрессивдүү SWR/SIE, origin боюнча катуу чектөөлөр, Shield кирет.

13) Анти-үлгүлөрү

ар кандай жооптор жок 'Vary' → агып/туура эмес маалыматтар.
Чоң 'Vary' → кардиналдуулук → төмөн hit.
prod/experiments → булганышы үчүн жалпы кэш.
Жок single-flight → origin боюнча бороон-чапкын.
SWR чектөөсүз → жарыш жаңыртуу жана көчкү validate-суроо.
коомдук → коопсуздук окуялар катары жеке жооптордун Edge кэш.
Worldwide-жүктөө жок tiered/shield → origin ысып.

14) Киргизүү чек-тизмеси

  • POP-каптоо картасын, anycast + latency-routing кирет.
  • tiered/shield жана single-flight/coalescing саясатын тандоо.
  • Ачкычтарды жана Vary долбоорлоо (минималдуу кардиналдуулук, PII жок).
  • TTL/SWR/SIE (soft/hard TTL) жана negative-cache.
  • URL/cookies белги күйгүзүү, origin жашыруу, WAF/бот чыпкалар күйгүзүү.
  • майып уюштуруу: Surrogate-Key/BAN + event-driven.
  • hit/byte-hit/offload/TTFB жана per-POP дашбордддорун көтөрүү.
  • чокулары алдында жылытуу, бороон/ашыкча боюнча runbooks.
  • Купуялык/регионалдуулук тесттер, ачкычтарды текшерүү жана саясат.
  • SLO/edge үчүн туура эмес бюджет жана TTL/SWR auto-tweaks критерийлери.

15) FAQ

Q: четинде TTL кантип тандоо керек?
A: Жол берилген эскирүү жана hit-ratio максатын четке кагуу. "Дээрлик динамика" үчүн - 1-5 с + SWR; маалымдамалар/сүрөттөр үчүн - окуялар/тегдер боюнча майыптыгы бар мүнөттөр/сааттар.

Q: Качан Shield POP керек?
A: Глобалдык трафик же ысык ачкычтар менен: калкан origin боюнча каталарды кескин азайтат жана "кууп жетүү" толкундарын турукташтырат.

Q: Кантип уруксат жоопторду кэш?
A: Же 'private' (браузер), же public менен signed cookie/URL жана ачкычтын сегментациясы (PII жок), же жалпы маанилүү жеке маалыматтар үчүн bypass.

Q: HTTP/3 менен эмне кылуу керек?
A: Эске алуу: өзгөчө мобилдик/жоготуу канал утуп. Прокси жана fallback шайкештигин HTTP/2.

16) натыйжалары

Edge кэштер жана POP тармагы - жогорку ылдамдыктагы жана үнөмдүү платформалардын пайдубалы. Ийгилик туура ачкыч жана 'Vary', акылга сыярлык TTL/SWR/SIE, тегдер/окуялар боюнча майыптык, tiered/shield origin коргоо, ошондой эле байкоо (hit/offload/TTFB) жана коопсуздук/купуялык тартиби менен аныкталат. Чек тизмесин ээрчип, "край" сюрприз булагы эмес, сиздин ылдамдаткычыңыз болуп калат.

Contact

Биз менен байланышыңыз

Кандай гана суроо же колдоо керек болбосун — бизге кайрылыңыз.Биз дайым жардам берүүгө даярбыз!

Telegram
@Gamble_GC
Интеграцияны баштоо

Email — милдеттүү. Telegram же WhatsApp — каалооңузга жараша.

Атыңыз милдеттүү эмес
Email милдеттүү эмес
Тема милдеттүү эмес
Билдирүү милдеттүү эмес
Telegram милдеттүү эмес
@
Эгер Telegram көрсөтсөңүз — Emailден тышкары ошол жактан да жооп беребиз.
WhatsApp милдеттүү эмес
Формат: өлкөнүн коду жана номер (мисалы, +996XXXXXXXXX).

Түшүрүү баскычын басуу менен сиз маалыматтарыңыздын иштетилишине макул болосуз.