GH GambleHub

Chaos Engineering

1) Bazaviy prinsiplar

Dastlabki faraz sifatida Steady State. Normani aniq aniqlang (masalan: p95 <200 ms, error rate <0. 3%, tanqidiy flou muvaffaqiyati> 99. 5%).
Izolyatsiya qilingan oʻzgaruvchilar. Samarani va yaxshilanishni sababiy bog’lash uchun imkon qadar bir vaqtda bitta omilni o’zgartiring.
Graduslik. Xavfsiz muhitda kichik amplitudalardan boshlaymiz → qamrov va intensivlikni kengaytiramiz.
Guardrails. SLO/alerta/xato byudjeti boʻyicha aniq toʻxtash shartlari.
Takrorlanuvchanlik. Tajriba determinik tarzda takrorlanishi kerak (skriptlar/manifestlar/IaC).
Axloq va xavfsizlik. Xavfli tajribalarda hech qanday haqiqiy shaxsiy ma’lumotlar va moliyaviy tranzaksiyalar yo’q.

2) «Barqaror holat» nima

Steady State - bu foydalanuvchi va biznes invariantlari uchun qiymatni tavsiflovchi kuzatiladigan metriklar to’plami:
  • Asosiy endpointlarning latentligi p50/p95/p99.
  • Muvaffaqiyatli tranzaksiyalar ulushi va tanqidiy yo’llarni konvertatsiya qilish.
  • Error rate, taymautlar, «shed» soʻrovlar ulushi (toʻldirilganda kesilgan).
  • O’z-o’zini tiklash tezligi (MTTR), retrajlarga chidamlilik (bo’ronlarsiz).
  • Domen invariantlari: «balansda kamchiliklar» yo’qligi, bir marta bajarilgan to’lovlar, hisobot sutkalarining konsistentligi va h.k.

3) Inyeksiya katalogi («sindirayapmiz»)

Tarmoq: kechikish, jitter, yo’qotish/dublikatlar, o’tkazish qobiliyatini cheklash, TLS-uzilishlar, DNS-flapping.
Hisoblash: CPUni ortiqcha yuklash, xotiraga bosim/GC, deskriptorlarning tugashi, clock skew.
Ombor: yuqori p95 I/O, ENOSPC, yetakchi/replika muvaffaqiyatsizligi, split-brain, fsync.
5xx/429, «sekin muvaffaqiyat», tashqi APIlarning degradatsiyasi, rate-limit.
Maʼlumotlar: dubli/xabarlarni oʻtkazib yuborish, out-of-order, «iflos» yozuvlar, versiyalar toʻqnashuvi.
Operatsiyalar: muvaffaqiyatsiz reliz/ , bagli ficha-bayroq, tugagan sertifikat, kalitning rotatsiyasi.
Odamlar va jarayonlar: javobgar shaxslarning yetarli emasligi, qo’lda qo’lda ko’tarilishning kechikishi, noto’g’ri runbook.

4) Eksperiment dizayni (shablon)

