GH GambleHub

Бэкаптар және disaster recovery

Backaps және Disaster Recovery

1) Анықтамалар мен мақсаттар

Бэкап - кейіннен қалпына келтіру үшін деректердің/конфигурациялардың келісілген көшірмесі (кездейсоқ жойылудан, бумалардан, криптолокерлерден, апаттардан).
DR (Disaster Recovery) - инфрақұрылымды/сервистерді ірі авариядан (өрт, аймақты жоғалту, жаппай компромисс) кейін жұмыс істейтін SLO-ға дейін қалпына келтіру процесі.
RPO (Recovery Point Objective) - уақыт бойынша деректердің барынша рұқсат етілген жоғалуы (мысалы, 15 минут).
RTO (Recovery Time Objective) - сервисті қалпына келтірудің мақсатты уақыты (мысалы, 30 минут).

Негізгі принцип: репликация ≠ бэкап. Репликалау барлық көшірмелер бойынша қателер мен шифрлауды жылдам «бұлдырады». Бэкап - оқшауланған, тексерілген, ықтимал өзгермейтін көшірме.

2) Деректерді жіктеу және сындылық деңгейлері

Активтерді мынадай сыныптарға бөліңіз:
  • Tier-0 (өмірлік маңызы бар): транзакциялық ДБ, төлемдер, балансты есепке алу, құпиялар/PKI.
  • Tier-1 (күрделі): сервистер конфигі, кезектер, CI/CD артефактілері, контейнерлер тізілімі.
  • Tier-2 (маңызды): талдау, есептер, қайталама индекстер, лог-мұрағаттар.
  • Tier-3 (көмекші): кэштер, уақытша деректер (қалпына келтіру арқылы қалпына келтіруге болады).

Әрбір сынып үшін RPO/RTO, сақтау мерзімін, өзгермейтіндігі мен орналасу талаптарын анықтаңыз.

3) Сақтау стратегиясы: ереже 3-2-1-1-0

Деректердің 3 көшірмесі (прод + 2 резервтік).
2 түрлі тасығыштар/сақтау орындары.
1 көшірме offsite (басқа өңір/бұлт).
1 immutable/air-gap (WORM/Object Lock/Tape).
Қалпына келтіруді тексерудегі 0 қате (тұрақты тесттер).

4) Бэкап түрлері

Full - толық көшірме. Баяу/қымбат, бірақ барлық стратегиялар үшін база.
Incremental - соңғы бэкаппен айырмашылық. Көлемі бойынша оңтайлы.
Differential - соңғы full айырмашылығы. Тез қалпына келтіру, көп орын.
Snapshot - томның/дискінің дереу бедері (EBS/ZFS/LVM). app-consistent snapshot (quiesce) қажет.
PITR (Point-in-Time Recovery) - нақты уақытқа/LSN қайту үшін базалық бэкап + журналдар (WAL/binlog).
Объектілік/файлдық/бейнелік - деректердің нақты түрлеріне (VM-бейнелер, S3-объектілер, ДҚ-дампалар).

5) Бэкаптарды келісу

Crash-consistent: кенеттен өшірілгеннен кейін - stateless/журнал FS үшін жарамды.
App-consistent: қосымша «мұздатады» операциялары (fsfreeze/pre-post scripts) → кепілдендірілген тұтастық.
БД-консистенттілігі: API бэкап құралы (pgBackRest, XtraBackup), hot-backup режимдері, бақылау нүктелерін мұздату.

6) Шифрлау, кілттер және қол жеткізу

Барлық көшірмелер үшін at-rest және in-transit шифрлау.
KMS/HSM кілттері, саясат бойынша ротация (90/180 күн), қоршаған орта бойынша бөлек кілттер.
Міндеттерді бөлу: бэкаптарды кім жасайды/жояды ≠ оларды кім ашады/оқи алады.
Шифрды ашу кілттерін мақсатты көшірмелермен бірдей сенім доменінде ұстамаңыз.

7) Өзгермейтін көшірмелер және ransomware қорғанысы

Ретеншн және Legal Hold бар Object Lock/WORM (Compliance/Governance).
Air-gap: оқшауланған/офлайн сақтау орны (лента, офлайн-бұлт/аккаунт).
«Кейінге қалдырылған белсенділікпен» жою саясаты, MFA-Delete, backup-бакеттерге арналған жеке аккаунт, көпшілікке қол жеткізуге тыйым салу.
Монтаждау алдында malware/компромисс индикаторларына тексеру.

8) Жиілік, кесте және ретеншн

GFS (Grandfather-Father-Son): күндізгі инкременталдар, апта сайынғы full/diff, ұзақ сақталатын ай сайынғы full.
RPO инкременталдар жиілігін және WAL/binlog мұрағаттауды талап етеді (мысалы, әрбір 5-15 минут сайын).
Сақтау: күрделі - 35-90 күнге ≥ + ай сайын 12-36 айға (заңдық талаптар).
Маусымдық шыңдар - жекелеген бақылау нүктелері (акциялар/релиздер алдында).

