GH GambleHub

Технология және инфрақұрылым → CDN желісі және контентті кэштеу

CDN желісі және мазмұнды кэштеу

1) Неге CDN және кэш

CDN (Content Delivery Network) RTT және TTFB қысқартады, origin түсіреді және P95/P99 қалдықтарын тұрақтандырады. iGaming/финтех үшін бұл:
  • Каталог, ассеттер, промо, медиа үшін жылдам бірінші байт.
  • Ең жоғары орнықтылық (турнирлер/ивенттер) жарылыс өсімінсіз origin-қуаты.
  • Egress үнемдеу және болжамды құн.
  • Геобақылау (реттеуіш, контентті лицензиялау).

2) Кешендірудің базалық стратегиялары

2. 1 Кешіктіруге болатын жауаптар

Статика: JS/CSS/қаріптер/иконалар - ұзын TTL (30-365 күн) + атаудағы file-hash.
Жартылай статистика: ойын каталогтары, баннерлер, конфигалар - TTL + 'stale-while-revalidate'.
API GET/HEAD: анықтамалықтар, прайсинг, лидбордтар - қысқа TTL (5-120 сек).

2. 2 Тақырыптар

`Cache-Control: public, max-age=600, stale-while-revalidate=300, stale-if-error=600`

Шартты сұраулар үшін 'ETag '/' Last-Modified'.
'Surrogate-Control '/' CDN-Cache-Control' (егер провайдер қолдаса).
Жеке деректер үшін: 'Cache-Control: no-store' (жай 'no-cache' емес).

2. 3 Кэш кілті (cache key)

Негізгі: жауап беруге әсер ететін әдіс + URL жолы + query параметрлері.
Қоспалар: 'Accept-Encoding' (gzip/br), 'Accept' (json/webp/avif), жергілікті ('Accept-Language'), егер контентке әсер етсе, өңір/валюта.
Кездейсоқ тақырыптарға (cookies, trace ids) кірмеңіз.


3) Vary басқару және кукилер

'Vary: Accept-Encoding, Accept, Accept-Language' - ең аз қажетті жиынтық.
Кешіктірілетін жолдарға арналған CDN-дегі cookies стриппингі: whitelisted (мысалы, AB-жалаулардан басқа).
session идентификаторларын кешірілетін мазмұннан тыс ішкі домендерге/жолдарға тасымалдау.


4) TTL және жаңалық үлгілері

Immutable статикасы: 'Cache-Control: public, max-age = 31536000, immutable' + файл атауындағы нұсқасы.
SWRO/SIE: 'stale-while-revalidate' және 'stale-if-error' - origin проблемалары кезіндегі UX-тұрақтылық.
Partitioned TTL: ойындардың түбірлік тізімі - 30-60 сек; ойын карточкасы - 5-10 мин; баннерлер - 30 мин.
API микс: базалық анықтамалықтар - 5-30 мин; валюталар/лимиттер - 1-5 мин; лидборд ― 2-15 сек.


5) Tiered caching и origin shield

Tiered/Regional caches: edge арқылы өткен сұраулар origin орнына аймақтық «shield» дегенге соғылады.
Артықшылықтары: origin-де MISS аз, «дауылды» тегістеу, egress-тен арзан.
Қалқандарды ең үлкен трафик тығыздығымен (EU, TR, BR, LATAM) гео бойынша топтастырыңыз.


6) Мүгедектік және жылыну

Purge by path/prefix/tag: тегтер пакеттік тазалау үшін ыңғайлы (каталогты шығару, жарнамалық науқан).
Soft purge (grace): мазмұнды ескірген деп белгілейміз, бірақ жаңасы келгенге дейін береміз.
Жылыту (prewarm): шығару кезіндегі/турнир алдындағы сценарийлер: танымал жолдардан сұрау, спрайттар мен суреттердің вариацияларын генерациялау.
Канареялық мүгедектік: ішінара тазартамыз, метриканы/қателерді валидациялаймыз, содан кейін кеңейтеміз.


7) Edge-ережелер мен функциялар (Workers/Functions)

