DR-strategiyalar və RTO/RPO
1) Əsas prinsiplər
1. Vəsaitdən əvvəl hədəflər. Əvvəlcə RTO/RPO və kritik ssenariləri formalaşdırırıq, sonra texnologiyanı seçirik.
2. Əhəmiyyətli seqmentasiya. Bütün xidmətlər «qızıl» tələb etmir; biznes tənqidi bölünür.
3. Verilənlər DR. nüvəsidir. Konsistentlik, replikasiya, pozulma aşkarlanması və bərpa nöqtəsi "dəmir 'dən daha vacibdir.
4. Avtomatlaşdırma və yoxlanılabilirlik. DR IaC, reqressiya bərpa testləri və telemetriya olmadan mənasızdır.
5. Təlimlər və sübutlar. Müntəzəm «game day» olmadan plan - hazırlıq illüziyası.
6. Təhlükəsizlik və uyğunluq. Şifrələmə, izolyasiya, WORM/immutable-backup, DPA/yurisdiksiya.
2) Şərtlər və uyğunluq
RTO - hadisə anından xidmətin bərpasına qədər olan vaxt.
RPO - bərpa zamanı son sağlam məlumat nöqtəsinin «yaşı».
RLO (Recovery Level Objective) - bərpa edilməli olan funksionallıq səviyyəsidir (minimal etibarlı xidmət).
MTD (Maximum Tolerable Downtime) - biznesin qəbuledilməz zərər çəkdiyi hədd.
RTA/RPA (Actual) - praktikadan həqiqi bərpa vaxtı/nöqtəsi.
Rabitə: RTO ≤ MTD; RPA ≤ RPO. Məqsədlər və fakt arasındakı boşluq postmortem və təkmilləşdirmələrin mövzusudur.
3) DR strategiya sinifləri (hazırlıq səviyyələri)
4) Özümüzü müdafiə etdiyimiz ssenarilər
Bölgə itkisi/bulud/məlumat mərkəzi (elektrik, şəbəkə, provayder).
Məlumat korrupsiyası/operator səhvi (silmə, «qırıq» replikalar, məntiqi zərər).
Zərərli proqram/şifrələyici (ransomware).
Buraxılış/konfiqurasiya qüsuru (kütləvi çıxış).
Asılılığın çökməsi (KMS, DNS, sirlər, ödəniş provayderi).
Hüquqi hadisələr (bloklama, yurisdiksiyadan məlumatların çıxarılmasına qadağa).
Hər ssenari üçün RTO/RPO, DR səviyyəsi, playbook, məsul.
5) Məlumat strategiyaları (RPO açarı)
5. 1 Backup
Tam + əlavə + əməliyyat jurnalları (DB üçün).
Immutable/WORM-saxlama və oflayn surətləri («air-gapped»).
Metadata və kriptovalyutası olan backup kataloqu; test bərpa cədvəli.
5. 2 Replikasiya
Sinxron (aşağı RPO, ↑ gecikmə, pozulma riski).
Asinxron (perf aşağı təsir, RPO> 0; korlanma detektoru ilə birləşdirin).
CDC (Change Data Capture) axın replikasiyası və vəziyyətin yenidən qurulması üçün.
5. 3 Məntiqi pozulmadan qorunma
N gün ≥ pəncərəsi ilə version/» vaxt nöqtəsi» (PITR).
İnvariantların işarələri (balans, məbləğ, çeksumma) - «sınıq» məlumatların erkən detalı.
«Yavaş» replikasiya kanalları (15-60 dəq delay) ani zərər qarşı bufer kimi.
python def pick_restore_point(pitr, anomaly_signals, max_age):
healthy = [p for p in pitr if not anomaly_signals. after(p. time)]
return max(healthy, key=lambda p: p. time if now()-p. time <= max_age else -1)
6) Tətbiq, vəziyyət, cache
Statetless qat - hər hansı bir bölgədə ölçmək və yenidən başlamaq (Git-də şəkil/çartlar/manifestlər).
State (DB/Cache/Chew): həqiqət mənbəyi DB biridir; caches və indeksləri yenidən istehsal olunur.
İdempotentlik və re-drive - hadisələrin yenidən çatdırılması mümkündür; outbox/inbox, dedup və versiyası istifadə edin.
7) Şəbəkə və giriş nöqtəsi
GSLB/DNS-feylover: latency/health-based, qısa TTL qəza pəncərə.
Anycast/L7-proxy: vahid IP, regional sağlamlıq marşrutu.
Regional domenlər və yurisdiksiya siyasətləri (PII üçün geo-pinning).
Feylover sertifikatları/KMS: ehtiyat zəncirləri, dual-key.
python if slo_breach("region-a") or health("region-a")==down:
route. shift(traffic, from_="region-a", to="region-b", step=20) # канарим enable_readonly_if_needed()
8) Əməliyyat modeli və avtomatlaşdırma
IaC/GitOps: İkinci bölgənin infrastrukturu = kod, «tək» yerləşdirmə.
Policy as Code: Gate «heç bir DR-manifest/backup/alert - buraxılış yoxdur».
Runbooks: hər iki bölgədə eyni addım-addım təlimatlar və «qırmızı düymə».
Sirləri: qısa ömürlü kreditlər, OIDC federasiyası, güzəşt/geri çağırış planı.
rego package dr deny["Missing PITR ≥ 7d"] {
input. db. pitr_window_days < 7
}
deny["No restore test in 30d"] {
now() - input. db. last_restore_test > 3024h
}
9) Təlimlər və testlər (Game Days)
Script cədvəli: DB itkisi, «sındırılmış» məlumatlar, KMS-dən imtina, bölgənin düşməsi, qəfil egress-limit.
Tezlik: kritik missiya üçün rüblük; yarım ildə bir dəfə - digərləri üçün.
Təlimin metrikası: RTA/RPA vs hədəf, avtomatik addımların payı, əl müdaxilələrinin sayı, playbook səhvləri.
Relizlərdə Chaos-smoke: asılılığın deqradasiyası DR yollarını «qırmamalıdır».
T0: cut off the primary database (firewall drop)
T + 2m: GSLB shift 20% of traffic, then 100% at SLO_ok
T + 6m: checking business invariants and lag replication
T + 10m: post-drill: fixing RTA/RPA, playbook improvements
10) Playbook (kanonik şablon)
yaml playbook: "dr-failover-region-a-to-b"
owner: "platform-sre"
rto: "15m"
rpo: "5m"
triggers:
- "health(region-a)==down"
- "slo_breach(payments)"
prechecks:
- "backup_catalog ok; last_restore_test < 30d"
- "pitr_window >= 7d"
steps:
- "Announce incident; open war-room; assign IC"
- "Freeze writes in region-a (flag write_readonly)"
- "Promote db-b to primary; verify replication stopped cleanly"
- "Shift GSLB 20%→50%→100%; monitor p95/error"
- "Enable compensations and re-drive queues"
validation:
- "Business invariants (balances, duplicate_checks)"
- "Synthetic tests green; dashboards stable 30m"
rollback:
- "If db-b unhealthy: revert traffic; engage restore from PITR T-Δ"
comms:
- "Status updates each 15m; external note if SEV1"
11) DR müşahidə metrikası
Replica lag (san.), RPO-drift (hədəf və faktiki RPO arasındakı fərq).
Bərpa SLI: ətraf mühitin soyuq/isti bərpası zamanı.
Coverage: playbook/backup servislər %/PITR ≥ N gün.
Drill score: avtomatik addımların payı, RTA paylanması, səhv tezliyi.
Immutability: WORM/air-gapped-də% backup.
Hadisə metrikləri: fayloverdən sonra növbələrin uzunluğu/re-drive sürəti.
12) Qiymət və güzəştlər
CapEx/OpEx: Active/Active-dən daha ucuz, lakin Pilot Light-dan daha bahalı isti stend.
Egress: regionlararası/buludlararası replikasiya pula başa gəlir; cache/sıxılma/yerli aqreqatlar.
RTO/RPO vs $: Hər bir «doqquz» əlçatanlıq və bir saniyə RPO çox bahadır - bizneslə razılaşın.
Yaşıl pəncərələr: batch replikasiyaları - ucuz/« yaşıl »saatda.
13) Təhlükəsizlik və uyğunluq
«Rahat» və «tranzit» şifrələmə, bölgələr üzrə ayrı KMS domenləri.
Immutable-backup, ransomware qorunması: «3-2-1» (3 nüsxə, 2 media, 1 offline), MFA-delete.
Yurisdiksiyalar: PII üçün geo-pinning, backup lokalizasiyası, TTL üzərindən Legal Hold.
Time Access: DR əməliyyatları üçün müvəqqəti rollar, audit jurnalı.
14) Anti-nümunələr
«Planı daha sonra yazaq» - təlimsiz DR.
Məntiqi pozğunluqdan qorunmadan replikasiya - yanıb-sönən xətanı çoxaldır.
Bir KMS/Secrets regionu - Feylover mümkün deyil.
Daimi bərpa olmadan backaps - «şredinger» DR.
Bölgələr arasında sıx əlaqəli sinxron əməliyyatlar - kaskad gecikmə/düşmə.
Heç bir prioritet: hər şey üçün eyni DR səviyyəsi (bahalı və faydasız).
15) Memarın yoxlama siyahısı
1. Servislər və ssenarilər üzrə RTO/RPO/RLO müəyyən edilmişdir?
2. Təsnif edilmiş məlumatlar: həqiqət mənbəyi, PITR/pəncərə, WORM/immutable?
3. DR (Backup/Restore, Pilot, Warm, A/P, A/A) per-servis səviyyəsi seçilmişdir?
4. Şəbəkə: GSLB/Anycast, sertifikatlar/anahtarlar, bayraqlar «read-only»?
5. App: idempotentlik, outbox/inbox, kompensasiya əməliyyatları?
6. IaC/GitOps/Policy as Code: ikinci bölgənin yayılması üçün bir klik?
7. Təlimlər: cədvəl, KPI RTA/RPA, post-təlim hərəkətləri?
8. Monitorinq: lag, RPO-drift, restore-SLI, drill-score, immutable backup?
9. Təhlükəsizlik/uyğunluq: KMS domenləri, yurisdiksiyalar, Legal Hold?
10. Qiymət: büdcə egress, «yaşıl» pəncərələr, iqtisadi cəhətdən əsaslandırılmış səviyyə?
16) Mini reseptlər və eskizlər
16. Postgres üçün 1 PITR (ideya):
bash base backup daily + WAL archive pg_basebackup -D/backups/base/$ (date +% F)
archive_command='aws s3 cp %p s3://bucket/wal/%f --sse'
restore pg_restore --time "2025-10-31 13:21:00Z"...
16. 2 Məntiqi pozulmadan qorunma (gecikmiş replika):
yaml replication:
mode: async apply_delay: "30m" # window to roll back on corruption
16. 3 Trafik keçid (psevdo-API GSLB):
bash gslb set-weight api. example. com region-a 0 gslb set-weight api. example. com region-b 100
16. 4 Feyloverdən sonra invariantların yoxlanılması:
python assert total_balance(all_accounts) == snapshot_total assert no_duplicates(events_since(t_failover))
Nəticə
DR texniki və təşkilati qərarları zərərin artmasından daha sürətli qəbul etmək qabiliyyətidir. Realist RTO/RPO-ları müəyyən edin, kifayət qədər hazırlıq səviyyəsini seçin, infrastrukturu və yoxlamaları avtomatlaşdırın, mütəmadi olaraq məşq edin və faktiki RTA/RPA-ları ölçün. Sonra qəza fəlakətə deyil, proqnozlaşdırıla bilən nəticə ilə idarə olunan hadisəyə çevriləcəkdir.