GH GambleHub

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)

SəviyyəTəsvirTipik RTO/RPOQiymətTətbiq
Backup/RestoreYalnız arxalar və mühit görüntüsüRTO: saat-gün, RPO: saat$Kritik olmayan sistemlər, hesabatlar
Pilot Light«Spark»: minimum stack qaldırıldı, məlumatlar təkrarlanırRTO: on dəqiqə-saat, RPO: dəqiqə-saat$$Orta kritiklik, qənaət
Warm Standbyİsti stand: demək olar ki, hazır, aşağı yükRTO: dəqiqə- $$$B2C-nüvə, ödəniş şlüzləri
Active/PassiveTam passiv klon, avtomatik feyloverRTO: dəqiqə, RPO: saniyə-dəqiqə$$$$Missiya-kritik API
Active/ActiveHər iki sayt proddaRTO ≈ 0, RPO ≈ 0-san. $$$$$Ekstremal SLO, qlobal məhsullar
💡 Qayda: biznes riskinə uyğun minimum kifayət qədər səviyyəni seçin.

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.

Bərpa nöqtəsi seçimi:
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.

Feyloverin psevdokodu:
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ı.

Gate (fikir):
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».

Mini-təlimin nümunəsi:

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.

Contact

Bizimlə əlaqə

Hər hansı sualınız və ya dəstək ehtiyacınız varsa — bizimlə əlaqə saxlayın.Həmişə köməyə hazırıq!

Telegram
@Gamble_GC
İnteqrasiyaya başla

Email — məcburidir. Telegram və ya WhatsApp — istəyə bağlıdır.

Adınız istəyə bağlı
Email istəyə bağlı
Mövzu istəyə bağlı
Mesaj istəyə bağlı
Telegram istəyə bağlı
@
Əgər Telegram daxil etsəniz — Email ilə yanaşı orada da cavab verəcəyik.
WhatsApp istəyə bağlı
Format: ölkə kodu + nömrə (məsələn, +994XXXXXXXXX).

Düyməyə basmaqla məlumatların işlənməsinə razılıq vermiş olursunuz.