Жауаптарды қайта жазу: кэш тақырыптарын қосу, 'Vary' қалыпқа келтіру, cookies стриппингі.
Geo/ASN-роутинг: редиректорлар, жергілікті/ел бойынша валюта.
Қорғалған медиа/нысандар үшін URL (Signed URLs/Headers) қолтаңбасы.
Edge-AB-тесттер: жеңіл, origin жүктемесінің өсуі жоқ (тек статик/жартылай статик үшін).
Edge-compute: жеңіл виджеттер/дербестендіру рендері, бірақ ыстық төлем жолы емес.


8) Суреттер мен бейнелер

8. 1 суреттер

Автоконверсия: 'Accept' клиенті кезінде WebP/AVIF; 'Vary: Accept'.
edge бойынша ресайзинг: параметрлері 'w/h/fit/quality'; пресеттерді (карточка, баннер, превью) дайындаңыз.
Спрайттар және SVG-оңтайландыру, фронтқа lazy-loading.

8. 2 Бейне/ағым

HLS/DASH қысқа сегменттермен (2-4 сек), жабылатын плейлистер.
Жақын сегменттердің preload және 'stale-if-error'.
Live-ставкалар үшін - TTFB қысқарту үшін аймақтық shield сегменттерін ұстаңыз.


9) CDN арқылы API

Кешірілетін GET: 'Cache-Control' және дұрыс кілтті (жергілікті/валюта/өңір) қосыңыз.
Conditional GET: 'ETag '/' If-None-Match' байттарды және TTFB төмендетеді.
POST/PUT: кешірілмейді; POST жауаптарын тек айқын ережелер мен теңсіздік семантикасы кезінде кешіктіруге болады (сирек ақталады).
Rate limiting/WAF шетінде: боттарды/аномалияларды кесу есебінен қалдықтарды азайтады.


10) Қауіпсіздік, қолжетімділік және комплаенс

WAF/бот-менеджмент: сигнатуралар, мінез-құлық эвристикасы, бонустар сканерлерінен қорғау.
Медиа және жеке жүктеулер үшін Signed URLs/Headers.
mTLS к origin и IP allow-list.
GDPR/PII/PCI: сезімтал деректерді кешіктірмеу; Дербес жауаптары бар API - 'no-store'.
Нарық реттегіштерінің талаптары бойынша шетіндегі Geo-сүзгілер/бұғаттау.


11) Желі және хаттамалар

CDN, TLS resumption және OCSP stapling HTTP/2/3 қосыңыз.
Brotli (br) мәтіндік пішімдер үшін, gzip - fallback.
TCP/QUIC-тюнинг (провайдерде) → шығындардың әсері аз, әсіресе ұтқыр желіде.


12) CDN үшін бақылау және SLO

Метрика (edge және shield бойынша):
  • Hit Ratio (overall және префикстер бойынша), Origin Offload.
  • TTFB өңірлер бойынша P50/P95/P99/ASN.
  • Мәртебе кодтары бойынша Throughput/Errors (edge/origin).
  • Purge latency (мүгедектікті жеткізу уақыты).
  • Image transform latency (егер шетінде ресайзинг қолдансаңыз).
SLO мысалдары:
  • Ойындар каталогы: TTFB P95 ≤ 150 мс, Offload ≥ 85%.
  • Медиа (суреттер): Hit Ratio ≥ 90%, трансформация қателері <0. 1%.
  • API GET «анықтамалықтар»: TTFB P95 ≤ 200 мс, Revalidation Hit ≥ 60%.

13) FinOps: кэш құны

Offload = origin → тікелей $ -дан кем egress.
Tiered + shield «дауылдарды» және MISS-жүктемені кеседі.
Кескіндерді оңтайландыру (AVIF/WebP/resize) трафикті барынша үнемдейді.
Жауап салмағының P95 және «қымбат MISS» (байттар × саны × өңір) бақылаңыз.


14) Конфигалар және ережелер (фрагменттер)

14. 1 origin (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 edge кілтін қалыпқа келтіру (псевдо)

js addRule((req) => {
// очищаем шум req.cookies.clearExcept(['ab', 'locale']);
// ключ = method+path+критичные query key = `${req.method}:${req.path}?lang=${q.lang}&currency=${q.cur}`;
req.setCacheKey(key);
req.setVary(['Accept', 'Accept-Encoding', 'Accept-Language']);
});

14. 3 Signed URL (идея)


/media/{path}?exp=1735707600&sig=HMAC_SHA256(secret, path    exp    ip)
На edge: проверка exp и подписи, опционально привязка к IP/ASN.

15) Релиз және пайдалану процестері