9) DR-модельдер мен сценарийлер

Active-Active: екі өңір де трафикке қызмет көрсетеді. Ең аз RTO, деректерді бұзу қақтығыстардың қатаң саясатын талап етеді.
Active-Passive (ыстық/жылы): ыстық - кеңейтілген және үндестірілген (RTO минут), жылы - жартылай дайын (RTO сағат).
Cold: көшірмелерді және Terraform/Ansible/суреттерді сақтаймыз, сұрау бойынша көтереміз (RTO тәулік +).
DRaaS: басқа аймақтағы VM/желілердің/мекенжайлардың провайдерлік оркестрі.

10) Фейловерді оркестрлеу және қалпына келтіру басымдықтары

Іске қосу басымдығы: желі/VPN/DNS → құпиялар/KMS → базалар/кластерлер → кезектер/кеш → қосымшалар → периметр/CDN → аналитика.
Автоматтандыру: скрипттер/Runbook-әрекеттер, Terraform/Ansible/Helm/ArgoCD DR-ортаның профильдері.
Деректер: DB PITR → reindex/replica → warm-кэш → сызбалардың үйлесімділік жалаулары бар сервистерді іске қосу.
DNS/GSLB: алдын ала TTL төмендету, валидациямен ауыстырып қосу сценарийлері.

11) Қалпына келтіру тестілері (backup verification)

Кесте бойынша restore-тесттер: N% бэкаптарды іріктеу, «құмсалғышта» өрістету, схемаларды/инварианттарды автоматты түрде тексеру.
Толық DR-drill (game-day): аймақты/AZ өшіру, RTO/RPO-ны тірі трафикте тексеру (немесе көлеңке трафигі).
Тұтастық тестілері: хэш-каталогтар, бақылау сомалары, барлық қабаттарды оқу әрекеті (full + chain).
Док-есеп: уақыт, қадамдар, ауытқулар, мақсаттардан алшақтық мөлшері, түзетулер.

12) Негізгі технологияларға арналған практика

Дерекқорлар

PostgreSQL: base backup + WAL мұрағаты (PITR), pgBackRest/Barman құралдары; репликалау слоттары, бақылау 'lsn'.
MySQL/MariaDB: Percona XtraBackup/Enterprise Backup, binlog мұрағаттау.
MongoDB: логикалық көшірме үшін 'mongodump' + үлкен жиынтықтар үшін snapshot; PITR үшін Oplog.
Redis: сыни үшін RDB/AOF (егер Redis тек кэш емес), бірақ жиі - авариялар үшін бастапқы + snapshot логикалық қайта құру.
Kafka/Pulsar: метадеректердің бэкаптары (ZK/Kraft/BookKeeper), дискілердің снапшоттары, топиктерді/логтарды зеркалау.

Kubernetes

etcd snapshot + Velero (CSI snapshots).
Құпия/PKI жеке (Vault snapshot).
Бейнелердің жеке тізілімі: артефактілерді сақтау полистері (immutable tags).

ЖМ және файл жүйелері

ZFS: 'zfs snapshot' + 'zfs send | zstd | send-recv' инкременттерімен, 'scrub' тексеруі.
LVM/EBS снапшоттары pre/post скриптімен (app-consistent).
Нысанды сақтау орындары: + Object Lock нұсқалары.

13) Бэкап нұсқаларын каталогтау және бақылау

Каталог (метадеректерді каталогтау): не, қайда, қашан, не істеді, хэштер, KMS кілті, иесі, сақтау мерзімі.
Метки/теги: `env=prod|stage`, `system=db|k8s|vm`, `tier=0|1|2`, `retention=35d|1y`.
«Алтын» бақылау нүктелері (Gold): көші-қон/DDL/масштабты релиздер алдында.

14) Бақылау және метрика

Тапсырмалардың табысты болуы: табысты/істен шыққан%, себептер.
Бэкап/қалпына келтіру уақыты, терезенің ені.
RPO-нақты: журнал мұрағаттарының лаг (WAL/binlog) p95.
Тұтастығы: тексерілген тізбектердің үлесі, хэштерді салыстыру қателері.
Құны: сыныптар бойынша сақтау көлемі, дедупликация/қысылу коэффициенті.
DR-дайындық: оқу-жаттығудың жиілігі мен нәтижесі (pass/fail).

15) Кіру саясаты және комплаенс

Бэкап-қоймаларға арналған бөлек есепке алу жазбалары/жобалары; NaC қағидаты бойынша кіру (сынақ есептеулерінен жоюға/шифрлауға жол бермейміз).
Қол жеткізу/өзгерту логтары (audit trail), жаппай жою/өзгерту алаңдары ретеншн.
Нормаларға сәйкестігі: GDPR (жою құқығы vs мұрағаттар), PCI DSS (шифрлау, кілттер, сегменттеу), жергілікті реттегіштер.

