Желідегі мазмұн ағындары
(Бөлім: Экожүйе және Желі)
1) Мақсаты мен мәні
Контент ағындары - бұл ойын артефактілерін (код/ассеттер/медиа), метадеректерді (манифесттер, локальдар, ережелер), сондай-ақ телеметриялар мен экожүйеге қатысушылар арасындағы оқиғаларды жеткізудің басқарылатын траекториялары. Мақсаттары:- Шыңдалған кезде төмен латенттілік және тұрақты UX.
- QoS/квота, SLI/SLO арқылы болжамдылық және бақылау.
- Сыйысымдылық және нұсқа түбіртексіз.
- Қауіпсіздік, комплаенс және трафик бірлігінің құны.
2) Ағындардың таксономиясы
1. On-Demand (pull) - клиент хеш-URL бойынша ассеттер/манифесттер сұратады.
2. Push/Invalidate - апдейттер/кэш және жазылым мүгедектері (webhooks).
3. Streaming - лобби/джекпот/лайв-оқиғалар үшін ұзақ арналар (WebSocket/gRPC).
4. Batch/Scheduled - каталогтарды, локальдарды, есептерді жоспарлы түсіру.
5. Side-band Telemetry - негізгі UX-ке кедергі келтірмейтін оқиғалар/метриктер/трестер.
6. Control-Plane - фичефлагтар, резиденттік ережелері, санкциялар/DRM тізімдері.
Әрбір түр өз QoS кластарын, арналар мен ретрайлер саясатын алады.
3) Рөлдер, тораптар және траекториялар
Контент өндіруші (студия) → агрегатор/тізілім → оператор → CDN/edge → клиент.
Сервистік тораптар: локализация, DRM/ережелер, төлем/джекпот-сервистер, анти-фрод, мониторинг.
Сақтау орындары: манифесттер тізілімі, SDK нұсқалары, объектілік медиа сақтау орны, телеметрия TSDB.
Типтік траектория: клиент манифесті сұратады → құрылғы/локаль профилі бойынша ассеталарды таңдайды → CDN/edge кэштен береді; параллель түрде stream лобби/джекпоттар ашылады, ал телеметрия side-band бойынша кетеді.
4) Көлік және форматтар
Ассеттер мен манифесттерге арналған HTTP/2/3 (TLS, Brotli/Gzip, range).
gRPC/QUIC/WebSocket - оқиғалар/күйлердің екі бағытты ағыны.
Webhooks - өзгерістерге серіктестердің жазылымдары (мүгедектер, контент-апдейттер).
Хеш-мекенжайы (immutable URL), ассеттер тізімі және үйлесімділік матрицасы (тіл/браузер/SDK) бар манифесттер (JSON/YAML).
Тұтастық және кэштеу үшін контент-хэштер (Merkle/sha256).
5) QoS, квоталар және backpressure
Сыныптар:- P0 - сыни UX (манифест, ойын өзегі, әмиян, ережелер),
- P1 - негізгі ассеттер/UI және ағындар,
- P2 - жоғары тығыздықты медиа, диагностика, мұрағат.
- Квоталар: RPS/бәсекелес, байт/сек, жазылым/клиент.
- Backpressure: токендер/кредиттер, жазылымдарды шектеу, «heavy-query guard» (диапазондар/сүзгілер), DLQ кезектері.
- Басымдық: P0/P1/P2 үшін жеке кезек/кластер, апат кезінде «кэш-тек» бағытын таңдау.
6) Маршруттау және кешіктіру
GeoDNS/Anycast + Latency-Aware LB - әрқашан ең жақын дені сау хабқа.
Кэштер: edge (қысқа HTML TTL, ұзын asset TTL), negative cache, канареялар үшін prewarm.
Ассет нұсқалары: AVIF/WebP/битрейт-баспалдақтар, device hints (ракурс/пиксель тығыздығы).
Hash-URL: қатаң кешенділік, атомарлық релиздер, «хэш бойынша» қайту.
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) Келісімділік, тәртіп және нұсқалар
«Манифест → ассеттер» моделі: клиенттер vX манифестіне жазылады. Y.Z ', ассеттер - immutable.
Event-ordering: маңызды оқиғалар (джекпоттар, live-сигналдар) - кілт/арна шегінде.
SemVer және «екі сызықты» (GA және Canary) нұсқалау. Deprecation ≥ 90 күн.
Түбіртексіз көші-қон: blue-green, манифестердегі үйлесімді өрістер, клиенттік фичефлагтар.
8) Бақылау қабілеті: SLI/SLO және сигналдар
SLI өзегі:- TTI/TTL p95 (бет/ойын),
- Asset Fetch Success%, CDN Hit%,
- Stream RTT p95 и Reconnect Rate,
- Manifest Drift (ескірген нұсқадағы клиенттер),
- Error Rate (JS/WASM/SDK),
- Geo-Hit Ratio (жергілікті қызмет көрсетілген сұраулар),
- Cost per 1k asset fetches (CTS).
- TTI p95 ≤ 2. 5s (Wi-Fi) / ≤ 4. 0s (mobile),
- Asset success ≥ 99. 8%, CDN hit ≥ 90%,
- Аймақтағы Stream RTT p95 ≤ 300 ms,
- Manifest drift ≤ GA бойынша 24 сағат ішінде 1%,
- Error rate ≤ 0. 4%.
Телеметрия: латенттілік гистограммалары, бандл өлшемдері, drop/retry webhooks, стримдерге жүктеме, crash-free rate.
9) Қауіпсіздік және қорғау
сервистер арасындағы mTLS; webhook қолтаңбалары (HMAC, жарамды уақыт терезесі).
DRM/anti-tamper: тұтастығын тексеру, CSP/Referrer-Policy, домендік allow-парақтары.
Анти-бот/анти-скрейпинг: rate-limits, мінез-құлық сигналдары, JA3/FP, puzzle-челлендждер, «жұмсақ» бандар.
PII-азайту: лейблдерде/логдарда/манифесттерде дербес деректердің болмауы.
Резиденттілік: өңірлер/юрисдикциялар бойынша медиа/локальдарды экспорттау қағидалары.
10) Тозу режимдері
Cache-Only ассеталарға және «finalized-only» стримдерге арналған.
Lite-манифест (ең аз ассеттер, ажыратылған бейне/анимациялар).
Graceful fallback алдыңғы GA манифестіне.
Сындарлы емес функциялар үшін Read-only, «қымбат» сұрауларды өшіру.
11) Релиздер мен канареялар
Release windows: жұмыс күндері, аймақтың/кластердің «таза» сағаттары.
Canary 5% трафик/ ≥ 120 мин; SLO-гейттер (TTI/қателер/RTT).
Rollback атомарлық (хэш/нұсқа бойынша), сессияларды үзбей.
Ыстық өңірлер мен танымал ойындар үшін 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) Деректер мен каталогтар
Манифесттер каталогы
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)
);
Ассеттер іріктемелерінің логтары
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
);
Ағындардың өлшемдері
sql
CREATE TABLE stream_metrics (
ts TIMESTAMPTZ, region TEXT, channel TEXT,
rtt_p95_ms INT, reconnect_rate NUMERIC,
subscribers INT, drops INT
);
13) Маршруттау/кешіктіру саясаты
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) Дашбордтар
Content Flow Core: TTI/TTL, Asset success, CDN hit, Drift, Error rate.
Streaming: RTT p95, reconnect, drops, жазылушылар/арна.
Routing & QoS: per-class latency/RPS, queue-lag, throttle hits.
Экономика: CTS/1k fetches, трафик/өңір, $/GB, TPS_per_$.
Compliance/Security: CSP бұзушылықтары, webhook қолтаңбалары, өңірлер бойынша экспорт.
15) Playbook оқиғалар
A. TTI/TTL p95 өсуі
1. cache-only және lite-манифестке ауыстыру; 2) prewarm/компрессияны қосу;
2. edge/API репликаларын ұлғайту; 4) ауыр ассеттерді талдау, уақытша ажырату.
B. CDN hit құлдырауы
1. TTL/вариативтілігін тексеру; 2) prewarm және hash-URL қосыңыз;
2. ассеталарды біріктіру (bundling), суреттер/бейнелерді оңтайландыру.
С. Ағындардағы reconnect шыңдары
1. Проблемалық өңірлерді оқшаулау; 2) жазылуды/арналарды шектеу;
2. буферлерді/пингті ұлғайту; 4) жаңартулардың жиілігін уақытша төмендету.
D. WASM/JS жаппай қателері
1. Kill-switch проблемалық нұсқасы; 2) N-1-ге қайту;
2. трассаларды/үйінділерді жинау; 4) hotfix, пост-мортем және тест-кейстер.
Е. экспорт резиденттігін бұзу
1. Өңіраралық репликация блогы; 2) redaction;
2. Compliance қызметіне хабарлау; 4) ережелерді/тестілерді жаңарту.
16) Енгізу чек-парағы
1. Ағындар үлгісін (pull/push/stream/batch) және QoS кластарын белгілеңіз.
2. Ассеттердің манифесттері мен hash адресін енгізіңіз, CDN және prewarm параметрлерін теңшеңіз.
3. Маршрутизацияны (GeoDNS/Anycast), кештерді және heavy-query guard баптаңыз.
4. SLI/SLO анықтаңыз, телеметрияны қосыңыз (TTI/asset success/stream RTT).
5. Қауіпсіздікті қосыңыз (webhooks, DRM, CSP қол қойған mTLS).
6. Релиздерді (canary, хэш бойынша кері қайтару), деградациялық режимдерді ұйымдастырыңыз.
7. Core/Streaming/Routing/Cost/Compliance дашбордтарын салыңыз.
8. Тұрақты түрде chaos-тесттер жүргізіңіз: CDN-сәтсіздіктер, жоғары RTT, loss/jitter.
17) Глоссарий
TTI/TTL - интерактивтілікке/толық жүктеуге дейінгі уақыт.
Geo-Hit Ratio - жергілікті қызмет көрсетілген сұраулардың үлесі.
Immutable URL - тұтастыққа/кэшталуға кепілдік беретін хеш-мекенжай.
Backpressure - кіру жүктемесін бақылау тетіктері.
DLQ - проблемалық хабарлар үшін «өлі кезек».
Drift - өзекті емес манифестердегі клиенттердің үлесі.
CTS per 1k fetches - 1000 ассет іріктемесінің құны.
Қорытынды: «Контент ағындары» - бұл жай ғана CDN және файлдар емес, бағдар, QoS, нұсқалар және бақылау жүйесі. Стандартталған манифесттер, hash-адрестеу, канареялық релиздер және қатаң SLO болжамды UX береді, ал тозу режимдері мен анти-абьюз - жүктеме мен істен шығу кезінде экожүйенің тұрақтылығы.