Yedeklemeler ve felaket kurtarma
Yedeklemeler ve Felaket Kurtarma
1) Tanımlar ve hedefler
Yedekleme - sonraki kurtarma için veri/yapılandırmaların tutarlı bir kopyası (kazara silme, hatalar, kriptoloserler, felaketler).
DR (Felaket Kurtarma) - büyük bir kazadan sonra çalışan SLO'lara altyapıyı/hizmetleri geri yükleme süreci (yangın, bölge kaybı, büyük uzlaşma).
RPO (Recovery Point Objective - Kurtarma Noktası Hedefi) - zaman içinde izin verilen maksimum veri kaybı (örneğin, 15 dakika).
RTO (Recovery Time Objective - Kurtarma Süresi Hedefi) - hizmet kurtarma süresi hedefi (örneğin, 30 dakika).
Anahtar ilke: çoğaltma ≠ yedekleme. Çoğaltma, tüm kopyalarda hataları ve şifrelemeyi hızla yayar. Bir yedekleme, izole edilmiş, doğrulanmış, potansiyel olarak değiştirilemez bir kopyadır.
2) Veri sınıflandırma ve kritiklik seviyeleri
Varlıkları sınıflara bölün:- Tier-0 (hayati): işlem veritabanları, ödemeler, bilanço muhasebesi, sırlar/PKI.
- Tier-1 (kritik): hizmet yapılandırmaları, kuyruklar, CI/CD artifaktları, konteyner kayıtları.
- Tier-2 (önemli): analitik, raporlar, ikincil endeksler, günlük arşivleri.
- Tier-3 (yardımcı): önbellekler, zaman verileri (yeniden yapılandırılarak geri yüklenebilir).
Her sınıf için RPO/RTO, tutma süresi, değişmezlik gereksinimleri ve konumu tanımlayın.
3) Tutma Stratejileri: Kural 3-2-1-1-0
3 veri kopyası (prod + 2 yedekleme).
2 farklı ortam/depolama türü.
1 site dışı kopya (farklı bölge/bulut).
1 değişmez/hava boşluğu (WORM/Nesne Kilidi/Teyp).
Kurtarma kontrollerinde 0 hata (düzenli testler).
4) Yedekleme türleri
Tam - tam kopya. yavaş/pahalı ama tüm stratejiler için temel.
Artımlı - son herhangi bir yedekleme ile fark. Hacim olarak optimal.
Diferansiyel - son dolu ile fark. Daha hızlı iyileşme, daha fazla alan.
Anlık görüntü - bir birimin/diskin anlık görüntüsü (EBS/ZFS/LVM). Uygulama tutarlı anlık görüntülere ihtiyacımız var (sessiz).
PITR (Point-in-Time Recovery) - tam zaman/LSN geri alma için temel yedekleme + günlükleri (WAL/binlog).
Nesne/dosya/figüratif - belirli veri türleri için (VM görüntüleri, S3 nesneleri, DB dökümü).
5) Yedeklemelerin tutarlılığı
Çökme tutarlılığı: ani bir kapanmadan sonra olduğu gibi - durumsuz/günlüklü FS için uygundur.
Uygulama tutarlı: uygulama "donar" işlemleri (fsfreeze/pre-post komut dosyaları) - garantili bütünlüğü.
Veritabanı tutarlılığı: Yedekleme aracının API'si (pgBackRest, XtraBackup), hot-backup modları, donma kontrol noktaları.
6) Şifreleme, anahtarlar ve erişim
Tüm kopyalar için at-rest ve transit şifreleme.
KMS/HSM'deki anahtarlar, politikaya göre döndürme (90/180 gün), ortama göre ayrı anahtarlar.
Görevlerin ayrılması: Yedeklemeleri kim oluşturur/kaldırır ≠ bunları kim çözebilir/okuyabilir.
Şifre çözme anahtarlarını hedef kopyalarla aynı güven etki alanında tutmayın.
7) Değiştirilemez kopyalar ve fidye yazılımı koruması
Tutma ve Yasal Tutma ile Nesne Kilidi/WORM (Uyumluluk/Yönetişim).
Air-gap: yalıtılmış/çevrimdışı depolama (besleme, çevrimdışı bulut/hesap).
"Gecikmeli etkinleştirme" silme politikaları, MFA-Delete, yedek kovalar için ayrı hesap, kamu erişiminin yasaklanması.
Kötü amaçlı yazılım/montaj öncesi uzlaşma göstergeleri için doğrulama.
8) Frekans, zamanlama ve tutma
GFS (Büyükbaba-Baba-Oğul): günlük artışlar, haftalık tam/diff, aylık uzun depolama ile dolu.
RPO, artışların sıklığını ve WAL/binlog arşivlemeyi (örneğin, her 5-15 dakikada bir) belirler.
Depolama: Kritik - ≥ 35-90 gün + 12-36 ay boyunca aylık (yasal gereksinimler).
Mevsimsel zirveler ayrı kontrol noktalarıdır (promosyonlardan/sürümlerden önce).
9) DR modelleri ve senaryoları
Aktif-Aktif: Her iki bölge de trafiğe hizmet eder. Minimum RTO, veri çöküşü sıkı bir çatışma politikası gerektirir.
Aktif-Pasif (sıcak/ılık): Sıcak - açılmamış ve senkronize (RTO dakika), sıcak - kısmen hazır (RTO saat).
Soğuk: mağaza kopyaları ve Terraform/Ansible/images, talep üzerine yükseltmek (RTO gün +).
DRaaS: VM'lerin/ağların/adreslerin başka bir bölgedeki sağlayıcı orkestrasyonu.
10) Feilover orkestrasyonu ve kurtarma öncelikleri
Başlangıç önceliği: ağ/VPN/DNS - sırlar/KMS - veritabanları/kümeler - kuyruklar/önbellek - uygulamalar - çevre/CDN - analizler.
Otomasyon: DR ortamı için komut dosyaları/runbook eylemleri, Terraform/Ansible/Helm/ArgoCD profilleri.
Veri: DB PITR, reindex/replica, sıcak önbellek, şema uyumluluk bayrakları ile hizmetleri başlatıyor.
DNS/GSLB: TTL önceden düşürün, senaryoları doğrulama ile değiştirin.
11) Yedekleme doğrulama testleri
Testleri bir zamanlamaya göre geri yükle: Örnekleme yedeklemelerin N %'si, sandbox dağıtımı, otomatik şema/değişmez kontroller.
Tam DR-matkap (oyun günü): bölge/AZ'yi devre dışı bırakma, canlı trafikte (veya trafik gölgelerinde) RTO/RPO'yu kontrol etme.
Bütünlük testleri: karma dizinleri, sağlama toplamları, tüm katmanları okumaya çalışın (tam + zincir).
Belge raporu: zaman, adımlar, anomaliler, hedeflerden boşluk boyutu, düzeltmeler.
12) Temel teknolojiler için uygulama
Veritabanları
PostgreSQL: temel yedekleme + WAL arşivi (PITR), pgBackRest/Barman araçları; Çoğaltma yuvaları, izleme 'lsn'.
MySQL/MariaDB: Percona XtraBackup/Enterprise Backup, binlog arşivleme.
MongoDB: Büyük kümeler için mantıksal kopya + anlık görüntü için 'mongodump'; PITR için Oplog.
Redis: Kritik için RDB/AOF (Redis sadece önbellek değilse), ancak daha sık - kazalar için kaynak + anlık görüntüden mantıksal yeniden yapılandırma.
Kafka/Pulsar: meta veri yedekleme (ZK/Kraft/BookKeeper), disk anlık görüntüleri, konu/günlük yansıtma.
Kubernetes
etcd snapshot + Kaynaklar/birimler için Velero (CSI snapshot'ları).
Yedekleme sırları/PKI ayrı ayrı (Vault snapshot).
Resimlerin ayrı kaydı: değişmez etiketler.
VM'ler ve Dosya Sistemleri
ZFS: 'zfs snapshot' + 'zfs send | zstd | send-recv' artışları, 'scrub' işaretleniyor.
Öncesi/sonrası komut dosyaları ile LVM/EBS anlık görüntüleri (uygulama tutarlı).
Nesne Depoları - Sürümler + Nesne Kilidi.
13) Yedeklerin kataloglanması ve sürüm kontrolü
Dizin (meta veri kataloglama): ne, nerede, ne zaman, bitti, karma, KMS anahtarı, sahibi, tutma süresi.
Метки/теги: 'env = prod' stage ',' system = db 'k8s' vm ',' tier = 0 | 1 | 2 ',' retention = 35d | 1y '.
Altın kontrol noktaları: geçişlerden önce/DDL/büyük ölçekli sürümler.
14) Gözlemlenebilirlik ve metrikler
İş başarı oranı: % başarılı/başarısız, nedenler.
Yedekleme/geri yükleme süresi, pencere genişliği.
RPO-aktüel: günlük arşiv günlüğü (WAL/binlog) p95.
Bütünlük: Test edilen zincirlerin oranı, karma mutabakat hataları.
Maliyet: Sınıfa göre depolama kapasitesi, veri tekilleştirme/sıkıştırma oranı.
DR-hazırlık: egzersizlerin sıklığı ve sonucu (geç/başarısız).
15) Erişim ve uyum politikaları
Yedek depolama için ayrı hesaplar/projeler; NaC ilkesine göre erişim (üretim hesaplarından silme/şifrelemeye izin vermiyoruz).
Erişim/değişiklik günlükleri (denetim izi), toplu silme/retshn değişiklikleri için uyarılar.
Uyumluluk: GDPR (arşivlere karşı silme hakkı), PCI DSS (şifreleme, anahtarlar, segmentasyon), yerel düzenleyiciler.
16) Anti-desenler
"Bir kopyası var, yani bir yedeğe ihtiyacınız yok".
Değişmez/hava boşluğu yok: bir hata/kötü amaçlı yazılım her şeyi siler.
Prod ile aynı hesap/bölgedeki yedeklemeler.
Asla kurtarmayı kontrol etmeyin ("kontrol etmeden önce ölü" yedekleme).
Kataloglama ve sürüm kontrolü yok - bir kazada kaos.
Tüm ortamlar için paylaşılan şifreleme anahtarları.
Veritabanı için uygulama tutarlı modu olmayan anlık görüntüler.
Yedekleme penceresi zirvelerle kesişir (p99 ve SLO'yu etkiler).
17) Uygulama kontrol listesi (0-60 gün)
0-10 gün
Sistem/veri envanteri, kritiklik sınıfları.
RPO/RTO hedeflerini sınıfa göre ayarlayın.
Tier-0/1, WAL/binlog arşivi için tam + artımlı özelliği etkinleştirin.
Post yedeklemeleri: ayrı bölge/hesap + KMS şifrelemesini etkinleştir.
11-30 gün
Kritik kopyalar için değişmez (Nesne Kilidi/WORM) yapılandırın.
Kataloglamayı, etiketleri, raporlamayı girin; arızalara ve gecikme dergilerine karşı uyarır.
İlk DR-drill: yalıtılmış bir ortamda bir yedekten ayrı bir hizmeti geri yükleyin.
31-60 gün
Çalışma kitabını otomatikleştirin: Terraform/Ansible/Helm profilleri DR.
Düzenli geri yükleme testleri (hafta/ay) + üç aylık tam DR senaryosu.
Maliyet tekilleştirme/sıkıştırma/depolama yaşam döngülerini optimize edin.
18) Vade metrikleri
Testleri geri yükle: ≥ için 1/hafta Tier-0 (seçici), ≥ 1/ay - tam senaryo.
Değişmez kapsama alanı для Tier-0/1 = %100.
RPO-gerçek p95 ≤ hedefi (örneğin ≤ 15 dakika).
RTO-gerçek DR-egzersizleri ≤ hedef (örneğin ≤ 30 dakika).
Dizin bütünlüğü = %100 (her yedekleme tanımlanır ve kontrol edilir).
Olay-geri yükleme - Tespitten kurtarma işlemine kadar geçen süre.
19) Örnekler (snippet'ler)
PostgreSQL - PITR politikası (fikir):bash base backup once a day pgbackrest --stanza = prod --type = full backup archive WAL every 5 minutes pgbackrest --stanza = prod archive-push restore to time pgbackrest --stanza = prod restore --type = time --target =" 2025-11-03 14:00:00 + 02"
MySQL - artımlı döngü:
bash xtrabackup --backup --target-dir=/backup/full-2025-11-01 xtrabackup --backup --incremental-basedir=/backup/full-2025-11-01 --target-dir=/backup/inc-2025-11-02 xtrabackup --prepare --apply-log-only --target-dir=/backup/full-2025-11-01 xtrabackup --prepare --target-dir=/backup/full-2025-11-01 --incremental-dir=/backup/inc-2025-11-02
Kubernetes - Velero (manifesto fikirleri):
yaml apiVersion: velero. io/v1 kind: Backup metadata: { name: prod-daily }
spec:
includedNamespaces: ["prod-"]
ttl: 720h storageLocation: s3-immutable
S3 Nesne Kilidi (örnek yaşam döngüsü ilkesi):
json
{
"Rules": [{
"ID": "prod-immutable",
"Status": "Enabled",
"NoncurrentVersionExpiration": { "NoncurrentDays": 365 }
}]
}
20) İletişim ve operasyonel roller
Olay Komutanı, İletişim Kurşun, Operasyon Kurşun, DB Kurşun, Güvenlik.
Paydaşlar/düzenleyiciler/kullanıcılar için mesaj şablonları.
Eylemlerle ölüm sonrası: nerede dakika kaybettikleri, otomasyonun nerede geliştirileceği.
21) Sonuç
Yedeklerin ve DR'nin güvenilir bir döngüsü bir "kopya yapmak'değil, bir döngüdür: sınıflandırma, hedefler, RPO/RTO, çok seviyeli ve değişmez kopyalar, otomatik runbook'lar, düzenli geri yüklemeler ve alıştırmalar. 3-2-1-1-0'a uyun, yedeklemelerden çoğaltmayı ayırın, anahtarları şifreleyin ve izole edin, belgeleyin ve doğrulayın. Daha sonra'siyah kuğu "bile öngörülebilir kesinti süresi ve minimum veri kaybı ile yönetilebilir bir sürece dönüşecektir.