PSP-X latency & loss
(Bölmə: Texnologiya və Infrastruktur)
Qısa xülasə
Chaos Engineering istehsal üçün elmi bir üsuldur: sabitlik hipotezini formalaşdırırsınız, ətraf mühiti idarə olunan şəkildə pozursunuz və istifadəçi dəyərinin (SLO/biznes metrikası) qorunduğunu sübut edirsiniz. iGaming üçün bu ödənişlərin yoxlanılması (PSP), oyunların başlanğıc, çıxış növbələri, multiregion və pik yüklər - gecikmələr, uğursuzluqlar və retrayların «fırtınası» şəraitində - canlı istifadəçilərin başına gəlməzdən əvvəl.
1) Xaos mühəndisliyi prinsipləri
1. steady-state-dən hipotezə. Normanı təyin edin: Availability, p95/p99, TTW, ödəniş konvertasiyası.
2. Kiçik blast radius. Təcrübə ilk staging/kanar, 1-5% trafik/1-2 pod/bir bölgə.
3. Müşahidə ilk növbədə. Metrika/Logy/Traces + eksperimentin izahları.
4. Guardrails и abort. SLO/Business KPI avtomatik dayandırılması üçün sərt eşik.
5. Təkrarlanabilirlik və avtomatlaşdırma. Kod kimi təcrübələr (IaC/GitOps), game-day planı.
6. Blameless mədəniyyət. Təcrübə günahkarların axtarışı deyil, zəif tərəflərin axtarışıdır.
2) Steady-state və uğur metrikası
TexSLI: p95/p99 API, error-rate, saturation (CPU/IO), queue lag (withdrawals/deposits), latency provayderləri.
Biznes SLI: dönüşüm 'attempt → success', TTW p95, müvəffəqiyyət 'game init', kodlar üzrə PSP uğursuzluq payı.
3) Sınaq sinifləri («sındırmaq»)
Şəbəkə: latency/jitter/packet loss/blackhole, DNS-nasazlıqlar, MTU-anomaliyalar.
Ресурсы: CPU throttle, memory pressure/OOM, disk IOPS/space, file-descriptor exhaustion.
Proseslər və platformalar: kill/evict pod, node failure, zone/region failover.
Asılılıqlar: PSP vaxtları/səhvləri, oyun provayderinin əlçatmazlığı, CDN/cache deqradasiyası.
Növbələr/axın: Kafka lag böyüməsi, konsumer fasiləsi, partiyalar/lider qırılması.
Data/DB: replikasiya gecikmələri, indekslərin deqradasiyası, read-only rejimi.
Relizlər/fitness: miqrasiya səhvləri, səhv konfiqlər, kill-switch.
Ön/RUM: LCP/INP düşməsi, pik müştərinin boyası.
Data/ML: qocalma, artım latency model, düşmə tokens/s, deqradasiya keyfiyyəti.
4) Proses: hipotezdən təkmilləşdirməyə qədər
1. Bir fərziyyə formalaşdırın (xüsusi SLO/biznes KPI + gözlənilən müdafiə davranışı).
2. Təcrübə dizayn edin: arıza növü, müddəti, blast radius, guardrails/abort.
3. Müşahidə hazırlayın: «release/experiment compare» daşbordları, şərhlər.
4. IM/TL nəzarət altında işə, on-call/biznes bildirin (təsir edərsə).
5. Nəticəni ölçün: SLO, p95/p99, TTW, dönüşüm, lag, retrai.
6. action items formalaşdırmaq: limitlər, taymaut, jitter retrai, outlier-ejection, PDB/HPA/KEDA, flow geri.
7. Avtomatlaşdırma (reg-paket game-day/CI-infrastruktur yoxlamaları daxil).
5) Guardrails və dayanma meyarları
Abort dərhal, əgər:- SLO fast-burn aktivləşdirilmişdir (məsələn, 1 saat üçün 14 × büdcə),
- ödənişlərin dönüşümü ↓ 0-dan çox. 3 p.p.,
- TTW p95> 3 dəq ardıcıl 10-15 dəq,
- error-rate > 1. 5% və iki pəncərədə böyüyür.
- Rabitə: əvvəlcədən təsdiqlənmiş status kanalı/şablon, ChatOps-da «qırmızı düymə» ('/experiment abort ').
6) Eksperiment nümunələri (Kubernetes/bulud)
6. 1 PSP-yə şəbəkə gecikmələri (kanarya deplosu)
Məqsəd: retras/zaman/marşrutlaşdırma yoxlamaq.
Enjeksiyon: + 200 ms RTT və 3% packet loss yalnız 'payments-api' → 'pspX' üçün.
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
Gözlənilən: p95 '/deposit '<250 ms, error-rate <1%, dönüşüm ≥ baseline − 0. 3 pp; pisləşdikdə - PSP marşrutunun avtomatik dəyişdirilməsi.
6. 2 Knot və PDB nasazlığı
Məqsəd: PDB/anti-affinity/HPA yoxlamaq.
Enjeksiyon: 'games-api' podaları ilə bir nod drain/terminate.
Gözləmə: heç bir əlçatanlıq itkisi yoxdur, pik p99 SLO-dan kənara çıxmır, autoscaler replikaları alır, PDB «ikiqat zərbənin» qarşısını alır.
6. 3 Kafka lag и KEDA
Məqsəd: mesajların toplanması zamanı vəsaitlərin çıxarılmasının sabitliyi.
Enjeksiyon: konsumerləri 5-10 dəqiqə dondurun, sonra yandırın.
Gözləmə: KEDA işəgötürənləri genişləndirir, TTW p95 emildikdən sonra 3 dəqiqəyə ≤ qalır, dublikat yoxdur (idempotentlik, açarlar).
6. 4 oyun provayderi DNS uğursuzluğu
Məqsəd: fallback/caching/retray.
Enjeksiyon: providerA domain üçün NXDOMAIN/timeout. example`.
Gözləmə: 'providerB' -də sürətli folbek, UI - deqradasiya rejimi və status banner; 'game init success' ≥ 99. 5%.
6. 5 Read-only BD
Məqsəd: Yazının itirilməsi zamanı davranış.
Enjeksiyon: 10-15 dəqiqə ərzində read-only replika keçid.
Gözləmə: kod səhvləri düzgün emal edir, kritik marşrutlar məhduddur, növbələr müraciətləri saxlayır, itki yoxdur/ikiqat silinir.
7) Avtomatlaşdırma və GitOps
Kod kimi təcrübələr: Git-də script/parametrləri/guardrails saxlayın, PR vasitəsilə review.
Game-day planı: cədvəl, sahibləri, metriklər, abort şərtləri, kommunikasiya çek siyahısı.
Grafana-da şərhlər: eksperimentin başlanğıcı/sonu, , son SLO.
8) Xaos zamanı müşahidə
Exemplars: p95/p99 - konkret 'trace _ id'.
Логи: поля `experiment_id`, `fault_type`, `retry_attempt`, `degrade_mode=true`.
Traces: Xarici çağırışlar 'fault. injected = true ', retrai/taymaut görünür.
Daşbordlar: «SLO-kart», release/experiment compare, Payments/Game init/Queues.
9) iGaming spesifikasiyası: ilk növbədə nəyi yoxlamaq lazımdır
1. Ödənişlər və TTW: PSP taymautları, marşrut folback, idempotentlik.
2. Oyunların başlanğıcı: studiyaların əlçatmazlığı/yavaşlığı, CDN nasazlıqları.
3. Nəticə/bonus növbələri: böyümə lag, təkrar emal.
4. Multiregion: zonanın uğursuzluğu/ROR, lider dəyişikliyi, DB replikasiyası.
5. Piklər: avto skeyl, rate-limit, circuit-breaker, cache qızdırma.
6. RG/Compliance: uğursuzluqlar zamanı düzgün loging, telemetriyada PII olmaması.
10) Risklərin idarə edilməsi (governance)
Təqvim və pəncərələr: pik turnirlərdən kənar təcrübələr, bizneslə koordinasiya.
Роли: Experiment Lead, Observer (SRE), Business Rep; IM qaynar xətt.
Məlumat siyasəti: artefaktlarda PII yoxdur; Audit üçün WORM-saxlama.
Hüquqi sərhədlər: razılaşdırılmadan SLA-nı pozan ssenariləri istisna etmək.
11) Game-day: ssenari şablonu
12) Tipik tapıntılar və hərəkətlər
Çox aqressiv retrailer → fırtına sorğular → vaxt/jitter/limitlər əlavə edin.
No outlier ejection → «zəhərli» instans pozur p99 → seçmə daxil.
Kövrək miqrasiyalar → read-only axını pozur → expand → migrate → contract + features.
Səhv HPA siqnal → çox gecikir → RPS/lag metrik keçid.
Cache versiyaları üçün ümumi → geri veriler pozur → versiya açarları.
13) Check-list yetkinlik xaos təcrübə
1. Steady-state və SLO təsvir, dashboard hazırdır.
2. Git-də kod, revyu/audit kimi təcrübələr.
3. Guardrails/abort avtomatlaşdırılmış (Alertmanager/ChatOps).
4. Müşahidə: exemplars, trace/log correlation, annotasiyalar.
5. Game-day rüblük, ssenarilər ödənişlər/oyunlar/növbələr/multiregion əhatə edir.
6. Post-eksperimental action items sprint planına daxildir; yerinə yetirilməsi nəzarət.
7. Retraut/Taymaut/circuit-breaker həddi siyasətləri -repoda.
8. Security/PII siyasətləri həssas məlumat olmayan artefaktlara riayət olunur.
9. SLO (rollback/scale/reroute) üzrə avtomatik remediasiya xaos tərəfindən sınaqdan keçirilir.
10. Proses metrikası:% abort olmadan, MTTR məşqləri, sinif hadisələrinin azaldılması.
14) Anti-nümunələr
SLO/guardrails/müşahidə olmadan «hər şeyi sındırın».
Hipotezlər və ölçülə bilən məqsədlər olmadan təcrübələr.
İlk buraxılışda böyük blast radius.
Taymaut/jitter → kaskad uğursuzluğu olmadan retrajlar.
Qarşısının alınması əvəzinə xaos: simptomları müalicə edin, kök səbəblərinə məhəl qoymayın.
Məşqlərdən sonra RCA/action items yoxdur.
Biznes razılığı olmadan pik saatlarda təcrübələr.
Nəticələr
Xaos mühəndisliyi davamlılığın metodik sübutudur: siz əvvəlcədən real nasazlıqları təkrarlayırsınız, SLO və biznes metriklərinə təsirinizi ölçürsünüz və arxitekturanı gücləndirirsiniz - retrajlardan və circuit-breakerdən çox regional orkestrasiyaya və avtomatik remediasiyaya qədər. Müntəzəm game-day və guardrails intizamı ilə iGaming platforması ən isti dövrlərdə belə p95/p99, dönüşüm və TTW saxlayır.