GH GambleHub

Yuk muvozanati va failover

Yuklamani muvozanatlash va failover

1) Maqsad va atamalar

Balanslash traffikni unumdorlik va barqarorlik uchun namunalar/zonalar/mintaqalar o’rtasida taqsimlaydi.
Failover - muvaffaqiyatsiz tugganda boshqariladigan almashtirish.
RTO/RPO: maqsadli tiklash vaqti va ma’lumotlarning yo’qolishi.
SLO: maqsadli foydalanish/yashirin darajasi; avtomatik feylover va orqaga qaytish uchun «darvoza» vazifasini bajaradi.

2) Balanslash qatlamlari

2. 1 L4 (TCP/UDP)

Afzalliklari: unumdorlik, soddalik, TLS passthrough. Kamchiliklar: yo’nalish/cookie tushunchasi yo’q.
Misollar: NLB/GLB, HAProxy/Envoy L4, IPVS.

2. 2 L7 (HTTP/gRPC)

Ijobiy tomonlari: yo’l bo’yicha yo’nalish/xederam, kanar og’irligi, sticky. Minuslar: CPU/yashirin bo’yicha qimmatroq.
Masalan: NGINX/HAProxy/Envoy/Cloud ALB/API Gateway.

2. 3 Global daraja

DNS/GSLB: health-checks + geo/muvozanatli javob.
Anycast/BGP: dunyo bo’ylab bitta IP, eng yaqin e’lon qilish nuqtasi.
CDN/Edge: kesh/feilover perimetrda.

3) Taqsimot algoritmlari

Round-robin/weighted - bazaviy.
Least connections/latency - «og’ir» so’rovlar uchun.
Consistent hashing - markaziy sessiyasiz kalitning yopishqoqligi (user/tenant).
Hash-based locality - kesh va stateful-servislar uchun.

4) Sessiyalar va yopishqoqlik (sticky)

Cookie-sticky: L7 LB nusxaga qaytish uchun kukini oʻrnatadi.
Src-IP sticky: L4 da, NAT/CGNAT da yomonroq.
Consistent hashing: gorizontal keshlar/chatlar uchun yaxshiroqdir.
Aim: iloji bo’lsa, stateless xizmatini qiling, aks holda failoverni soddalashtirish uchun (Redis/DBdagi sessiyalarni) olib boring.

5) Ishonchlilik: health-checks va rotatsiyadan chiqarish

Active checks: HTTP 200/biznes yo’llarining chuqur namunalari (masalan, ’/healthz/withdraw’bilan bog’liq).
Passive (outlier detection): 5xx/taymautda orqa tomonlarni kesish.
Warm-up: yangi instansiyalarni silliq yoqish (slow-start).
Graceful drain: soʻrovlar tugashini kutish uchun puldan → olib tashlash.

NGINX (misol):
nginx upstream api {
zone api 64k;
least_conn;
server app-1:8080 max_fails=2 fail_timeout=10s;
server app-2:8080 max_fails=2 fail_timeout=10s;
keepalive 512;
}
proxy_next_upstream error timeout http_502 http_503 http_504;
proxy_next_upstream_tries 2;
Envoy outlier detection (parcha):
yaml outlier_detection:
consecutive_5xx: 5 interval: 5s base_ejection_time: 30s max_ejection_percent: 50

6) Nosozliklarni boshqarish: timeout/retry/circuit-breaking

Timeouts: mijozning vaqtidan qisqaroq; per-route.
Retries: 1-2 jitter va idempotentlik bilan; POST’da idempotentlik kalitisiz retraylarni taqiqlash.
Circuit breaker: bir vaqtning o’zida so’rov/xatolarni cheklash; «yarim ochiq» tiklash.
Budgets: self-DDOS’ni tashkil etmaslik uchun retraj limitlari/burstlarni birlashtirish.

7) Kubernetes-patternlar

ClusterIP/NodePort/LoadBalancer/Ingress - asosiy primitivlar.
Readiness/Liveness: trafik faqat tayyor pod.
PodDisruptionBudget: bir vaqtning oʻzida N nusxasi tushmasin.
HPA/VPA: CPU/RED metriklari bo’yicha kattalashtirish, LB bilan bog’lash.
ServiceTopology/Topology Aware Hints: hudud boʻyicha lokalizatsiya.
Service type = LoadBalancer (zonal): minimal - har bir AZ da 2 ta nusxa.

Tanqidiy yo’nalish uchun readiness misoli:
yaml readinessProbe:
httpGet: { path: /healthz/dependencies, port: 8080 }
periodSeconds: 5 failureThreshold: 2

8) Kross-zonali va kross-mintaqaviy trafik

Multi-AZ (mintaqa ichida): bir tekis taqsimlang (zonal LB), saqlash - sinxron nusxalar.

Multi-region:
  • Active-Active: ikkala hudud ham trafikka xizmat qiladi; qiyinroq - ma’lumotlarni replikatsiya qilish, muvofiqlik va geografiya bo’yicha marshrutlash kerak.
  • Active-Passive: asosiy hudud xizmat koʻrsatadi, zaxira - «issiq/issiq/sovuq». Osonroq, tezroq o’zgartirish, lekin RPOdan yuqori.
GSLB strategiyasi:
  • Geo-DNS (eng yaqin mintaqa).
  • Weighted DNS (kanareykalar/qayta taqsimlash).
  • Latency-based (RTT-o’lchovlar).
  • Failover = salomatlik/foydalanish signallari bo’yicha (bir nechta vantage-nuqtalardan probes).

