Tarmoqdagi kontent oqimlari
(Bo’lim: Ekotizim va Tarmoq)
1) O’zbekiston Respublikasining
Kontent oqimlari - bu o’yin artefaktlarini (kod/assetalar/media), meta-ma’lumotlarni (manifestlar, lokallar, qoidalar), shuningdek, telemetriya va ekotizim ishtirokchilari o’rtasidagi voqealarni yetkazib berishning boshqariladigan traektoriyalari. Maqsadlar:- Past latentlik va pik UX barqarorligi.
- QoS/kvotalar, SLI/SLO orqali bashorat qilish va kuzatish.
- Uyg’unlik va downtimessiz versiyalar.
- Xavfsizlik, komplayens va trafik birligi qiymati.
2) Oqimlar taksonomiyasi
1. On-Demand (pull) - mijoz xesh-URL bo’yicha assetalar/manifestlar so’raydi.
2. Push/Invalidate - kesh va obuna (webhooks) apdeytlari/nogironlari.
3. Streaming - uzoq muddatli kanallar (WebSocket/gRPC).
4. Batch/Scheduled - kataloglar, lokallar, hisobotlarni rejali tushirish.
5. Side-band Telemetry - asosiy UXga xalaqit bermaydigan hodisalar/metriklar/treyslar.
6. Control-Plane - jismoniy nafaqa, rezidentlik qoidalari, sanksiyalar ro’yxati/DRM.
Har bir tur o’zining QoS sinflari, kanallari va retraj siyosatini oladi.
3) Rollar, uzellar va trayektoriyalar
Kontent ishlab chiqaruvchi (studiya) → agregator/reyestr → operator → CDN/edge → mijoz.
Servis uzellari: mahalliylashtirish, DRM/qoidalar, to’lov/jekpot-servislar, anti-frod, monitoring.
Omborlar: manifestlar reyestri, SDK versiyasi, media obyekt ombori, telemetriya TSDB.
Namunaviy trayektoriya: mijoz manifestni soʻraydi → asbob/lokal profili boʻyicha assetalarni tanlaydi → CDN/edge keshdan beradi; shu bilan birga, lobbi/jekpotlarning oqimi ochiladi va telemetriya side-band bo’ylab ketadi.
4) Transport va formatlar
assetalar va manifestlar uchun HTTP/2/3 (TLS, Brotli/Gzip, range).
gRPC/QUIC/WebSocket - ikki yo’nalishli hodisa/holat oqimlari.
Webhooks - o’zgarishlarga sheriklarning obunalari (nogironlar, kontent yangilanishlari).
Manifestlar (JSON/YAML) xesh-manzillash (immutable URL), assetalar ro’yxati va mos kelish matritsasi (til/brauzer/SDK) bilan.
Yaxlitlik va keshlash uchun kontent xeshlari (Merkle/sha256).
5) QoS, kvotalar va backpressure
Sinflar:- P0 - tanqidiy UX (manifest, o’yin yadrosi, hamyon, qoidalar),
- P1 - asosiy assetalar/UI va oqimlar,
- P2 - yuqori zichlikdagi media, diagnostika, arxiv.
- Kvotalar: RPS/raqobatbardosh, bayt/sek, obuna/mijoz.
- Backpressure: tokenlar/kreditlar, obuna cheklovlari, «heavy-query guard» (diapazonlar/filtrlar), DLQ bilan navbatlar.
- Ustuvorlik: P0/P1/P2 uchun alohida navbatlar/klaster, avariyalarda «kesh-faqat» yo’nalishini tanlash.
6) Yo’naltirish va keshlash
GeoDNS/Anycast + Latency-Aware LB - har doim eng yaqin sogʻlom markazga.
Keshlar: edge (qisqa HTML TTL, uzun asset TTL), negative cache, kanareykalar uchun prewarm.
Assetalar variantlari: AVIF/WebP/bitreyt-zinapoyalar, device hints (burchak/piksel zichligi).
Hash-URL: qat’iy keshlash, atom relizlari, xesh bo’yicha qaytish.
yaml cdn:
ttl:
html: 60s manifest: 5m assets: 30d immutable_assets: true vary:
- "Accept-Encoding"
- "User-Agent-Class" # mobile/desktop/legacy signed_urls: true
7) Kelishilganlik, tartib va versiyalar
«Manifest → assetalar» modeli: mijozlar vX manifestiga obuna bo’ladilar. YZ’, assetalar - immutable.
Event-ordering: muhim voqealar (jekpotlar, live-signallar) - kalit/kanal doirasida.
SemVer va «ikki chiziq» (GA va Canary) versiyalari. Deprecation ≥ 90 kun.
Downtaymsiz migratsiyalar: blue-green, manifestlardagi mos keladigan maydonlar, mijozlar uchun ficheflaglar.
8) Kuzatish darajasi: SLI/SLO va signallar
Yadro SLI:- TTI/TTL p95 (sahifa/o’yin),
- Asset Fetch Success%, CDN Hit%,
- Stream RTT p95 и Reconnect Rate,
- Manifest Drift (eskirgan versiyadagi mijozlar),
- Error Rate (JS/WASM/SDK),
- Geo-Hit Ratio (mahalliy xizmat ko’rsatilgan so’rovlar),
- Cost per 1k asset fetches (CTS).
- TTI p95 ≤ 2. 5s (Wi-Fi) / ≤ 4. 0s (mobile),
- Asset success ≥ 99. 8%, CDN hit ≥ 90%,
- Mintaqada Stream RTT p95 ≤ 300 ms,
- Manifest drift ≤ GA bo’yicha 24 soat uchun 1%,
- Error rate ≤ 0. 4%.
Telemetriya: latentlik gistogrammalari, bandllar o’lchamlari, drop/retry webhooks, strimlarga yuk, crash-free rate.
9) Xavfsizlik va himoya
servislar o’rtasida mTLS; webhook imzolari (HMAC, ruxsat etilgan vaqt oynasi).
DRM/anti-tamper: yaxlitlik tekshiruvi, CSP/Referrer-Policy, domen allow varaqlari.
Anti-bot/anti-skraping: rate-limits, xulq-atvor signallari, JA3/FP, puzzle-challenges, «yumshoq» banalar.
PII-minimallashtirish: leybllar/loglar/manifestlarda shaxsga doir ma’lumotlarning yo’qligi.
Rezidentlik: hududlar/yurisdiksiyalar bo’yicha media/lokallarni eksport qilish qoidalari.
10) Degradatsiya rejimlari
Assetalar uchun Cache-Only va oqimlar uchun «finalized-only».
Lite-manifest (minimal assetalar, o’chirilgan video/animatsiyalar).
Oldingi GA manifesti uchun Graceful fallback.
Tanqidiy bo’lmagan funksiyalar uchun Read-only, «qimmat» so’rovlarni o’chirish.
11) Relizlar va kanareykalar
Release windows: ish kunlari, mintaqa/klasterning sof soatlari.
Canary 5% trafik/ ≥ 120 min; SLO-geytlar (TTI/xato/RTT).
Rollback atomik (xesh/versiya bo’yicha), sessiyalarni uzmasdan.
Issiq hududlar va mashhur o’yinlar uchun Prewarm CDN.
yaml release:
canary:
share_pct: 5 min_duration_min: 120 gates:
tti_p95_ms: 2500 error_rate_pct: 0. 4 rollback:
auto_on: ["slo_breach","crash_rate>0. 6"]
target: "previous_ga"
12) Ma’lumotlar va kataloglar
Manifestlar katalogi
sql
CREATE TABLE manifests (
game_id TEXT,
version TEXT,
region TEXT,
status TEXT, -- canary ga deprecated asset_root TEXT, -- CDN prefix content_hash TEXT, -- Merkle/sha256 sdk_min TEXT,
created_at TIMESTAMPTZ,
PRIMARY KEY (game_id, version, region)
);
Assetalar tanlanmasi loglari
sql
CREATE TABLE asset_fetch_log (
ts TIMESTAMPTZ,
region TEXT,
game_id TEXT, version TEXT,
path TEXT, bytes INT,
status SMALLINT,
latency_ms INT,
served_from TEXT -- edge origin cache
);
Oqimlar metrikasi
sql
CREATE TABLE stream_metrics (
ts TIMESTAMPTZ, region TEXT, channel TEXT,
rtt_p95_ms INT, reconnect_rate NUMERIC,
subscribers INT, drops INT
);
13) Yo’naltirish/kesh siyosati
yaml routing:
prefer_local: true fallback_chain: [nearest_healthy, master_hub]
qos:
P0: { rps_per_org: 1500, ack_timeout_ms: 2000, retries: 3 }
P1: { rps_per_org: 800 }
P2: { rps_per_org: 200, best_effort: true }
heavy_query_guard:
deny: ["logs>5000blocks","media_raw>200MB"]
require_token: true cache_policy:
manifest_ttl: "5m"
asset_ttl: "30d"
negative_ttl: "30s"
prewarm:
regions: ["eu","uk","na"]
top_games: 50
14) Dashbordlar
Content Flow Core: TTI/TTL, Asset success, CDN hit, Drift, Error rate.
Streaming: RTT p95, reconnect, drops, obunachilar/kanal.
Routing & QoS: per-class latency/RPS, queue-lag, throttle hits.
Economy: CTS/1k fetches, trafik/mintaqa, $/GB, TPS_per_$.
Compliance/Security: CSP qoidabuzarliklari, webhook imzolari, mintaqalar boʻyicha eksport.
15) Hodisalar Playbook
A. TTI/TTL p95 ning o’sishi
1. cache-only va lite-manifestga oʻtish; 2) prewarm/kompresssiyani yoqish;
2. edge/API replikalarini ko’paytirish; 4) og’ir assetalarni tahlil qilish, vaqtincha o’chirish.
B. CDN hit
1. TTL/o’zgaruvchanligini tekshirish; 2) prewarm va hash-URLni kiritish;
2. assetalarni birlashtirish (bundling), rasm/videolarni optimallashtirish.
S. Oqimlardagi reconnect choʻqqilari
1. Muammoli hududlarni mahalliylashtirish; 2) obuna/kanallarni cheklash;
2. buferlarni/pingni ko’paytirish; 4) yangilanishlar chastotasini vaqtincha kamaytirish.
D. ommaviy xatolar WASM/JS
1. muammoli versiyadagi Kill-switch; 2) N-1 ga qaytish;
2. trassalar/staklarni yig’ish; 4) hotfix, post-mortem va test-keyslar.
E. eksport rezidentligini buzish
1. Mintaqalararo replikatsiya bloki; 2) redaction;
2. Compliance’ni xabardor qilish; 4) qoidalar/testlarni yangilash.
16) Joriy etish chek-varaqasi
1. Oqim modelini (pull/push/stream/batch) va QoS sinflarini oʻrnating.
2. Manifestlar va assetalarning hash-manzili, CDN va prewarm moslamalarini kiriting.
3. (GeoDNS/Anycast), keshlar va heavy-query guard.
4. SLI/SLO ni aniqlab, telemetriyani yoqing (TTI/asset success/stream RTT).
5. Xavfsizlikni yoqing (webhooks, DRM, CSP bilan imzolangan mTLS).
6. Relizlar (canary, xeshga qaytish), degradatsiya rejimlarini tashkil qiling.
7. Core/Streaming/Routing/Cost/Compliance dashbordlarini quring.
8. Muntazam ravishda chaos testlarini o’tkazing: CDN muvaffaqiyatsizliklari, yuqori RTT, loss/jitter.
17) Glossariy
TTI/TTL - interaktivlik/to’liq yuklash vaqti.
Geo-Hit Ratio - mahalliy xizmat ko’rsatilgan so’rovlar ulushi.
Immutable URL - yaxlitlik/keshlanuvchanlikni kafolatlovchi xesh manzillari.
Backpressure - kirish yuklamasini nazorat qilish mexanizmlari.
DLQ - muammoli xabarlar uchun «o’lik navbat».
Drift - dolzarb bo’lmagan manifestlardagi mijozlar ulushi.
CTS per 1k fetches - assetalarning 1000 tanlanmasi qiymati.
Xulosa: «Kontent oqimlari» - bu shunchaki CDN va fayllar emas, balki yo’nalishlar, QoS, versiyalar va kuzatish tizimidir. Standartlashtirilgan manifestlar, hash-manzillar, kanareya relizlari va qattiq SLOlar bashorat qilinadigan UXni beradi, degradatsiya rejimlari va anti-abyuz esa yuklama va nosozliklar ostida ekotizimning barqarorligini beradi.