Жеткиликтүүлүк зоналары жана кросс-региондор
1) Терминдер жана максаттар
Жеткиликтүүлүк зонасы (AZ) - аймактын ичиндеги обочолонгон дата борбору (өз кубаттуулугу/тармагы).
Аймак - жалпы географиясы жана кечигүүлөрү бар AZ тобу.
- RTO (Recovery Time Objective) - канча убакытка чейин кызмат көрсөтпөй коюуга болот.
- RPO (Recovery Point Objective) - канча маалыматтарды жоготууга жол берилет.
Адатта: региондун ичинде биз RTO ≤ 5-15 мин, RPO ~ 0-1 мин, аймак аралык - RTO ≤ 1 саат, RPO ≤ 5 мин (продукт жана бюджетке көз каранды).
2) архитектуралык моделдер
2. 1 Региондун ичинде (multi-AZ)
Stateless катмары: AZ боюнча бөлүштүрүлөт; балансы - L4/L7-текшерүү менен.
Stateful катмары: АЗ ортосунда синхрондуу репликация (же кворум) менен кластерлер.
Кэш/кезек: кластердик, АЗ жана автоматтык failover боюнча шардарлоо менен.
2. 2 Аймак аралык (multi-region)
Active-Active: эки аймактар трафикти кабыл алат.
колдонуучулардын минималдуу жашыруун, тез калыбына келтирүү; − татаалдыгы жана чыр-чатактар.
Active-Passive (hot/warm): негизги аймак тейлейт, экинчиси - ысык/жылуу күтүү.
жөнөкөй маалыматтар, арзан, − жогору RTO.
Pilot-Light: минималдуу "жарык" (маалыматтар синхрондоштурулат, эсептөөлөр кырсык болгон учурда ачылат).
DR-backup: гана backaps жана калыбына келтирүү скрипт (арзан жана жай).
3) Маалыматтар жана консистенттүүлүк
3. 1 Маалымат базалары
Синхрондуу кворум (RPO ≈ 0, ↑ латенттүүлүк): PostgreSQL региондун ичинде синхрондуу standbys менен; бөлүштүрүлгөн DD (CockroachDB/Cassandra) Жергиликтүү Quorum (Local Quorum) жана AZ боюнча балансы менен.
Асинхрондук аймактар аралык (RPO> 0, ↓ латенттүүлүк): Postgres/MySQL логикалык репликациясы; «global tables» в KV/NoSQL; CDC → башка аймакка агымы.
Карама-каршы жазуулар: active-active үчүн CRDT/версиялоо же "чындык булагы" стратегиясын (лидер-аймак per key/tenant) колдонуңуз.
3. 2 Event-сорсинг жана кезек
кезек/агымдар (Kafka/Pulsar/SQS-окшош): mirror-topics же кросс-аймактык репликаторлор; ачкыч - консумерлердин жана ачкычтар боюнча дедуптун демпотенттиги.
Webhuke жана тышкы өнөктөштөр: кол коюу, replay, эки зонада offset/текшерүү пункттарын сактоо.
3. 3 Кэш
Жергиликтүү кэш per-аймак (write-through/refresh-ahead); глобалдык жалпы кэш гана күчтүү KV (болбосо split-brain). Окуялар боюнча майып (pub/sub), TTL - эскичил.
4) Глобалдык трафик жана тармактык контур
GSLB/DNS: Geo-/Latency-based routing, health-checks, канарейка жана кырсыктар үчүн "traffic-weights".
Anycast/Edge: колдонуучуга кирүү жакындатат, андан кийин - жакын дени сак аймакка.
Failover-саясат: upstream's аймактык пулдар, критикалык жолдордо 0-RTT тыюу, аймактар аралык көз карандылыкка төмөн убакыт.
Retray саясаты: экспоненциалдык backoff + життер, тотал-deadline чектөө, Idempotent PUT/POST менен 'Idempotency-Key'.
5) Kubernetes жана тейлөө меш
5. Бир кластерде 1 Multi-AZ
topology spread constraints по `topology. kubernetes. io/zone`.
PodDisruptionBudget и priority classes.
NodeAffinity/Anti-Affinity - репликалардын коо-жайгашкан алыс.
Сактоо зоналары: АЗ же бөлүштүрүлгөн volume системалары боюнча репликация менен PV.
5. 2 Multi-region (multi-cluster)
Өзүнчө кластерлер per-аймак + GitOps (Argo CD/Flux) жарыя синхрондоштуруу үчүн.
Service Mesh (Istio/Linkerd): locality-aware load-balancing жана региондор ортосундагы failover; mTLS, жалпы өзгөчөлүгү.
Traffic-shifting: этап-этабы менен 1% → 10% → 50% жаңы аймакта; туткасы "0%" ошол замат.
6) RTO/RPO тандоо жана үлгүлөрү байлап
7) сыноо каршылык (DR)
GameDays: чейректик толук масштабдуу сценарий "өчүп калган аймак/AZ".
Chaos-инъекцияларды: тармактык кечигүүлөр, пакеттерди жоготуу, брокерди/базаны бир АЗда өчүрүү.
RTO/RPO иш жүзүндө: которуу жана маалыматтарды жоготуу убактысын өлчөө, отчетту жарыялоо.
Runbooks: этап-этабы менен көрсөтмөлөр жана "кызыл баскычтар" (DNS weights, feature-flags, оор баскычтарды өчүрүү).
8) Байкоо жана башкаруу
region/AZ/tenant боюнча метр тилкелери; p95/p99 каттамдар боюнча жашыруун.
SLO жана Error Budgets региондо жана дүйнөлүк бассейнде.
Алерталар: бир аймактын деградациясы пейджингди "өчүрбөшү" керек, эгерде экинчиси трафикти нормалдуу алып жүрсө.
Трейсы: baggage `region`, `az`, `failover=true/false`; отчеттор "канча суроо-failover кетти".
9) Коопсуздук жана шайкештик
Data residency: PII/төлөм маалыматтарын белгилүү бир аймактарга байланыштыруу (юрисдикция).
Secrets: кросс-аймактык ачкычтар жана айлануу менен KMS/акылдуу HSM; per-аймак ачкыч материалдарды бөлүшүү.
mTLS жана региондор ортосундагы өз ара ишеним; ACL боюнча cross-аймактык egress чектөө.
10) Наркы жана үнөмдөө
Edge кэш + SWR - аймактар аралык egress азайтуу.
Ар кандай сактоо класстары (hot/warm/cold) жана downsampling метрик/логдор.
региондор боюнча Auto-scale профилдери (түнкү минимум).
Сүрөттөрдүн идентификациясы + чөйрө өзгөрмөлөрү аркылуу дифференцияланган конфигурация/Helm values.
11) Антипаттерндер
Бир Stateful Master бүт системасы боюнча; кворум жок split-brain.
Региондор аралык синхрондуу жазуу жалгыз RDBMS (чыдагыс жашыруун).
CRDT жок күчтүү туруктуулук менен Global кэш → тыгындар жана "Fantoms".
Демпотенттиги жок ретрайлер → операциялардын/төлөмдөрдүн дубликаттары.
Бирдиктүү "глобалдык" SLO - бир аймактын ийгиликсиздигин жашырат.
Эч кандай үзгүлтүксүз DR-машыгуу - пландар согушта иштебейт.
12) iGaming/каржы өзгөчөлүктөрү
Төлөм провайдерлери/КБК региондук негизде тандалат; ден соолук сигналдары менен PSP боюнча smart-routing, камдык боюнча failover.
Юрисдикция: PII жана өлкөнүн/аймактын ичиндеги операциялардын журналдарын сактоо; кросс-аймак - агрегаттар/анонимдүү гана.
Лимиттер/жоопкерчиликтүү оюн: жергиликтүү эрежелер жана сааттар - аймактардын ортосунда "чекеге" кайталабаңыз, окуялардын консистенттүүлүгүн колдонуңуз.
Бонустар/баланс: демпотенттик ачкычтар жана "чындык булагы" per tenant/region; DR кийин reconcile Jobs.
13) Mini Recipes (псевдоконфиги)
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 салмак Feylover (идея)
'weight (eu) = 90', 'weight (us) = 10' → деградацияда 'eu' автоматтык түрдө 'us' дегенге жылат. Health-текшерүү жана төмөндөтүлгөн TTL (бирок өтө агрессивдүү эмес, 30-120 с).
14) Prod-даярдык чек тизмеси
- RTO/RPO per кызматы аныкталган жана бизнес менен макулдашылган.
- Stateless AZ боюнча бөлүштүрүлөт; stateful кворум/репликация жана түшүнүктүү консистенттик моделге ээ.
- Replication аралык (asinxron/CDC), чыр-тесттер/deduplicator.
- GSLB/Anycast орнотулган, ден соолук-текшерүү жана салмагы автоматташтырылган.
- Kubernetes: topology-spread, PDB, anti-affinity; multi-cluster GitOps.
- Jitter менен Retrais, write боюнча боштук; кыска убакыт аралык.
- DR-машыгуу, иш жүзүндө RTO/RPO менен өлчөнгөн; учурдагы runbook.
- аймак/AZ боюнча байкоо, SLO жана бурн-rate кесилишинде, Алерталар нормалдуу иш "өчүрүү" эмес.
- Data residency/сырлар/ачкычтар жөнгө ылайык.
- Экономика: egress, сактоо, көзөмөлгө Autoscale Profiles.
15) TL; DR
базалык катмар катары multi-AZ куруу, multi-аймак - бизнес камсыздандыруу катары. RTO/RPO жана наркы боюнча үлгү (active-active/standby) тандап, атайылап маалыматтарды кайталап (kvorums/CDC/CRDT), GSLB/Anycast жана locality-aware балансы аркылуу глобалдык трафикти башкаруу. Милдеттүү: демпотенттик, кыска таймауттар, үзгүлтүксүз DR-машыгуулар, SLO/аймак/AZ кесилиштериндеги метриктер. iGaming/каржы үчүн аймактык PSP/KYC, маалымат талаптары жана юрисдикциялар боюнча өзүнчө SLO кошуу.