GH GambleHub

Backup və disaster recovery

Backup və Disaster Recovery

1) Təriflər və məqsədlər

Backup - sonradan bərpa üçün məlumatların/konfiqurasiyaların razılaşdırılmış surəti (təsadüfi silinmələrdən, fayllardan, kriptolokerlərdən, fəlakətlərdən).
DR (Disaster Recovery) - böyük qəzadan (yanğın, bölgə itkisi, kütləvi kompromasiya) sonra SLO işçilərinə infrastruktur/xidmətlərin bərpası prosesi.
RPO (Recovery Point Objective) - maksimum icazə verilən vaxt itkisi (məsələn, 15 dəqiqə).
RTO (Recovery Time Objective) - xidməti bərpa etmək üçün məqsədli vaxt (məsələn, 30 dəqiqə).

Əsas prinsip: replikasiya ≠ backup. Replikasiya səhvləri və bütün nüsxələr üçün şifrələməni tez bir zamanda «ləkələyir». Backup - təcrid olunmuş, yoxlanılmış, potensial dəyişməz surətdir.

2) Məlumatların təsnifatı və kritik səviyyələr

Aktivləri siniflərə bölün:
  • Tier-0 (həyati): əməliyyat DB, ödənişlər, balans uçotu, sirləri/PKI.
  • Tier-1 (kritik): xidmətlərin konfiqləri, növbələr, CI/CD artefaktları, konteyner reyestrləri.
  • Tier-2 (vacib): analitika, hesabatlar, ikinci dərəcəli indekslər, log arxivləri.
  • Tier-3 (köməkçi): caches, müvəqqəti məlumatlar (yenidənqurma ilə bərpa edilə bilər).

Hər sinif üçün RPO/RTO, saxlama müddəti, dəyişməzlik tələbləri və yerləri təyin edin.

3) Saxlama strategiyaları: qayda 3-2-1-1-0

3 məlumat surəti (prod + 2 ehtiyat).
2 müxtəlif tipli daşıyıcılar/anbarlar.
1 nüsxə offsite (digər region/bulud).
1 immutable/air-gap (WORM/Object Lock/Tape).
0 bərpa yoxlamalarında səhvlər (müntəzəm testlər).

4) Backup növləri

Full - tam surəti. Yavaş/bahalı, lakin bütün strategiyalar üçün əsas.
Incremental - hər hansı bir son arxa ilə fərq. Həcminə görə optimal.
Differential - son full ilə fərq. Daha sürətli bərpa, daha çox yer.
Snapshot - cildin/diskin (EBS/ZFS/LVM) ani qəlibidir. App-consistent snapshot (quiesce) lazımdır.
PITR (Point-in-Time Recovery) - dəqiq vaxt/LSN geri qaytarılması üçün əsas arxa + jurnallar (WAL/binlog).
Obyekt/fayl/şəkillər - xüsusi məlumat növləri (VM-şəkillər, S3-obyektlər, DB-damplər) altında.

5) Backup uyğunluğu

Crash-consistent: qəfil söndürüldükdən sonra olduğu kimi - stateless/jurnallaşdırılan FS üçün uyğundur.
App-consistent: app «dondurur» əməliyyatları (fsfreeze/pre-post scripts) → zəmanətli bütövlük.
BD tutarlılığı: API yedək alətləri (pgBackRest, XtraBackup), hot-backup rejimləri, nəzarət nöqtələrinin dondurulması.

6) Şifrələmə, açarlar və giriş

Bütün nüsxələr üçün at-rest və in-transit şifrələmə.
KMS/HSM-də açarlar, siyasət rotasiyası (90/180 gün), ayrı-ayrılıqda açarlar.
Vəzifələrin ayrılması: Kim yaradır/çıxarır ≠ kim onları deşifrə edə/oxuya bilər.
Şifrələmə açarlarını hədəf nüsxələrlə eyni etimad domenində saxlamayın.

7) Dəyişməz nüsxələr və ransomware qorunması

Object Lock/WORM (Compliance/Governance) retenşn və Legal Hold ilə.
Air-gap: təcrid olunmuş/oflayn saxlama (bant, oflayn bulud/hesab).
«Təxirə salınmış aktivləşdirmə», MFA-Delete, backup-baketlər üçün ayrıca hesab, ictimai girişin qadağan edilməsi.
Quraşdırmadan əvvəl malware/güzəşt göstəricilərini yoxlayın.

8) Tezlik, cədvəl və retenshn

