CDN жана latency reduction оптималдаштыруу
1) Максаттар жана кечигүү картасы
Latency = DNS + TCP/TLS + TTFB (Server/Orijin/Кэш) + мазмун жеткирүү (RTT × көлөмү) + кардар рендер.
Оптималдаштыруу = RTT санын кыскартуу, байттарды азайтуу жана эсептөө/кэш колдонуучуга жакын которуу.
2) CDN Архитектура
Anycast POPs - BGP багыттоо боюнча жакын түйүн.
Tiered caching/Origin Shield - "кол чатыр" Ориджин боюнча мисс бороон азайтуу аралык катмар.
Geo-/Regional routing - тенанттын/юрисдикциянын байланышы (маалыматтардын, лицензиялардын эгемендүүлүгү).
Failover - резервдик origin/аймак, ден соолук үлгүлөрү жана тез которуу.
3) Кэш: ачкычтар, аталыштар, стратегиялар
3. 1 Кэш ачкычтары (cache key)
демейки: 'scheme + host + path +? query'.
Керектүү параметрлерди гана кошуңуз ('? v =', '? lang =', '? tenant ='). Калгандары - ignore-params.
'Vary' - минималдуу: 'Accept-Encoding', 'Accept-Language' (эгер керек болсо), 'Authorization' адатта кэшти бузат.
3. 2 Саясат
Public статикасы: 'Cache-Control: public, max-age = 31536000, immutable' + rev (ысымында hash).
Жарым динамика (каталогдор, эрежелер, FAQ): 's-maxage = 300, stale-while-revalidate = 600, stale-if-error = 86400'.
API-GET: ETag/Last-Modified, 'SWR/SIE' колдонуңуз, coalescing (ысык ачкычка бир суроо) киргизиңиз.
Private: жеке жооптор - edge-compute (ESI/kv) же per-tenant кэш аркылуу периметрде.
3. 3 Анти-бороон
Request coalescing - бир эле учурда miss өтүнүчтөрдү талкалап.
Serve-stale - ориджин бузулганда эскирген объектти берүү.
Background revalidation - алкагында тактоо.
4) HTTP/2-3, TCP/TLS жана эрте кайтаруу
HTTP/2: мультиплекс, аталыштарды кысуу; чектөө 'max concurrent streams', чоң аталыштар.
HTTP/3 (QUIC): мобилдик/жогорку жоготуу боюнча TTFB ири кыскартуу; Initial босоголорун жана Retry.
TLS 1. 3: 1-RTT handshake; OCSP stapling; HSTS.
0-RTT: гана Emempotent 'GET' үчүн жана replay тобокелдиктер эске алынган болсо.
103 Early Hints: эрте 'Link: rel = preload' критикалык ресурстар үчүн.
Preconnect / DNS-prefetch: `<link rel="preconnect" href="https://cdn. example">`.
5) Edge-compute жана "жука жекелештирүү"
Четинде: аталыштарды каттоо, гео/тенант-бекитүү, A/B-маркировкалоо, ориджинге суроо-талапсыз жеңил персоналдаштыруу.
Эреже: PIIди POP түйүндөрүндө сактабаңыз; агрегаттарды/коомдук маалыматтарды гана кэш.
6) Медиа жана формат оптималдаштыруу
Сүрөттөр: WebP/AVIF, resize-on-edge, 'srcset/sizes', 'lazyload'.
Компрессия: тексттер үчүн Brotli (HTML/CSS/JS/JSON), gzip fallback.
Video: HLS/DASH, CDN-segment caching, 'preload = metadata', плакат.
Шрифттер: subset + 'font-display: swap'; узак кэш менен хостинг.
Критикалык CSS: биринчи экран; калганы - async.
7) API үлгүлөрү жана кэш
Idempotent GET - суроо ачкычтары боюнча кэш (маалыматтар нускасын кошо алганда).
ETag: күчтүү хеш + 'If-None-Match'.
Surrogate-Control (CDN-өзгөчөлүгү) 'Cache-Control' кардардан айырмаланат.
Signed URLs - жеке статика/медиа үчүн.
GraphQL: операция/өзгөрмөлүү кэш ачкычын нормалдаштыруу; partial caching/резолвер кэш колдонуу.
WebSockets: реалдуу убакыт үчүн - билдирүүлөрдү кыскартуу, кысуу (permessage-deflate), WS-шарларды колдонуучуга жакын жайгаштыруу.
8) Конфигурация мисалдары
8. 1 NGINX (Orijin: кэш API-GET)
nginx
We give SWR and ETag location/api/v1/catalog/{
proxy_cache api_cache;
proxy_cache_key "$scheme$request_method$host$uri$is_args$args";
proxy_cache_valid 200 5m;
proxy_cache_use_stale updating error timeout http_500 http_502 http_503 http_504;
add_header Cache-Control "public, s-maxage=300, stale-while-revalidate=600, stale-if-error=86400";
add_header ETag $upstream_http_etag;
proxy_ignore_headers Set-Cookie; # do not break the Set-Cookie proxy_hide_header cache;
proxy_pass http://catalog;
}
8. 2 Fastly VCL (SWR, coalescing, ignore cookies)
vcl sub vcl_recv {
set req. hash_ignore_busy = true; # coalescing if (req. url. qs ~ "^(?!.(lang v)=)") { remove req. url. qs; }
if (req. http. Cookie) { remove req. http. Cookie; }
}
sub vcl_backend_response {
set beresp. ttl = 300s;
set beresp. stale_if_error = 86400s;
set beresp. stale_while_revalidate = 600s;
if (beresp. http. Set-Cookie) { unset beresp. http. Set-Cookie; }
}
8. 3 Cloudflare (Transform Rules, Cache Rules, Early Hints — псевдо)
json
{
"cache_rule": {
"if": "http. request. uri. path matches \"/assets/.\"",
"action": {"cache": {"eligibility":"eligible", "ttl": 31536000}}
},
"transform_rule": {
"set_headers": [{"name":"Cache-Control","value":"public, s-maxage=300, stale-while-revalidate=600"}]
},
"early_hints": {"enable": true}
}
9) Мобилдик тармактары жана "туруксуз" Интернет
Агрессивдүү HTTP/3 колдонуу; критикалык жолдун өлчөмүн азайтуу (HTML + critical CSS <14 KB).
Priority H2/H3: артыкчылык (HTML → CSS → JS → медиа кийин).
Джиттер менен Ретрай саясаты, API үчүн idempotency.
Size-budgets жана bandling: code-splitting, deferred JS, пайдаланылбаган CSS/JS алып салуу.
10) Байкоо жана SLO
RUM: TTFB, LCP, INP, региондор боюнча CLS/ASN/тенант; p95/p99 бөлүштүрүү.
Синтетика: "/health/cdn "көзөмөл маршруту POP-ам.
Кэш-метриктер: hit-ratio overall жана per-key; origin fetch rate; coalescing savings.
Alerty: hit-ratio кулашы, origin-egress өсүшү, H3 үлүштөрүнүн деградациясы, 5xx shield.
11) iGaming/Каржы өзгөчөлүктөрү
Оюн каталогдору/коэффициенттери: кыска 's-maxage' + SWR; region-aware ключ (`tenant|region|lang`).
Окуя чокулары (матчтар, чүчүкулак): жылытуу кэш (алдын-warm), "тоңдуруп" оор жекелештирүү, mirror булактары.
Төлөм/кабинет: жеке кэш жок, бирок H3 + edge-TLS жана жакын аймак аркылуу тездетүү.
Юрисдикциялар: бөлүнгөн домендер/жолдор per-аймак; башкаруу 'Vary: X-Аймак'.
12) Антипаттерндер
'Vary:' катары менен бардык; кэш ачкычы кошумча кукилерге/аталыштарга көз каранды.
Жок SWR/SIE → "кара экрандар" кыска Ориджин бузулганда.
Тегдер/ачкычтар боюнча чекиттик майыптыктын ордуна "бардык жагынан" кэшти тазалоо.
Аты-жөнүн кайра карап чыкпаган ресурстар менен 'max-age = 0'.
Global deny-cache үчүн 'Authorization' коомдук берилген жерде да.
Жок coalescing → Ориджин боюнча бороон.
Эрте "оор" POP жекелештирүү.
13) Prod-даярдык чек тизмеси
- Anycast POP + tiered/shield; health-текшерүү жана origin failover.
- Кэш ачкычтары минималдуу; "Surrogate-Control".
- SWR/SIE киргизилген, coalescing активдүү; serve-stale ката.
- HTTP/3 киргизилген; TLS 1. 3; 103 Early Hints маанилүү ресурстар үчүн ылайыкташтырылган.
- Сүрөттөр: AVIF/WebP, resize-on-edge; текст үчүн Brotli.
- API-GET с ETag/Last-Modified; демпотенттик/ретра; жеке профилдерди кэштоого болбойт.
- Static домендери үчүн Preconnect; критикалык CSS онлайн.
- Метрика: hit-ratio, origin-egress, TTFB/LCP p95, H3-үлүшү, региондор/тенанттар боюнча.
- Иш-чаралардын алдында кэш жылытуу планы; чекиттик майыптык (тегдер).
- Документация Vary/keys/TTL; окуя playbook (hit-ratio түшүп).
14) TL; DR
Orijin минималдаштырып: tiered/shield + туура cache-keys + SWR/SIE + coalescing. Киргизиңиз HTTP/3/TLS 1. 3, колдонуу 103 Early Hints жана preconnect. Медиа кырын кысып жана которуу, критикалык CSS онлайн. API үчүн - ETag, тыкан 'Vary', демпотенттик жана акылга сыярлык 'GET' кэштери. Өлчөө hit-ratio, TTFB/LCP p95, origin egress жана чокуларында алдын ала кэш жылытуу.