GH GambleHub

DR Stratejileri ve RTO/RPO

1) Temel prensipler

1. Hedefler önce anlamına gelir. İlk olarak, RTO/RPO ve kritik senaryoları formüle ediyoruz, ardından teknolojiyi seçiyoruz.
2. Önem açısından segmentasyon. Tüm hizmetler "altın" gerektirmez; İş kritikliğine göre böl.
3. Veriler DR.'nin çekirdeğidir Tutarlılık, çoğaltma, bozulma algılama ve kurtarma noktası donanımdan daha önemlidir.
4. Otomasyon ve doğrulanabilirlik. DR, IaC, kurtarma regresyon testleri ve telemetri olmadan anlamsızdır.
5. Öğretiler ve kanıtlar. Düzenli "oyun günü" olmayan bir plan, hazır olma yanılsamasıdır.
6. Güvenlik ve uyumluluk. Şifreleme, izolasyon, WORM/değişmez yedeklemeler, DPA/yargı alanları.

2) Şartlar ve yazışmalar

RTO - olay anından hizmet "normal'olarak geri yüklenene kadar geçen süre.
RPO, kurtarmadaki son sağlıklı veri noktasının "yaşı'dır.
RLO (Recovery Level Objective - Kurtarma Seviyesi Hedefi) - geri yüklenmesi gereken işlevsellik seviyesi (minimum uygulanabilir hizmet).
MTD (Maksimum Tolere Edilebilir Kesinti Süresi) - işletmenin kabul edilemez hasara uğradığı eşik.
RTA/RPA (Gerçek) - uygulamalardan gerçek zaman/kurtarma noktası.

İletişim: RTO ≤ MTD; RPA ≤ RPO. Hedefler ve gerçek arasındaki boşluk ölüm sonrası ve gelişme konusudur.

3) DR strateji sınıfları (hazırlık seviyeleri)

SeviyeAçıklamaTipik RTO/RPOMaliyetUygulama
Yedekleme/Geri YüklemeYalnızca yedeklemeler ve ortam görüntüsüRTO: saat-gün, RPO: saat$Kritik olmayan sistemler, raporlama
Pilot ışık"Spark": minimum yığın yükseltilir, veriler çoğaltılırRTO: onlarca dakika-saat, RPO: dakika-saat$$Orta kritiklik, tasarruf
Sıcak beklemeSıcak stand: neredeyse hazır, düşük yükRTO: dakikalar- $$$B2C çekirdek, ödeme ağ geçitleri
Aktif/PasifTam pasif klon, otomatik feiloverRTO: dakika, RPO: saniye-dakika$$$$İş ile ilgili kritik API'ler
Aktif/AktifSatışta her iki siteRTO≈0, RPO≈0 -sec. $$$$$Extreme SLO'lar, global ürünler
💡 Kural: İş riskine uygun minimum seviyeyi seçin.

4) Savunduğumuz senaryolar

Bölge/bulut/veri merkezi kaybı (elektrik, ağ, sağlayıcı).
Veri bozulması/operatör hatası (silme, bozuk kopyalar, mantıksal bozulma).
Kötü amaçlı yazılım/ransomware.
Serbest bırakma/yapılandırma hatası (kütle kesintisi).
Bağımlılığın çöküşü (KMS, DNS, sırlar, ödeme sağlayıcısı).
Yasal olaylar (engelleme, yargı alanından veri ihracatının yasaklanması).

Her senaryo için RTO/RPO, DR seviyesi, oyun kitabı, sorumlu kişileri belirtin.

