PSP-X latency & loss
(Bölüm: Tehnologiýalar we infrastruktura)
Gysgaça gysgaça
Chaos Engineering önümçilik üçin ylmy usuldyr: durnuklylyk gipotezasyny düzýärsiňiz, gurşawy gözegçilikde saklaýarsyňyz we ulanyjy gymmatynyň (SLO/iş metrikleri) saklanýandygyny subut edýärsiňiz. iGaming üçin bular tölegleri barlamak (PSP), oýunlaryň başlanmagy, netijeleriň nobatlary, köp sebit we iň ýokary ýükler - gijikdirmeler, şowsuzlyklar we retraýlaryň "tupany" şertlerinde - bu janly ulanyjylar bilen bolmazdan ozal.
1) Bulam-bujarlyk injiniringiniň ýörelgeleri
1. steady-state-den gipoteza. Kadany kesgitläň: Availability, p95/p99, TTW, töleg öwrülişigi.
2. Kiçi blast radius. Synag ilki bilen staging/kanarda, traffigiň 1-5 %/1-2 pod/bir sebitde.
3. Syn etmek. Metrikler/loglar/söwdalar + synagyň düşündirişleri.
4. Guardrails и abort. Awtomatiki durmak üçin SLO/KPI iş çäkleri.
5. Gaýtalanma we awtomatlaşdyryş. Kod hökmünde synaglar (IaC/GitOps), game-day meýilnamasy.
6. Blameless medeniýeti. Synag günäkärleri däl-de, gowşak taraplary gözlemek.
2) Steady-state we üstünlik metrikleri
TexSLI: p95/p99 API, error-rate, saturation (CPU/IO), queue lag (withdrawals/deposits), latency provayderleri.
Biznes-SLI: öwrülişik 'attempt → success', TTW p95, üstünlik 'game init', kodlar boýunça PSP şowsuzlyklarynyň paýy.
3) Synplaryň synplary (näme "döwýäris")
Tor: latency/jitter/packet loss/blackhole, DNS-bökdençlikler, MTU-anomaliýalar.
Ресурсы: CPU throttle, memory pressure/OOM, disk IOPS/space, file-descriptor exhaustion.
Prosesler we meýdançalar: kill/evict podov, node failure, zone/region failover.
Garaşlylyk: PSP wagtlary/ýalňyşlyklar, oýun üpjün edijisiniň elýeterliligi, CDN/kesiň zaýalanmagy.
Nobatlar/akym: Kafka lag beýikligi, konsumerleriň arakesmesi, partiýa/lideriň arakesmesi.
Maglumatlar/DB: köpeltmegiň gijikdirilmegi, indeksleriň pese gaçmagy, read-only re modeim.
Relizler/fiçeflaglar: migrasiýa ýalňyşlyklary, ýalňyşlyklar, öldüriji-switch.
Öň/RUM: LCP/INP ýykylmagy, müşderini iň ýokary derejä boýamak.
Data/ML: fiçleriň garramagy, modeliň latency artmagy, tokens/s pese gaçmagy, hiliň peselmegi.
4) Proses: gipotezadan gowulaşmaga çenli
1. Çaklamany düzüň (belli SLO/biznes-KPI + garaşylýan gorag hereketi).
2. Synagyň dizaýny: şowsuzlygyň görnüşi, dowamlylygy, blast radius, guardrails/abort.
3. Syn etmegi taýýarla: "release/experiment compare" dashbordlary, düşündirişler.
4. IM/TL gözegçilik astynda işe giriziň, on-call/biznese habar beriň (eger täsir etse).
5. Netijäni ölçäň: SLO, p95/p99, TTW, öwrülişik, laglar, retralar.
6. Action items: limitleri, wagtlary, jitter bilen retraýlary, outlier-ejection, PDB/HPA/KEDA, yza gaýdyşlar.
7. Awtomatlaşdyryň (reg-game-day/CI-infrastruktura barlaglaryny goşuň).
5) Guardrails we durmagyň ölçegleri
Abort etmek, eger:- SLO fast-burn işjeňleşdirildi (mysal üçin, 1 sagat üçin 14 × býudjet),
- tölegleriň öwrülişigi ↓ 0-dan köp. 3 p.p.,
- TTW p95> 3 minut yzly-yzyna 10-15 minut,
- error-rate > 1. 5% we iki penjirede ösýär.
- Aragatnaşyklar: öňünden tassyklanan status kanaly/şablony, ChatOps-daky "gyzyl düwme" ('/experiment abort ').
6) Synagyň mysallary (Kubernetes/bulut)
6. 1 PSP-e toruň gijikdirilmegi
Maksat: retralary/wagtlary/marşrutlaryny barlamak.
Injection: + 200 ms RTT we 3% packet loss diňe 'payments-api' → 'pspX' üçin.
yaml apiVersion: chaos/v1 kind: NetworkChaos metadata: { name: psp-latency-canary }
spec:
selector: { labelSelectors: { app: payments-api, track: canary } }
direction: to target:
selector: { namespace: prod, ipBlocks: ["10. 23. 0. 0/16"]} # addresses pspX egress action: delay delay:
latency: "200ms"
jitter: "50ms"
correlation: "0. 5"
loss:
loss: "3"
correlation: "0. 3"
duration: "10m"
mode: one # minimum blast radius
Garaşylýan: p95 '/deposit '<250 ms, error-rate <1%, öwrülişik ≥ baseline − 0. 3 p.p.; ýaramazlaşanda - PSP marşrutynyň awto-çalşygy.
6. 2 Düwün şowsuzlygy we PDB
Maksat: PDB/anti-affinity/HPA barlamak.
Sanjym: 'games-api' podalary bilen bir nodyň drain/terminate.
Garaşmak: elýeterlilik ýitgisi ýok, iň ýokary p99 SLO-dan çykmaýar, autoscaler replikalary alýar, PDB "goşa urmagyň" öňüni alýar.
6. 3 Kafka lag и KEDA
Maksat: habarlar toplananda serişdeleriň çykarylmagynyň durnuklylygy.
Sanjym: konsumerleri 5-10 minut doňduryň, soňra açyň.
Garaşmak: KEDA workerleri ulalýar, TTW p95 siňdirilenden soň 3 minutdan ≤ galýar, dublikat ýok (idempotentlik, açarlar).
6. 4 Oýun üpjün edijisiniň DNS şowsuzlygy
Maksat: fallback/kesmek/retra.
Sanjym: 'providerA domeni üçin NXDOMAIN/timeout. example`.
Garaşmak: 'providerB' -de çalt folbek, UI-de - bozulma düzgüni we status banneri; 'game init success' ≥ 99. 5%.
6. 5 Read-only BD
Maksat: ýazgyny ýitirende özüni alyp barşy.
Sanjym: replikany 10-15 minutda read-only geçiriň.
Garaşmak: kod ýalňyşlyklary dogry bejerýär, möhüm ugurlar çäklidir, nobatlar arzalary saklaýar, ýitgiler/goşa ýazylmalar ýok.
7) Awtomatlaşdyryş we GitOps
Synaglar kod hökmünde: Ssenarileri/parametrleri/guardrails Git-de saklaň, PR arkaly gygyryň.
Game-day meýilnamasy: meýilnama, eýeler, metrikler, abort şertleri, aragatnaşyk barlagy.
Grafana düşündirişler: synagyň başlangyjy/soňy, , jemleýji SLO.
8) Bulam-bujarlyk döwründe syn etmek
Exemplars: p95/p99 - anyk 'trace _ id'.
Логи: поля `experiment_id`, `fault_type`, `retry_attempt`, `degrade_mode=true`.
Söwda: daşarky jaňlar 'fault' bilen bellendi. injected = true ', retrailer/wagtlar görünýär.
Daşbordlar: "SLO-kart", release/experiment compare, Payments/Game init/Queues.
9) iGaming aýratynlygy: ilki bilen näme barlanmaly
1. Tölegler we TTW: PSP wagtlary, marşrutyň folbeki, idempotentlik.
2. Oýunlara başlamak: studiýalaryň elýeterliligi/haýallygy, CDN şowsuzlyklary.
3. Netijeleriň/bonuslaryň nobatlary: lag ösüşi, gaýtadan işlemek.
4. Multiregion: zonanyň şowsuzlygy/ROR, lideriň üýtgemegi, DB-iň köpelmegi.
5. Iň ýokary nokatlary: awto-skeýl, rate-limit, circuit-breaker, keşleri gyzdyrmak.
6. RG/Compliance: şowsuzlyklarda logirlemegiň dogrulygy, telemetriýada PII ýoklugy.
10) Töwekgelçiligi dolandyrmak (governance)
Senenama we penjireler: iň ýokary ýaryşlaryň daşyndaky synaglar, işewürlik bilen utgaşdyrmak.
Роли: Experiment Lead, Observer (SRE), Business Rep; IM gyzgyn telefonda.
Maglumat syýasaty: artefaktlarda PII ýok; Audit üçin WORM ammar.
Hukuk çäkleri: SLA-ny bozýan ssenariýalary razylaşmazdan aýyrmak.
11) Game-day: ssenariýa şablony
12) Adaty tapyndylar we hereketler
Gaty agressiw retrailer → tupan soraglary → wagtlary/jitleri/çäkleri goşuň.
Ýok outlier ejection → "zäherli" instans p99 bozýar → ret etmegi öz içine alyň.
Gowşak göçmeler → read-only akymyny döwýär → expand → migrate → contract + ficheflags.
Nädogry HPA signaly → giç bolýar → RPS/lag metrlerine geçiň.
Wersiýalar üçin umumy kesiş → gaýdyşlar maglumatlary bozýar → wersiýa açarlary.
13) Bulam-bujarlyk tejribesiniň kämillik derejesiniň çek-sanawy
1. Steady-state we SLO beýan edildi, dashbordlar taýýar.
2. Git-de kod, revyu/audit ýaly synaglar.
3. Guardrails/abort awtomatlaşdyryldy (Alertmanager/ChatOps).
4. Syn edilişi: exemplars, trace/log correlation, annotasiýa.
5. Oýun-day çärýekde, ssenariýalar tölegleri/oýunlary/nobatlary/multiregiony ýapýar.
6. Synagdan soňky action items sprint meýilnamasyna girýär; ýerine ýetirilişine gözegçilik etmek.
7. Retraus/taýtaut/circuit-breaker-iň repo-repo çäkleri.
8. Howpsuzlyk/PII-syýasatlar berjaý edildi, duýgur maglumatlary bolmadyk artefaktlar.
9. SLO (rollback/scale/reroute) boýunça awto-remediasiýalar bulam-bujarlyk bilen synagdan geçirilýär.
10. Prosesiň ölçegleri:% abort etmezden, maşklarda MTTR, synp hadysalarynyň azalmagy.
14) Anti-patternler
SLO/guardrails/syn edilmezden "Hemme zady döwýäris".
Gipotezalar we ölçegli maksatlar bolmazdan synaglar.
Uly blast radius
Taýmautsyz/jittersiz retraýlar → kaskadly şowsuzlyga çydamlylyk.
Öňüni almagyň ýerine bulam-bujarlyk: alamatlary bejerýäris, kök sebäplerini äsgermezlik edýäris.
Maşklardan soň RCA/action items ýoklugy.
Iş bilen ylalaşmazdan iň ýokary sagatda synaglar.
Netijeler
Bulam-bujar in engineeringenerçilik durnuklylygyň usulyýet subutnamasydyr: Siz hakyky şowsuzlyklary öňünden gaýtalaýarsyňyz, SLO-lara we işewürlik metrikalaryna täsirini ölçärsiňiz we arhitekturany güýçlendirýärsiňiz - retradan we circuit-breakerden başlap, köp sebit orkestrine we awto-remediasiýalara çenli. Yzygiderli game-day we guardrails düzgüni bilen iGaming platformasy iň yssy döwürlerde-de p95/p99, öwrülişik we TTW saklaýar.