9) Ma’lumotlar va failover

Cash/state: iloji bo’lsa - mintaqaviy lokal; Active-Active uchun - CRDT/konsistent xeshlar.

BD:
  • Sinxron replikatsiya = past RPO, yuqori latentlik.
  • Asinxron = pastroq latentlik, lekin RPO> 0.
  • Navbatlar: ko’zgu/multiklaster topiklar; voqealarning deduplikatsiyasi.
  • Operatsiyalarning idempotentligini va replay-mexanikani loyihalashtiring.

10) Perimetri: DNS/Anycast/BGP/CDN

DNS: qisqa TTL (30-60s) + tarmoqdan tashqarida health-checks.
Anycast: bitta IP bilan bir nechta ROPlar - eng yaqin yo’nalish darajasida trafikni qabul qiladi.
CDN/Edge: himoya uchun kesh va «shlyuz», statik/media origin yiqilganda xizmat ko’rsatadi; origin-shield + пер-POP health.

11) Konfiguratsiya namunalari

HAProxy L7:
haproxy defaults timeout connect 2s timeout client 15s timeout server 15s retries 2 option redispatch

backend api balance leastconn option httpchk GET /healthz/dependencies http-check expect status 200 server app1 app-1:8080 check inter 5s fall 2 rise 2 slowstart 3000 server app2 app-2:8080 check inter 5s fall 2 rise 2 slowstart 3000
NGINX sticky по cookie:
nginx upstream api {
hash $cookie_session_id consistent;
server app-1:8080;
server app-2:8080;
}
Envoy retry/timeout (route):
yaml route:
timeout: 2s retry_policy:
retry_on: 5xx,connect-failure,reset num_retries: 1 per_try_timeout: 500ms

12) Avtomatik failover: signallar va geytlar

Tech-SLI: 5xx-rate, p95/p99, saturation, hendsheyk TLS, TCP resets.
Biznes-SLI: depozitlar/to’lovlarning muvaffaqiyati, PSPda to’lov xatolari yo’q.
Geytlar: chegaradan oshganda - zonani/instansiyani o’chirish, barqaror hovuz og’irligini ko’tarish, GSLBni o’zgartirish.
Runbook: bosqichma-bosqich oʻzgartirish va qaytarish yoʻriqnomasi (rollback).

13) Testlar va inspeksiyalar (chaos & game-days)

Chaos-testlar: AZ/mintaqalarni o’chirish, DB/kesh degradatsiyalari, packet-loss simulyatsiyasi.
Game-day: on-call jamoalari ishtirokidagi mashq feyloveri.
Diagnostika: perimetrdan bekendgacha trassalash, reliz-annotatsiyalar va metriklarni taqqoslash.

14) Xavfsizlik va komplayens

mTLS LB services, WAF/Rate limits perimetrda.
Rad etish/segmentatsiya zonalari: blast-radius izolyatsiyasi.
Siyosat: bitta nuqta (SPOF) ni taqiqlash, «minimal N replik/AZ» talablari.

15) Anti-patternlar

Bitta LB/butun proto-trafik uchun bitta zona (SPOF).
Chuqur tekshirishning yo’qligi ’/healthz’(yashil - lekin DB/navbat mavjud emas).
Idempotentlik bo’lmagan retray → operatsiyalar/to’lovlar dubli.
Ommaviy NAT → nomutanosiblikda Sticky per IP.
Yuqori TTL bilan DNS feylover (oʻtishdan oldingi soatlar).
Hech qanday graceful drain mavjud emas.

16) Joriy etish chek-varaqasi (0-45 kun)

0-10 kun

Instansiyalarni 2 AZ ≥ bo’yicha tarqatish; readiness/liveness, health-checks.
L7-timeouts/retries moslash (1 urinish), outlier detection.
Graceful drain va slow-startni yoqish.

11-25 kun

Perimetr uchun GSLB (geo/weighted) yoki Anycastni kiriting.
Kanar vazni/yo’nalish siyosati; sticky orqali cookie/consistent hash.
Avtofeylover uchun SLO-geytlar (p95/5xx + biznes-SLI).

26-45 kun

Mintaqaviy DR: Active-Active yoki tarjima testi bilan Active-Passive.
AZ/hududlar o’chirilgan Chaos-kunlar, RTO/RPO hisobotlari.
Avtomatlashtirilgan runbook’i (pause/shift/rollback skriptlari).

17) Etuklik metrikasi

Multi-AZ ≥ 99% kritik yo’llarni qamrab olish.
DNS/GSLB/Anycast ommaviy endpointlar uchun joriy etilgan.
MTTR bitta AZ <5 daqiqa (p95) tushganda.
Maqsadli ≤ tanqidiy ma’lumotlar uchun RPO (masalan, 30 soniya ≤).
Har choraklik game-days va muvaffaqiyatli rejalashtirilgan feylover.

18) Xulosa

Ishonchli muvozanat va failover - bu mahalliy L7-siyosatlar (timeouts/retries/CB, health-checks), to’g’ri yopishtirish va xeshlash, kross-zonali barqarorlik va perimetrda - GSLB/DNS/Anycast. SLO geytlari, idempotentlik, graceful drain va muntazam chaos testlarini qo’shing - va tugun, zona yoki mintaqaning har qanday yo’qolishi oldindan aytib bo’ladigan RTO/RPO bilan boshqariladigan hodisaga aylanadi.

Contact

Biz bilan bog‘laning

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

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.