Ochiqlik zonalari va kross-mintaqalar
1) Atamalar va maqsadlar
Kirish zonasi (AZ) - mintaqa ichidagi izolyatsiyalangan ma’lumotlar markazi (o’z quvvati/tarmog’i).
Mintaqa - umumiy geografiyasi va kechikishlari bo’lgan AZ guruhi.
- RTO (Recovery Time Objective) - qancha vaqt xizmat ko’rsatmaslik mumkin.
- RPO (Recovery Point Objective) - qancha ma’lumotlar yo’qolishi mumkin.
Odatda: mintaqa ichidagi RTO ≤ 5-15 daqiqa, RPO ~ 0-1 daqiqa, mintaqalararo - RTO ≤ 1 soat, RPO ≤ 5 daqiqa (mahsulot va byudjetga bog’liq).
2) Arxitektura modellari
2. 1 Mintaqa ichida (multi-AZ)
Stateless qatlam: AZ bo’yicha taqsimlangan; balanslash - health-checks bilan L4/L7.
Stateful-qatlam: AZ orasidagi sinxron replikatsiyali (yoki kvorumli) klasterlar.
Kesh/navbatlar: klaster, AZ shardlangan va avtomatik failover.
2. 2 Mintaqalararo (multi-region)
Active-Active: ikkala hudud ham trafikni qabul qiladi.
foydalanuvchilarga minimal latentlik, tez tiklanish; − konsistentlik va nizolarning murakkabligi.
Active-Passive (hot/warm): asosiy mintaqa xizmat ko’rsatadi, ikkinchisi - issiq/issiq kutish.
ma’lumotlar osonroq, arzonroq; − RTOdan yuqori.
Pilot-Light: minimal «chiroq» (ma’lumotlar sinxronlashtiriladi, hisoblash avariya paytida ochiladi).
DR-backup: faqat orqalar va tiklash stsenariysi (eng arzon va eng sekin).
3) Ma’lumotlar va konsistentlik
3. 1 Maʼlumotlar bazasi
Sinxron kvorumlar (RPO ≈ 0, ↑ latentlik): Mintaqa doirasida sinxron standbys bilan PostgreSQL; taqsimlangan DB (CockroachDB/Cassandra) lokal kvorumlar (Local Quorum) va AZ bo’yicha balanslash bilan.
Mintaqalararo asinxron (RPO> 0, ↓ latentlik): Postgres/MySQL mantiqiy replikatsiyasi; «global tables» в KV/NoSQL; CDC → boshqa mintaqaga oqim.
Qarama-qarshi yozuvlar: active-active uchun CRDT/version yoki «haqiqat manbai» strategiyasidan (leader-region per key/tenant) foydalaning.
3. 2 Event-sorsing va navbatlar
Navbatlar/oqimlar (Kafka/Pulsar/SQS-ga o’xshash): mirror-topics yoki kross-mintaqaviy replikatorlar; kalit - konsumerlarning idempotentligi va kalitlar bo’yicha dedup.
Vebxuklar va tashqi sheriklar: ikkala zonada ham imzo chekish, replay, offset/chek pointlarini saqlash.
3. 3 Kesh
Mahalliy per-region keshlari (write-through/refresh-ahead); global umumiy kesh faqat mustahkam KV uchun (aks holda split-brain). Hodisalar bo’yicha nogironlik (pub/sub), TTL - konservativ.
4) Global trafik va tarmoq konturi
GSLB/DNS: Geo-/Latency-based routing, health-checks, kanareykalar va avariyalar uchun «traffic-weights».
Anycast/Edge: Foydalanuvchiga kirishni yaqinlashtiring, so’ngra eng yaqin sog’lom mintaqaga.
Failover-siyosatchilar: mintaqaviy upstream pullari, tanqidiy yo’llarda 0-RTT taqiqlash, mintaqalararo qaramliklarga nisbatan past vaqtlar.
Retraj siyosati: eksponensial backoff + jitter, total-deadline cheklovi, idempotent PUT/POST s’Idempotency-Key’.
5) Kubernetes va servis-mesh
5. Bitta klasterda 1 Multi-AZ
topology spread constraints по `topology. kubernetes. io/zone`.
PodDisruptionBudget и priority classes.
NodeAffinity/Anti-Affinity - replikalarning kod joylashuvidan qochish.
Saqlash zonalari: AZ bo’yicha replikatsiya qilingan PV yoki taqsimlangan volume-tizimlar.
5. 2 Multi-region (multi-cluster)
Deklarativ sinxronlash uchun per-region + GitOps (Argo CD/Flux) alohida klasterlari.
Service Mesh (Istio/Linkerd): locality-aware load-balancing va failover; mTLS, umumiy o’ziga xoslik.
Traffic-shifting: bosqichma-bosqich 1% → 10% → 50% yangi mintaqaga; «0%» ruchkasi bir zumda.
6) RTO/RPOni tanlash va patternlarga bog’lash
7) Nosozlikka chidamlilik testi (DR)
GameDays: har chorakda to’liq ko’lamli «mintaqa/AZ so’ndi» stsenariysi.
Chaos-inyeksiyalar: tarmoqdagi kechikishlar, paketlarni yo’qotish, broker/bazani bitta AZda o’chirish.
RTO/RPO haqiqiy: vaqtni o’zgartirish va ma’lumotlarni yo’qotishni o’lchang, hisobotni e’lon qiling.
Runbooks: bosqichma-bosqich ko’rsatmalar va almashtirish uchun «qizil tugmalar» (DNS weights, feature-flags, og’ir chiziqlarni o’chirish).
8) Kuzatuv va boshqaruv
Segzы metriki po region/AZ/tenant; p95/p99 yo’nalishlar bo’yicha yashirin.
SLO va Error Budgets mintaqa va global pulga.
Alerta: Bir mintaqaning tanazzulga uchrashi, agar ikkinchisi normal trafikka ega bo’lsa, peyjingni to’xtatmasligi kerak.
Трейсы: baggage `region`, `az`, `failover=true/false`; «failover’ga qancha so’rovlar o’tkazildi».
9) Xavfsizlik va muvofiqlik
Data residency: PII/to’lov ma’lumotlarini muayyan mintaqalarga bog’lash (yurisdiksiya).
Sirlar: KMS/smart-HSM kross-mintaqaviy kalitlar va rotatsiya bilan; per-region kalitlarini ajrating.
mTLS va hududlar o’rtasidagi o’zaro ishonch; ACL boʻyicha kross-mintaqaviy egressni cheklang.
10) Qiymat va tejash
Edge-kesh + SWR - mintaqalararo egressni kamaytirish.
Turli saqlash sinflari (hot/warm/cold) va downsampling metrik/loglar.
Avto-scale hududlar bo’yicha profillar (tungi minimal).
Tasvirlarning oʻxshashligi + atrof-muhit oʻzgaruvchilari orqali differensial konfiguratsiyasi/Helm values.
11) Antipatternlar
Butun tizimga bitta Stateful-master; kvorumsiz split-brain.
Yagona RDBMSga mintaqalararo sinxron yozuv (chidab boʻlmas latentlik).
CRDT → tiqilinchsiz va «fantomasiz» global kesh.
Idempotentlik bo’lmagan retralar → operatsiyalar/to’lovlarning dublikatlari.
Yagona «global» SLO - bitta mintaqaning muvaffaqiyatsizligini yashiradi.
Muntazam DR mashqlari yo’q - rejalar jangda ishlamaydi.
12) iGaming/Moliya xususiyatlari
To’lov provayderlari/KTS mintaqaviy tarzda tanlanadi; sog’liq signallari bilan PSP smart-routing qiling, zaxira uchun failover.
Yurisdiksiya: mamlakat/mintaqa ichida PII va operatsiyalar jurnallarini saqlash; kross-mintaqa - faqat agregatlar/anonim.
Limitlar/mas’uliyatli o’yin: mahalliy qoidalar va soatlar - mintaqalar o’rtasida «peshonaga» nusxa ko’rsatmang, voqealarning mustahkamligidan foydalaning.
Bonuslar/balans: idempotent kalitlari va «haqiqat manbai» per tenant/region; DR dan keyin reconcile-joblar.
13) Mini-retseptlar (soxta konfig)
13. 1 Envoy locality-aware + failover
yaml load_assignment:
endpoints:
- locality: { region: eu, zone: eu-a }
lb_endpoints: [{ endpoint: { address:... } }]
- locality: { region: eu, zone: eu-b }
lb_endpoints: [{ endpoint: { address:... } }]
- locality: { region: us, zone: us-a } # failover target lb_endpoints: [{ endpoint: { address:... } }]
common_lb_config:
zone_aware_lb_config: {}
locality_weighted_lb_config: {}
outlier_detection:
consecutive_5xx: 5 base_ejection_time: 30s
13. 2 Kubernetes topology spread
yaml spec:
topologySpreadConstraints:
- maxSkew: 1 topologyKey: topology. kubernetes. io/zone whenUnsatisfiable: DoNotSchedule labelSelector: { matchLabels: { app: api } }
13. 3 DNS og’irlik fayloveri (g’oya)
’weight (eu) = 90’,’weight (us) = 10’→ degradatsiyasida’eu’avtomatik ravishda’us’ga siljiydi. Health-checks va past TTL (lekin unchalik agressiv emas, 30-120 s).
14) Prod-tayyorlik chek-varaqasi
- RTO/RPO per servisi aniqlandi va biznes bilan kelishilgan.
- Stateless AZ bo’yicha taqsimlangan; stateful kvorum/replikatsiyaga va konsistentlikning tushunarli modeliga ega.
- Mintaqalararo replikatsiya (asinxron/CDC), mojaro/deduplikator testlari.
- GSLB/Anycast sozlangan, health-checks va weights avtomatlashtirilgan.
- Kubernetes: topology-spread, PDB, anti-affinity; multi-cluster GitOps.
- Jitter bilan retray, write da idempotentlik; mintaqalararo qisqa vaqt.
- Haqiqiy RTO/RPO o’lchangan DR-mashqlar; dolzarb runbook.
- Mintaqa/AZ, SLO va burn-rate bo’yicha kuzatish, alertlar normal ishni «to’sib qo’ymaydi».
- Data residency/sirlar/kalitlar regulyatorga mos keladi.
- Iqtisodiyot: egress, saqlash, avtoskeyl profillari nazorat ostida.
15) TL; DR
Multi-AZni bazaviy qatlam, multi-region - biznesni sugʻurtalash sifatida quring. RTO/RPO va qiymati uchun pattern (active-active/standby) ni tanlang, maʼlumotlarni ongli ravishda takrorlang (kvorumlar/CDC/CRDT), global trafikni GSLB/Anycast va locality-aware balanslash orqali boshqaring. Majburiy: idempotentlik, qisqa taymautlar, muntazam DR-mashqlar, SLO/region/AZ kesimlaridagi metriklar. iGaming/moliya uchun hududiy PSP/KYC, maʼlumotlar talablari va yurisdiksiyalar boʻyicha alohida SLO qoʻshing.