GFS (Grandfather-Father-Son): gündəlik incrementals, həftəlik full/diff, aylıq full uzun saxlama ilə.
RPO artımların tezliyini və WAL/binlog arxivini (məsələn, hər 5-15 dəqiqədə) diktə edir.
Saxlama: kritik - 35-90 gün ≥ + 12-36 ay üçün aylıq (hüquqi tələblər).
Mövsümi zirvələr - ayrı-ayrı nəzarət nöqtələri (aksiyalardan/buraxılışlardan əvvəl).

9) DR modelləri və ssenariləri

Active-Active: Hər iki bölgə trafikə xidmət edir. Minimum RTO, məlumatların dağılması ciddi münaqişə siyasəti tələb edir.
Active-Passive (isti/isti): isti - yerləşdirilmiş və sinxronlaşdırılmış (RTO dəqiqə), isti - qismən hazır (RTO saat).
Cold: nüsxələri və Terraform/Ansible/şəkilləri saxlayın, sorğu ilə qaldırın (RTO + gün).
DRaaS: digər zonada VM/şəbəkə/ünvanların provayder orkestrasiyası.

10) Feylover orkestri və bərpa prioritetləri

Başlanğıc prioriteti: şəbəkə/VPN/DNS → sirləri/KMS → baza/klasterlər → növbələr/önbellek → proqramlar → perimetri/CDN → analitika.
Avtomatlaşdırma: scriptlər/Runbook-fəaliyyət, Terraform/Ansible/Helm/DR-mühit üçün ArgoCD profilləri.
Məlumat: DB PITR → reindex/replica → warm-cache → sxemlərin uyğunluq bayraqları ilə xidmətlərin başlaması.
DNS/GSLB: əvvəlcədən TTL aşağı, validasiya ilə keçid ssenariləri.

11) Bərpa testləri (backup verification)

Cədvəl üzrə bərpa testləri: N% backup seçimi, qum qutusunda yerləşdirmə, sxemlərin/invariantların avtomatik yoxlanılması.
Tam DR-drill (game-day): regionun/AZ-ın bağlanması, canlı trafikdə (və ya kölgə trafikində) RTO/RPO-nun yoxlanılması.
Bütövlük testləri: hash kataloqları, nəzarət məbləğləri, bütün layları oxumağa cəhd (full + chain).
Dock hesabatı: vaxt, addımlar, anomaliyalar, hədəflərdən boşluğun ölçüsü, düzəlişlər.

12) Əsas texnologiyalar üçün təcrübə

Verilənlər bazası

PostgreSQL: base backup + WAL arxivi (PITR), pgBackRest/Barman alətləri; slots replikasiya, nəzarət 'lsn'.
MySQL/MariaDB: Percona XtraBackup/Enterprise Backup, binlog arxivləşdirilməsi.
MongoDB: 'mongodump' məntiqi nüsxə üçün + böyük dəstlər üçün snapshot; PITR üçün Oplog.
Redis: Kritik üçün RDB/AOF (Redis yalnız önbellək deyilsə), lakin daha tez-tez - mənbədən məntiqi yenidənqurma + qəzalar üçün snapshot.
Kafka/Pulsar: meta məlumatların arxası (ZK/Kraft/BookKeeper), disklərin snapshotları, top/log güzgüsü.

Kubernetes

etcd snapshot + Velero üçün resurslar/cildlər (CSI snapshots).
Secrets Backup/PKI ayrıca (Vault snapshot).
Ayrı görüntü reyestri: artefaktların saxlanması polisi (immutable tags).

VM və fayl sistemləri

ZFS: 'zfs snapshot' + 'zfs send | zstd | send-recv' increments, yoxlama 'scrub'.
LVM/EBS snapshots ilə pre/post scripts (app-consistent).
Obyekt anbarları: + Object Lock versiyaları.

13) Kataloqlaşdırma və backup versiyalarına nəzarət

Kataloq (meta məlumat kataloqu): nə, harada, nə zaman, nə, hash, KMS açarı, sahibi, saxlama müddəti.
Метки/теги: `env=prod|stage`, `system=db|k8s|vm`, `tier=0|1|2`, `retention=35d|1y`.
«Qızıl» nəzarət nöqtələri (Gold) :/DDL/miqyaslı buraxılışlardan əvvəl.

14) Müşahidə və metrika

Tapşırıqların müvəffəqiyyəti:% uğurlu/uğursuz, səbəbləri.
backup/bərpa vaxtı, pəncərə eni.
RPO-faktiki: jurnal arxivləri lag (WAL/binlog) p95.
Bütövlük: sübut edilmiş zəncirlərin payı, hash yoxlama səhvləri.
Qiymət: siniflər üzrə saxlama həcmi, deduplikasiya/sıxılma əmsalı.
DR hazırlığı: təlimlərin tezliyi və nəticəsi (pass/fail).