5) Veri stratejileri (RPO'nun anahtarı)

5. 1 Yedeklemeler

Tam + artımlı + işlem günlükleri (DB için).
Değişmez/WORM depoları ve çevrimdışı kopyalar ("hava boşluklu").
Meta veriler ve kripto imzaları ile yedekleme kataloğu; Zamanlanmış test restorasyonları.

5. 2 Çoğaltma

Senkron (düşük RPO, ↑latentnost, bozulma yayılma riski).
Asenkron (perf üzerinde düşük etki, RPO> 0; Bozulma çocuğu ile birleştirin).
Akış replikasyonu ve devlet rekonstrüksiyonu için CDC (Veri Yakalamayı Değiştir).

5. 3 Mantıksal bozulmaya karşı koruma

N gün ≥ bir pencere ile sürüm oluşturma/" zaman içindeki noktalar" (PITR).
Değişmez imzalar (bakiyeler, toplamlar, chexums) "bozuk" verilerin erken tespitidir.
Anında bozulmaya karşı bir tampon olarak "yavaş" çoğaltma kanalları (15-60 dakika gecikme).

Kurtarma noktası seçim taslağı:
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) Uygulama, durum, önbellek

Durumsuz katman - herhangi bir bölgede ölçeklendirme ve yeniden başlatma (Git'te görüntü/grafik/manifestolar).
Durum (DB/caches/kew): Gerçeğin kaynağı DB'lerden biridir; Önbellekler ve indeksler fazla geniştir.
Idempotans ve yeniden sürüş - olayların yeniden teslimine izin verilir; Giden kutusu/gelen kutusu, dedup ve sürümleri kullanın.

7) Ağ ve giriş noktası

GSLB/DNS-feilover: gecikme/sağlık tabanlı, kısa TTL çökme penceresi.
Anycast/L7 proxy: tek IP, bölgesel sağlık yönlendirme.
Bölgesel alanlar ve yargı politikaları (PII için coğrafi sabitleme).
Sertifika dosyası/KMS: yedek zincirler, çift anahtarlı.

Feilover pseudocode:
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) Çalışma modeli ve otomasyon

IaC/GitOps: ikinci bölge altyapısı = kod,'tek düğme "dağıtımı.
Kod olarak Politika: gate "DR manifestoları/yedeklemeleri/uyarıları yok - serbest bırakma yok".
Runbooks: adım adım talimatlar ve her iki bölgeyle aynı "kırmızı düğme".
Sırlar: Kısa ömürlü krediler, OIDC federasyonu, uzlaşma/geri çağırma planı.

Kapı (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) Alıştırmalar ve testler (Oyun Günleri)

Senaryo tablosu: veritabanı kaybı, "bozuk" veri, KMS hatası, bölge düşüşü, ani çıkış sınırı.
Sıklık: kritik görev için üç ayda bir; Her altı ayda bir - geri kalanı için.
Egzersiz metrikleri: RTA/RPA vs hedefler, otomatik adımların oranı, manuel müdahalelerin sayısı, playbook hataları.
Bültenlerde kaos-duman: bağımlılık bozulması DR yollarını "kırmamalıdır".

Bir mini egzersiz örneği:

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) Playbooks (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 gözlemlenebilirlik metrikleri

Replica lag (sn), RPO-drift (hedef ve gerçek RPO arasındaki fark).
SLI'yi geri yükleyin: Ortama göre soğuk/sıcak iyileşme süresi.
Kapsam: Playbook/yedekleme/PITR ≥ N gün ile hizmetlerin %.
Matkap puanı: otomatik adımların oranı, RTA dağılımı, hata oranı.
Değişmezlik: WORM/hava boşluklu yedeklemelerin %'si.
Olay metrikleri: sahte sonra kuyruk uzunluğu/yeniden sürücü hızı.

12) Maliyet ve takaslar

CapEx/OpEx: Sıcak stand Active/Active'den daha ucuzdur, ancak Pilot Light'tan daha pahalıdır.
Çıkış: Bölgeler arası/bulutlar arası çoğaltmanın maliyeti; önbellek/sıkıştırma/yerel kümeler.
RTO/RPO vs $: Her "dokuz" kullanılabilirlik ve bir RPO saniyesi birkaç kat daha pahalıdır - işletme ile koordine edin.
Yeşil pencereler: toplu çoğaltma - ucuz/'yeşil "saatlerde.

13) Güvenlik ve uyumluluk