16) Қарсы үлгілер

«Реплика бар, демек бэкап қажет емес».
Жоқ immutable/air-gap: бір қате/зиянкестер бәрін өшіреді.
Прод.
Ешқашан қалпына келтіруді тексермеңіз (бэкап «тексеруге дейін өлді»).
Каталогтау және бақылау нұсқалары жоқ → апат кезінде хаос.
Барлық орталар үшін ортақ шифрлау кілттері.
ДБ үшін app-consistent режимі жоқ снапшоттар.
Бэкап терезесі шыңдармен қиылысады (p99 және SLO әсер етеді).

17) Енгізу чек-парағы (0-60 күн)

0-10 күн

Жүйелерді/деректерді түгендеу, сындылық сыныптары.
RPO/RTO мақсаттарын сыныптар бойынша қою.
Tier-0/1 үшін full + incremental, WAL/binlog архивін қосу.
Бэкаптарды тарату: жеке өңір/аккаунт + KMS шифрлауды қосу.

11-30 күн

Сыни көшірмелерге арналған immutable (Object Lock/WORM) бағдарламасын баптау.
Каталогтауды, тегтерді, есептілікті енгізу; журналдардың құлдырауы мен артта қалуына алаңдар.
Бірінші DR-drill: оқшауланған ортада бэкаптан жеке сервисті қалпына келтіру.

31-60 күн

Runbook: Terraform/Ansible/Helm DR профильдерін автоматтандыру.
Тұрақты restore-тесттер (апта/ай) + тоқсандық full DR сценарийі.
Құнды оңтайландыру: дедупликация/сығу/сақтаудың өмірлік циклдері.

18) Жетілу метрикасы

Restore-тестілер: ≥ 1/апта Tier-0 үшін (іріктеп), ≥ 1/ай - толық сценарий.
Immutable coverage для Tier-0/1 = 100%.
RPO-нақты p95 нысаналы ≤ (мысалы, ≤ 15 мин).
DR-жаттығуларда RTO-нақты мақсатты ≤ (мысалы, ≤ 30 мин).
Каталог-жиынтығы = 100% (әрбір бэкап сипатталған және тексерілген).
Incident-to-restore: табудан қалпына келтіруді іске қосуға дейінгі уақыт.

19) Мысалдар (сниппеттер)

PostgreSQL - PITR саясаты (идея):
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 - инкременталды цикл:
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 (манифесттер идеялары):
yaml apiVersion: velero. io/v1 kind: Backup metadata: { name: prod-daily }
spec:
includedNamespaces: ["prod-"]
ttl: 720h storageLocation: s3-immutable
S3 Object Lock (өмірлік цикл саясатының мысалы):
json
{
"Rules": [{
"ID": "prod-immutable",
"Status": "Enabled",
"NoncurrentVersionExpiration": { "NoncurrentDays": 365 }
}]
}

20) Коммуникация және операциялық рөлдер

Incident Commander, Comms Lead, Ops Lead, DB Lead, Security.
Стейкхолдерлерге/реттеушілерге/пайдаланушыларға арналған хабарлар үлгілері.
Әрекетті Post-mortem: қайда минуттарды жоғалтып, қайда автоматтандыруды жақсарту.

21) Қорытынды

Бэкап пен DR сенімді контуры - бұл «көшірме жасау» емес, цикл: жіктеу → RPO/RTO мақсаттары → көпдеңгейлі және immutable көшірмелері → автоматтандырылған runbook 'және → тұрақты қалпына келтіру және жаттығулар. 3-2-1-1-0 ұстаныңыз, репликаны бэкаптан бөліңіз, кілттерді шифрлаңыз және оқшаулаңыз, құжаттаңыз және тексеріңіз. Сонда тіпті «қара аққу» болжамды бос тұру уақыты мен деректердің ең аз жоғалуы бар басқарылатын процеске айналады.

Contact

Бізбен байланысыңыз

Кез келген сұрақ немесе қолдау қажет болса, бізге жазыңыз.Біз әрдайым көмектесуге дайынбыз!

Интеграцияны бастау

Email — міндетті. Telegram немесе WhatsApp — қосымша.

Сіздің атыңыз міндетті емес
Email міндетті емес
Тақырып міндетті емес
Хабарлама міндетті емес
Telegram міндетті емес
@
Егер Telegram-ды көрсетсеңіз — Email-ге қоса, сол жерге де жауап береміз.
WhatsApp міндетті емес
Пішім: +ел коды және номер (мысалы, +7XXXXXXXXXX).

Батырманы басу арқылы деректерді өңдеуге келісім бересіз.