Release hooks: деплойдан кейінгі тегтер/префикстер бойынша автоматты purge.
Prewarm-тізім: трафик/конверсия бойынша топ-жолдарды алдын ала жылыту.
TTL-матрица каталогы: өніммен/маркетингпен келісілген.
Инциденттер: MISS/TTFB өсуі кезінде - stale-if-error қосамыз, origin тұрақтандырылғанға дейін edge-дегі қымбат трансформацияларды «алып тастаймыз».


16) Енгізу чек-парағы

1. Мазмұн картасы (статика/жартылай статика/API) және TTL-матрица.
2. 'Cache-Control', 'ETag/Last-Modified', 'Vary' түзетулері.
3. «Шусыз» кэш кілті, cookie-стриппинг, whitelists.
4. Өңірлер бойынша Tiered caching + origin shield.
5. Тегтер/префикстер бойынша purge, soft purge, prewarm-процедуралар.
6. Edge функциялары: қалыпқа келтіру, гео-логика, Signed URLs.
7. Кескіндерді оңтайландыру (WebP/AVIF/resize), бейне үшін HLS-сегменттер.
8. WAF/бот-сүзгілер, geo-шектеулер, mTLS к origin.
9. SLO-дашбордтар: TTFB, Hit Ratio, Offload, трансформация қателері.
10. FinOps-есептер: $/GB, қымбат MISS, egress бойынша көшбасшы өңірлер.


17) Қарсы үлгілер

'no-cache' барлық жерде «жағдайға».
Кэш кілті барлық query/тақырыптарды қамтиды → нөлдік Hit Ratio.
Статикаға арналған cookie-тәуелді жауаптар (кэшті толығымен бұзады).
Әрбір релизде бүкіл CDN-ді тазалау.
Шыңдар кезінде edge-дегі ұзақ синхронды трансформациялар.
Жоқ 'stale-while-revalidate '/' stale-if-error' - UX күрт тозуы.
Дербес деректерді/жауаптарды 'no-store' -сыз кешіктіру.


18) iGaming/финтех контексті: практикалық ноталар

Турнирлер/ивенттер: көшбасшы бордқа қысқа TTL (2-10 сек) + SWR; ойын карточкалары мен баннерлердің prewarm.
Гео-лицензиялау: edge-бұғаттау/ел бойынша редиректорлар, кэш кілтіндегі валюта/локаль.
Промо және купондар: баннерлерді/шарттарды кэштейміз, бірақ дербес лимиттерді емес.
Жауапты ойындар: саясат/лимиттер беттері - SWR бар жартылай статистика; дербес деректер - тек 'no-store'.
PSP/KYC вебхактар: CDN немесе edge-pass-through арқылы кэшсіз және қатты таймауттар арқылы емес.


Жиынтық

Күшті CDN стратегиясы - бұл дұрыс тақырып және кэш кілті, MISS төмендету үшін tiered/shield, қалыпқа келтіру және қорғау үшін edge функциялары, тез релиздер үшін мүгедектік/жылыту және SLO және FinOps-пен бақылау. Осы қағидаларды сақтай отырып, сіз TTFB-ді пайдаланушылар мен серіктестерге болжамды ете алатын жылдам және үнемді периметрді аласыз.

Contact

Бізбен байланысыңыз

Кез келген сұрақ немесе қолдау қажет болса, бізге жазыңыз.Біз әрдайым көмектесуге дайынбыз!

Интеграцияны бастау

Email — міндетті. Telegram немесе WhatsApp — қосымша.

Сіздің атыңыз міндетті емес
Email міндетті емес
Тақырып міндетті емес
Хабарлама міндетті емес
Telegram міндетті емес
@
Егер Telegram-ды көрсетсеңіз — Email-ге қоса, сол жерге де жауап береміз.
WhatsApp міндетті емес
Пішім: +ел коды және номер (мысалы, +7XXXXXXXXXX).

Батырманы басу арқылы деректерді өңдеуге келісім бересіз.