Saglyk-barlag mehanizmleri
1) Näme üçin
Health-checks kaskad şowsuzlyklaryna garşy ilkinji päsgelçilikdir: düwünleri rotasiýadan dogry çykarýarlar, retraý tupanynyň öňüni alýarlar, zaýalanmagy aňsatlaşdyrýarlar we dikeldiş tizligini çaltlaşdyrýarlar, SLO-ny saklaýarlar we MTTR-ni peseldýärler.
2) Barlaglaryň esasy görnüşleri
Liveness - "diri" prosesi (ölüm/syzmak/howsala ýok). Hata → Nusgany täzeden başlamak.
Readiness - hyzmat maksatly SLO bilen traffige hyzmat etmäge ukyply (howuzlar, keş gyzdyrylýar, garaşly çeşmeler kadaly). Ýalňyşlyk → deňagramlylykdan aýyryň, ýöne täzeden başlamaň.
Startup - hyzmat liveness/readiness (uzyn bootstrap, migrasiýa, warmup) geçmäge taýyn. Wagtyndan öň täzeden başlamakdan goraýar.
Deep-health (domen-spesifik): biznes-invariantlar (stawka end-to-end geçýär, depozit işjeň PSP-de ygtyýarlandyrylýar). Zaýalanma signallary üçin ulanylýar, ýöne derrew täzeden başlamak üçin däl.
External/Synthetic: daşardan işjeň pingler (API-ýol, öň skript, PSP/KYC endpoint) - ulanyjynyň elýeterliligini ölçeýärler.
3) Nusgalaryň dizaýny: umumy düzgünler
1. Arzan durmuş: daşarky garaşlylyga gitmeýäris; wakalaryň aýlawyny, heap/FD, watchdog barlaýarys.
2. SLO boýunça Readiness: hyzmat etmek üçin zerur bolan ýerli çeşmeleri barlaýarys (DB howuzlary, ýyly nagt pul, çäkler). Daşarky garaşlylyk - bloklanmaýan "can-serve?" signallar.
3. Latency-budget: her synagyň öz SLA-lary bar (mysal üçin, 100-200 ms ≤); geçende - "degraded", ýöne liveness-de 5xx däl.
4. Backoff & Jitter: synag aralyklary 5-15 sek, wagt çykyşy 1-2 sek, sinhron tupandan gaça durmak üçin ýalňyşlyklarda eksponensial gijä galmak bilen.
5. Histeresis: Statusy üýtgetmek üçin N üstünlikli/nädogry jogap (mysal üçin 'successThreshold = 2', 'failureThreshold = 3').
6. Wersiýalaşdyrmak: endpointler '/healthz ', '/readyz', '/startupz 'durnukly; '/health/... 'aşagyndaky deep-checks.
7. Syrsyz we PII: jogaplar - diňe statuslar we gysga kodlar.
8. Explainability: JSON: '{"status ": "degraded "", checks ": [{"name ": "db"", ok": true", latencyMs": 18}, {" name":" psp. eu","ok":false,"reason":"timeout"}]}`.
4) Gatlaklara görä deep-checks mysallary
4. 1 BD/nagt/ammar
DB: "SELECT 1" okamak üçin gysga geleşik we howuzy barlamak; latency/replication-lag bosagasy.
"GET "/" SET" synag açary + hit-ratio guard (pes hit → warning).
Object Storage: Bar bolan obýektiň HEAD (göçürip almazdan).
4. 2 Nobatlar/akym
Broker: ping-topic publish + consume ýerli partition içinde; consumer-lag bosagalary.
DLQ: penjireden dead-letter habarlarynyň ýoklugy.
4. 3 Daşarky üpjün edijiler (PSP/KYC/AML)
PSP: lightweight auth-probe (pul däl), şertnamany/şahadatnamany/kwotalary barlamak; safe-synaglary ýok bolsa, proksi-metrikany ulanýarys (banklar/GEO boýunça 5-10 minutda ygtyýarlylygyň üstünligi).
KYC/AML: saglyk-API we SLA nobatlar; pese gaçanda - alternatiw akymyna/üpjün edijä geçmek.
4. 4 API/öň
Sintetika: EU/LATAM/APAC-da geleşik ýoly (login → depozit-başlangyç → "çägä" jedel).
RUM signaly: JS/HTTP we LCP/TTFB ýalňyşlyklarynyň paýy - "daşardan" triggerler.
5) Platforma bilen integrasiýa
5. 1 Kubernetes / Cloud
'startupProbe' bootstrap (göçmek/keş-warmup) -y goraýar.
'livenessProbe' minimalist; 'readinessProbe' howuzlary/keş/lokal nobatlary göz öňünde tutýar.
Параметры: `initialDelaySeconds`, `periodSeconds`, `timeoutSeconds`, `failureThreshold`, `successThreshold`.
PodDisruptionBudget we maxUnavailable readiness.
HPA/KEDA: nobatlar boýunça masştab/SLI; readiness routing-e täsir edýär.
5. 2 Deňagramlaşdyryjylar/gulplar/mesh
L7 (HTTP 200/429/503 semantics) derejesinde saglyk ýoly.
Outlier detection (envoy/mesh): puldan error-rate/latency percentilleri boýunça çykarmak.
Circuit-breaker: garaşlylyga bir wagtyň özünde soramagyň/birikdirmegiň çäkleri, saglyk signallary bilen integrasiýa.
5. 3 Awtoskeýling we degradasiýa
Readiness = FALSE → traffigi aýrylýar, ýöne pod diri (gyzyp biler).
Graceful-re modeimi üçin Deep-degrade (PSP down) → feature flags (mysal üçin, töleg usullaryny wagtlaýyn gizläň, waiting-room-y açyň).
6) Taým-autlaryň we retraýlaryň syýasaty
Wagt aýlawy <SLO býudjeti: 'timeout = min (⅓ p99, 1-2s)' sinhron garaşlylyk üçin.
Idempotentlik: retraýlar üçin hökmanydyr; idempotency-keys ulanýarys.
Eksponensial backoff + jitter: sinhron wal effektleriniň öňüni alýar.
Retraý býudjetleri: caps per-request/tenant, "retry-storms" -dan gorag.
7) Ýagdaýyň signallary we alerting
Ýaşyl/Sary/Gyzyl: hyzmat-daşborddaky jemleýji statuslar.
SLO boýunça Burn-rate-alertler: çalt (1 sagat) we haýal (6-24 sagat).
Correlation-hints: relizler/fiç-baýdaklar/meýilleşdirilen işler barada bellikler.
Auto-actions: "gyzyl" deep-check - üpjün edijiniň fallbackini açyň, trassalaryň samplingini ýokarlandyryň.
8) iGaming üçin akylly strategiýalar
Töleg-aware readiness: nyrh hyzmatynyň taýýarlygy PSP marşrutizatorynyň ýagdaýyny we banklar/GEO boýunça çäkleri göz öňünde tutýar.
Odds/Lines publishing: publisher-de readiness/edge-de setirleriň çeşmeleri we ýaýran wagty boýunça jemlenen laga baglydyr.
Tournament spikes: has agressiw outlier-detection we waiting-room wagtlaýyn syýasaty.
9) Antipatternler
DB/PSP-e gidýän Liveness → daşarky meselede köpçülikleýin dikeldişler.
Startup/readiness/liveness bölünmezden bir "ähliumumy" health-endpoint.
Backoff/jitter → retraý tupany bolmazdan gaty wagt otlary.
Histerezisiň ýoklugy → marşrutlaşdyryş.
Täzeden başlamaga itergi berýän Deep-check (onuň maksady diagnostika we marşrut, täzeden başlamazlyk).
Saglyk nokatlarynda gizlenen 5xx (hakyky ýagdaýy gizlemek).
10) Interfeýs şablonlary
/startupz → `200 OK {"uptimeSec": ..., "version":"..."}`
Barlaglar: init-skriptlar, göçmeler tamamlandy, açarlar we gaplar ýüklendi.
/healthz (liveness) → `200 OK {"heapOk": true,"fdOk":true,"eventLoop":"ok"}`
Barlaglar: wakalaryň aýlawy, prosesiň çeşmeleri, howsala/oom-baýdaklaryň ýoklugy.
/readyz (readiness) →
`200 OK/503 {"canServe": true,"db":{"ok":true,"latencyMs":12},"cache":{"ok":true},"queue":{"ok":true,"lag":0},"localQuota":{"ok":true}}`
/health/payments (deep) →
`200/206/503 {"psp. eu": {"ok":false,"reason":"timeout"}, "psp. alt":{"ok":true}, "routerMode":"failover"}`
11) Health-konturyň hil ölçegleri (KPI/KRI)
Pod 'NotReady' -den 'Ready' -e (warmup-SLO) çykar.
"Flapping" ýygylygy readiness per service.
% nädogry üýtgedilen pod (root-cause - daşarky garaşlylyk).
MTTR hadysalar, bu ýerde saglyk mehanizmleri rol oýnady (öň/soň).
On-call gatnaşmazdan awtomatiki failover/feature-degrade paýy.
Sintetikanyň takyklygy vs RUM (ýalan syzmalar/geçişler).
12) Durmuşa geçirmegiň ýol kartasy (4-8 hepde)
Ned. 1-2: kritiki ýollary sanamak; startup/liveness/readiness paýlamak; JSON jogaplaryny aşaky barlaglar we histerezis bilen giriziň.
Ned. 3-4: deep-checks goşmak: BD/kesh/broker; 2-3 GEO-da login/goýum/stawka üçin sintetika; / mesh.
Ned. 5–6: payment-aware readiness и PSP-fallback; front üçin waiting-room; lag/nobatlar boýunça awtoskeyling; burn-rate boýunça alertler.
Ned. 7-8: chaos-günler (PSP/BD göçürmesini öçürmek), backoff/jitter barlagy; taým-autlary maliýeleşdirmek, PDB; KPI hasabaty we düzediş.
13) Artefaktlar
Health Spec (per service): barlaglaryň sanawy, wagt býudjetleri, histerezis, gyzyl statusdaky hereketler.
Runbooks: "Readiness = FALSE: Näme edýäris? ", "PSP-fallback: yzyna gaýtarmagyň ädimleri we ölçegleri".
Routing Policy: outlier-detection, circuit-breakers, percentil bosagalary.
Synthetic Playbook: ssenariler we geografiýa, sintetikanyň SLO, meýilnama.
Release Gate: esasy endikleriň gyzyl deep-check-de goýberilýän bloklar.
Jemi
Başarnykly dizaýn edilen health-checks kontury gatlakly signal ulgamydyr: prosesiň durmuşa ukyplylygy üçin ýeňil durmuş, traffige hyzmat etmek ukyby üçin readiness, ygtybarly başlangyç üçin başlangyç we dolandyrylýan zaýalanmak we marşrutlaşdyrmak üçin domen-aýratyn deep-checks. Autoscaling, outlier-routing, sintetika we SLO-alerting bilen bilelikde kaskad şowsuzlyk töwekgelçiligini azaldýar, MTTR-i azaldýar we iGaming platformasynyň iş taýdan möhüm ýollaryny durnuklaşdyrýar.