"Dinlenmede've" aktarımda "şifreleme, bölgeye göre ayrı KMS alanları.
Değişmez yedeklemeler, fidye yazılımı koruması: "3-2-1" (3 kopya, 2 medya, 1 çevrimdışı), MFA-silme.
Yargı alanları: PII için coğrafi sabitleme, yedeklemeleri yerelleştirme, TTL'nin üstünde Yasal Bekletme.
Zaman erişimleri: DR işlemleri için geçici roller, denetim günlüğü.

14) Anti-desenler

"Daha sonra bir plan yazalım" - DR egzersizsiz.
Mantıksal bozulmaya karşı koruma olmadan çoğaltma - hatayı anında çoğaltır.
Bir KMS/sır bölgesi - feilover mümkün değil.
Düzenli geri yükleme olmadan yedeklemeler - "Shredinger" DR.
Bölgeler arasındaki yakından ilişkili senkron işlemler kaskad gecikme/düşmedir.
Önceliklendirme yok: Her şey için aynı DR seviyesi (pahalı ve işe yaramaz).

15) Mimar kontrol listesi

1. Servis ve senaryoya göre tanımlanmış RTO/RPO/RLO?
2. Sınıflandırılmış veriler: gerçeğin kaynağı, PITR/pencere, WORM/değişmez?
3. Servis başına DR (Yedekleme/Geri Yükleme, Pilot, Sıcak, A/P, A/A) seçili mi?
4. Ağ: GSLB/Anycast, marjlı sertifikalar/anahtarlar, salt okunur bayraklar?
5. Uygulama: Idempotence, giden kutusu/gelen kutusu, dengeleme işlemleri?
6. IaC/GitOps/Policy as Code: İkinci bölgeye bir tıklama mı?
7. Matkap: Zamanlama, KPI RTA/RPA, eğitim sonrası faaliyetler?
8. İzleme: gecikme, RPO-drift, restore-SLI, matkap puanı, değişmez yedeklemeler?
9. Güvenlik/Uyumluluk: KMS Etki Alanları, Yargı Alanları, Yasal Bekletme?
10. Maliyet: çıkış bütçesi, yeşil pencereler, ekonomik olarak sağlam seviye?

16) Mini tarifler ve eskizler

16. Postgres için 1 PITR (fikir):

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 Mantıksal bozulmaya karşı koruma (gecikmeli çoğaltma):

yaml replication:
mode: async apply_delay: "30m" # window to roll back on corruption

16. 3 Trafik anahtarlama (GSLB pseudo-API):

bash gslb set-weight api. example. com region-a 0 gslb set-weight api. example. com region-b 100

16. 4 Değişmezlerin feiloverdan sonra kontrolü (pseudocode):

python assert total_balance(all_accounts) == snapshot_total assert no_duplicates(events_since(t_failover))

Sonuç

DR, teknik ve organizasyonel kararları hasarın büyümesinden daha hızlı yapabilme yeteneğidir. Gerçekçi RTO/RPO'ları belirleyin, yeterli kullanılabilirliği seçin, altyapı ve kontrolleri otomatikleştirin, düzenli egzersiz yapın ve gerçek RTA/RPA'ları ölçün. O zaman kaza bir felakete değil, öngörülebilir bir sonuçla kontrollü bir olaya dönüşecektir.

Contact

Bizimle iletişime geçin

Her türlü soru veya destek için bize ulaşın.Size yardımcı olmaya her zaman hazırız!

Telegram
@Gamble_GC
Entegrasyona başla

Email — zorunlu. Telegram veya WhatsApp — isteğe bağlı.

Adınız zorunlu değil
Email zorunlu değil
Konu zorunlu değil
Mesaj zorunlu değil
Telegram zorunlu değil
@
Telegram belirtirseniz, Email’e ek olarak oradan da yanıt veririz.
WhatsApp zorunlu değil
Format: +ülke kodu ve numara (örneğin, +90XXXXXXXXX).

Butona tıklayarak veri işlemenize onay vermiş olursunuz.