15) Giriş siyasəti və uyğunluq

Backup saxlama üçün ayrı hesablar/layihələr; NaC prinsipi ilə giriş (prod-hesablardan silinməyə/şifrələməyə imkan vermirik).
Giriş/dəyişiklik qeydləri (audit trail), kütləvi silinmə/dəyişiklik riskləri geri çevrilir.
Standartlara uyğunluq: GDPR (silinmə hüququ vs arxivlər), PCI DSS (şifrələmə, açarlar, seqmentasiya), lokal tənzimləyicilər.

16) Anti-nümunələr

«Replika var - o zaman backup lazım deyil».
No immutable/air-gap: bir səhv/zərərli hər şeyi silir.
Prod ilə eyni hesab/bölgədə backaps.
Heç bir bərpa yoxlamaq (backup «yoxlanılmadan ölü»).
No kataloqlaşdırma və nəzarət versiyası → qəza zamanı xaos.
Bütün mühit üçün ümumi şifrələmə açarları.
DB üçün app-consistent rejimi olmadan snapshots.
Arxa pəncərə zirvələrlə kəsişir (p99 və SLO-ya təsir edir).

17) Giriş çek siyahısı (0-60 gün)

0-10 gün

Sistemlərin/məlumatların inventarlaşdırılması, kritik siniflər.
RPO/RTO hədəflərini siniflərə təyin edin.
Tier-0/1 üçün full + incremental aktiv, WAL/binlog arxivi.
Arxa planları dağıtın: ayrı bir region/hesab + KMS şifrələməsini aktivləşdirin.

11-30 gün

Kritik nüsxələr üçün immutable (Object Lock/WORM) konfiqurasiya.
Kataloqlaşdırma, tags, hesabat daxil edin; uğursuzluqlar və lag jurnalları üçün alertlər.
İlk DR-drill: təcrid olunmuş mühitdə backup ayrı xidmət bərpa.

31-60 gün

Runbook avtomatlaşdırma: Terraform/Ansible/Helm DR profilləri.
Müntəzəm bərpa testləri (həftə/ay) + rüblük tam DR ssenari.
Qiymətləri optimallaşdırın: depolama dövrlərinin deuplikasiyası/sıxılması/ömrü.

18) Yetkinlik metrikası

Bərpa testləri: ≥ üçün Tier-0 1/həftə (seçici), ≥ 1/ay - tam ssenari.
Immutable coverage для Tier-0/1 = 100%.
RPO faktiki p95 hədəf ≤ (məsələn, ≤ 15 dəq).
Hədəf ≤ DR təlimlərində RTO-faktiki (məsələn, ≤ 30 dəq).
Kataloq-komplitlik = 100% (hər bir arxa plan təsvir və yoxlanılmışdır).
Incident-to-restore: bərpa başlamaq üçün aşkar vaxt.

19) Nümunələr (snippetlər)

PostgreSQL - PITR siyasəti (ideya):
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ım dövrü:
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 (manifest ideyaları):
yaml apiVersion: velero. io/v1 kind: Backup metadata: { name: prod-daily }
spec:
includedNamespaces: ["prod-"]
ttl: 720h storageLocation: s3-immutable
S3 Object Lock (həyat dövrü siyasəti nümunəsi):
json
{
"Rules": [{
"ID": "prod-immutable",
"Status": "Enabled",
"NoncurrentVersionExpiration": { "NoncurrentDays": 365 }
}]
}

20) Rabitə və əməliyyat rolları

Incident Commander, Comms Lead, Ops Lead, DB Lead, Security.
Stakholders/tənzimləyicilər/istifadəçilər üçün mesaj şablonları.
Post-mortem hərəkətləri ilə: harada dəqiqələri itirmək, harada avtomatlaşdırma yaxşılaşdırılması.

21) Nəticə

Arxa və DR etibarlı konturu «nüsxə etmək» deyil, bir dövrdür: təsnifat → RPO/RTO hədəfləri → çox səviyyəli və immutable nüsxələr → avtomatlaşdırılmış runbook və → müntəzəm bərpa və təlimlər. 3-2-1-1-0 yapışın, replikasiyanı arxalardan ayırın, açarları şifrələyin və təcrid edin, sənədləşdirin və yoxlayın. Sonra hətta «qara qu quşu» proqnozlaşdırıla bilən fasilə müddəti və minimum məlumat itkisi ilə idarə olunan prosesə ç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!

İ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.