1. Gipoteza: «Asosiy API p99 valyuta xizmatiga + 300 ms bo’lganda <450 ms, breyker ochiladi, 15 daqiqa oldin stale-javob ≤».
2. Inyeksiya: nosozlik profili (turi/amplitudasi/davomiyligi) va maqsadli konturi.
3. Metrika/log-teglar: markirovka’chaos. experiment_id`, `phase=inject|recover`.
4. Guardrails: abort’error _ rate> 2%’yoki p99> SLA × 2 daqiqadan ortiq 1.
5. Natijalar/xulosa: kuzatishlar, nuqsonlar, yaxshilanishlar ro’yxati, ishlar rejasi va takroran haydash.

5) Kuzatish darajasi: nima majburiy

Treysing: qaramlik orqali so’rash yo’li; tanazzulga uchragan segmentlar belgilangan.
Resurslar metrikasi: CPU, heap/GC, FD, diskli IOPS/lat, tarmoq bandwidth, navbatlar chuqurligi.
Biznes-metrika: konversiya/muvaffaqiyatli operatsiyalar, kompensatsiya qilingan tranzaksiyalar ulushi.
Voqealar loglari: breykerlar, retrajlar va ularning byudjetini ochish/yopish, DB rahbarini almashtirish.
Tajriba paneli: guardrails ostonalari va abortning «qizil tugmasi» bilan live-dashboard.

6) Guardrails va xavfsizlik

Texnik: yuqori chegaralar error rate/latency, muvaffaqiyatli operatsiyalar ulushining pasayishi, DLQ o’sishi.
Tashkiliy: on-call ishtirokidagi vaqt oynasi, «bitta zona - bitta tajriba» tamoyili.
Ma’lumotlar/komplayens: faqat sintetika yoki shaxssiz to’plamlar; tartibga solish qoidalari buzilishiga olib keladigan testlarni taqiqlash.
Orqaga qaytish: tayyor protsedura rollback/disable bayrogʻi/yumshoq drain trafigi.

7) O’zbekiston Respublikasi

Taymaut-budjetlar va jitter retralari (bo’ronlarsiz).
Yarim ochiq va eksponensial qayta tiklangan Circuit Breaker.
Bulkheads: tanqidiylik bo’yicha pullarni izolyatsiya qilish (to’lovlar va tahlillar).
Backpressure va rate-limit: past ustuvorlikni oldindan aytib boʻladigan kesish.
Coalescing bilan kesh, «isitish bo’ronlari» dan himoya qilish.
Yon ta’sirlar va kompensatsion ta’sirga ega bo’lgan sagʻanalarning idempotentligi.
Ma’lumotlarni tiklash uchun kvorumlar, feylover va anti-entropiya.

8) Ssenariy namunalari (eskizlar)

8. 1 Sekin qaramlik (YAML)

yaml experiment: slow-downstream target: svc:api inject:
dependency:
name: currency mode: add_latency p95_ms: 300 duration: 10m guardrails:
error_rate: "< 1. 5%"
p99_latency: "< 450ms"
expectations:
breaker_open: true stale_data_served: "<= 15m"

8. 2 DB yetakchisini yo’qotish

Inyeksiya: yetakchini/majburiy qayta saylovni to’xtatish.
Kutish: yozuvlarni vaqtincha taqiqlash, kvorumdan o’qish, WAL/Outbox saqlanishi, replikatsiyani avtomatik tiklash, ikki tomonlama yozuvning yo’qligi.

8. 3 ENOSPC log-diskda

Inyeksiya: 95-100% gacha diskni to’ldirish.
Kutish: loglarni avariya holatida almashtirish, tanqidiy jurnallarni saqlash, tanqidiy bo’lmagan fichlarni o’chirish, alertlar va avto-remediatsiya.

8. 4 Burst-trafik + sheyding

Inyeksiya: issiq endpint bo’yicha 5 daqiqaga 3 RPS ×.
Kutish: past ustuvorlikni tashlash, barqaror p95 «yadro», retraj kaskadining yo’qligi.

9) CI/CDda avtomatlashtirish

Har bir reliz uchun steyjda Chaos-smoke (xavfsiz amplitudalarda qisqa inyeksiya).
Eksperimentlar katalogi bo’yicha tungi progonlar (servislar matritsasi × nosozlik turlari).
Geytlar: agar «barqarorlik chegaradan past bo’lsa» (masalan, muvaffaqiyatli fallback ulushi <95%).
Artefaktlar: hisobot, treyslar, CPU/heap fleymgraflari, metrik va konfiguratsion snapshotlar.

10) Oʻyin kunlari (Game Days)

«Jonli» stsenariyli muntazam jamoaviy mashqlar:
  • Rollar: eksperiment boshlovchisi, metrik kuzatuvchi, orqaga qaytish operatori, biznes vakili.
  • Stsenariylar: keshning tanazzulga uchrashi, AZ/feylover mintaqaning qisman ishdan chiqishi, «yomon reliz», tashqi provayderning mavjud emasligi.
  • Natijalar: runbook’da topilgan bo’shliqlar, alertlarni yaxshilash, SLO va retraj byudjetlarini tuzatish.

11) Ma’lumotlar, voqealar va ML uchun xaos

Ma’lumotlar oqimi: dublikatlar uchun testlar, o’tkazib yuborishlar, out-of-order, kechikishlar; idempotent konsumerlar va DLQ-strategiyalarni tekshirish.
Omborxonalar: indekslarning degradatsiyasi, hot-partition, qulflash mojarosi, lag ostida replikatsiya.
ML: fich-storning kechikishi, baseline-modelga qaytish, kirish ma’lumotlari sifatining yomonlashishi (drift) - tizim yiqilishdan ko’ra «yumshoq» bo’lishi kerak.

12) Anti-patternlar

Kuzatilmaydigan tartibsizlik: siz ko’r, xulosalar spekulyativ.
Inyeksiya darhol steyj va gvard-raylsiz prodda.
«Bitta katta tajriba» bir vaqtning o’zida amalga oshishi aniq emas.
Gipotezasiz va fikslardan keyin retestsiz tizimli tartibsizlik harakatlari.
Faqat infratuzilmaga e’tibor qaratish - biznes invariantlar unutiladi.
Odamlar/jarayonlarni e’tiborsiz qoldirish: alertlar, on-call, runbook - tizimning bir qismi.

13) Amaliyotning yetukligi (modeli)

1. Ad-hoc: mahalliy bir martalik in’ektsiya.
2. Steyj-xaos: ssenariylar katalogi, takrorlanadigan progonlar, dashbordlar.
3. Reliz-xaos: har bir relizdagi smoke-xaos, geytlar, hisobotlar.
4. Cheklangan prod-xaos: kichik trafik, qattiq gardrails, tayyor qaytarish.
5. Uzluksiz barqarorlik: avto-eksperimentlar, SLO-boshqaruv, ish oqimi sifatida yaxshilash.

14) Arxitektura amaliyotlari bilan integratsiya qilish

Barqarorlikni test qilish: xaos-eksperimentlar fault-in’ektsiya va degradatsiya stsenariylarini to’ldiradi.
Yuk sinovi: «yuk + nosozlik» kombinatsiyalangan eksperimentlari kaskadlar va retray bo’ronlarini aniqlaydi.
Policy as Code/RBAC/ABAC: guardrails, qaytarish qadamlari va limitlarni siyosat sifatida rasmiylashtiring.
Rozilik/maxfiylikni boshqarish: maʼlumotlarni qayta ishlash tartibini buzadigan tajribalarga yoʻl qoʻymang.
Geo-arxitektura: hududlar feyloverini xaos-tekshirish va ma’lumotlarni yurisdiktsiyalarga bog’lash.

15) Mini-retseptlar (psevdokod)

Breyker + degradatsiya


if breaker. open():
return serve_stale(cache. max_age=15m)
try:
res = call(dep, timeout=250ms)
return res except Timeout:
breaker. trip()
return serve_stale()

Limiter + shading


if cpu. load() > 0. 85 or queue. depth() > HIGH:
if req. priority < HIGH: return 503_SHED limiter. acquire()

Idempotent nojo’ya ta’siri


key = "payout:"+external_id if kv. exists(key): return kv. get(key)
res = side_effect()
kv. put(key, res, ttl=30d)
return res

16) Arxitektorning chek-varaqasi

1. Steady State va guardrails aniqlanganmi?
2. Skriptlar katalogi (tarmoq/CPU/saqlash/bogʻliqlik/maʼlumotlar/operatsiyalar) bormi?
3. Kuzatish resurslar, latentlik dumlari, biznes invariantlarini qamrab oladimi?
4. Taymautlar/retrajlar/breykerlar/limiterlar/bulkheads yoqilgan va parametrlanadimi?
5. Runbook va «qizil tugma» tayyorlanganmi?
6. Steyjda xaos-smoke va nightly-eksperimentlar bormi?
7. Oʻyin kunlari uchun «xavfsiz» oynalar va rollar yozilganmi?
8. Tajribalar takrorlanadimi (IaC/skriptlar), natijalar versiyalanadimi?
9. Yaxshilanishlar vazifalar bilan belgilanadi, retest qilinadimi?
10. Maʼlumotlar va ML-konveyerlar qamrab olinganmi, nafaqat HTTP?

Xulosa

Chaos Engineering «kutilmagan hodisalarni» oldindan aytib bo’lmaydigan stsenariylarga aylantiradi. Barqarorlik gipotezasi, nazorat qilinadigan in’ektsiya, qattiq qo’riqlash, boy kuzatish va retest intizomi - bu relizlar xavfini kamaytiradigan va platformaga ishonchni oshiradigan vositalardir. Natijada, jamoa tizimning chegaralarini tushunadi, zerikarli tarzda degradatsiya qila oladi va hatto nosozliklar sharoitida ham xizmatni tezda foydalanuvchiga qaytaradi.

Contact

Biz bilan bog‘laning

Har qanday savol yoki yordam bo‘yicha bizga murojaat qiling.Doimo yordam berishga tayyormiz.

Telegram
@Gamble_GC
Integratsiyani boshlash

Email — majburiy. Telegram yoki WhatsApp — ixtiyoriy.

Ismingiz ixtiyoriy
Email ixtiyoriy
Mavzu ixtiyoriy
Xabar ixtiyoriy
Telegram ixtiyoriy
@
Agar Telegram qoldirilgan bo‘lsa — javob Email bilan birga o‘sha yerga ham yuboriladi.
WhatsApp ixtiyoriy
Format: mamlakat kodi va raqam (masalan, +998XXXXXXXX).

Yuborish orqali ma'lumotlaringiz qayta ishlanishiga rozilik bildirasiz.