DR ռազմավարություն և RTO/RPO
1) Հիմնական սկզբունքները
1. Նպատակները նախկինում։ Սկզբում մենք ձևակերպում ենք RTO/RPO և քննադատական սցենարներ, ապա ընտրում ենք տեխնոլոգիան։
2. Սեգմենտացիան կարևոր է։ Ոչ բոլոր ծառայությունները պահանջում են «ոսկի»։ բիզնես քննադատությամբ կիսեք։
3. Տվյալները III-ի միջուկն են։ Կոնսիստենցիան, կրկնօրինակումը, պատնեշի հայտնաբերումը և վերականգնման կետը ավելի կարևոր են, քան «երկաթը»։
4. Ավտոմատիզացիան և ստուգումը։ DR-ն անիմաստ է առանց IaC-ի, վերականգնման և հեռուստաչափության ռելիզային թեստերը։
5. Ուսուցումներ և ապացույցներ։ Առանց ռուսական «game day» պլանը պատրաստակամության պատրանք է։
6. Անվտանգությունը և ընկերակցությունները։ Կոդավորումը, մեկուսացումը, WORM/immutable-bakaps, DPA/իրավասություն։
2) Տերմիններ և տերմիններ
RTO-ն ժամանակ է իրադարձության պահից մինչև «նորմալ» տերմինալի վերականգնումը։
RPO-ը վերջին առողջ տվյալների կետի «տարիքն» է, երբ վերականգնվում է։
RLO (Recovery Level Objective) ֆունկցիոնալի մակարդակն է, որը պարտավոր է վերականգնել (նվազագույն կենսունակ ծառայություն)։
MTD (Maximum Tolerable Downtime) շեմն է, որից հետո բիզնեսը անընդունելի վնաս է կրում։
RTA/RPA (Active) - իրական ժամանակը/վերականգնման կետը պրակտիկայից։
Կապը ՝ RTO 35MTD; RPA ≤ RPO. Նպատակների և փաստերի միջև անջրպետը հետմորտեմի և բարելավման առարկան է։
3) DR-ռազմավարության դասարանները (պատրաստման մակարդակները)
4) Սցենարներ, որոնց դեմ պաշտպանվում ենք
Տարածաշրջանի/ամպերի/COD (էլեկտրիկ, ցանց, պրովայդեր) կորցնելը։
Տվյալների կոռուպցիան/օպերատորի սխալը (հեռացում, «բիթային» կրկնօրինակներ, տրամաբանական պատկեր)։
Վնասակար PO/ծածկագրող (ransomics)։
Կոդավորման/կազմաձևի դեֆեկտը (զանգվածային windage)։
Կախվածության փլուզումը (KFC, RF, գաղտնիքները, հիբրիդային պրովայդերը)։
Իրավաբանական իրադարձությունները (արգելափակումը, տվյալների հեռացման արգելքը իրավասությունից)։
Յուրաքանչյուր սցենարի համար նշեք RTO/RPO, DR մակարդակը, պլեյբուկը, ռուսական։
5) Տվյալների ռազմավարությունը (բանալին RPO)
5. 1 Բեքապներ
Ամբողջական + ռուսական + գործարքների ամսագրեր (BD)։
Իմպուտաբային/WORM-105 և օֆլինի պատճենները («air-gapped»)։
Բեքապների կատալոգը մեթաններով և կրիպտոոդներով։ փորձարկման վերականգնումը ըստ ժամանակացույցի։
5. 2 Վերափոխում
Սինխրոն (ցածր RPO, ռուսական լատենտ, պոռնիկի տարածման ռիսկը)։
Ասինխրոն (ցածր ազդեցություն փերֆի վրա, RPO> 0; համատեղել դետեկտորի հետ)։
CDC (Change You Capture) հոսքի և վերակառուցման համար։
5. 3 Պաշտպանություն տրամաբանական պոռթկումից
Տարբերակումը/» ժամանակի կետերը» (PITR) N օրվա պատուհանով։
Invariants ազդանշանները (հավասարակշռություններ, գումարներ, chexumma) «բիթային» տվյալների վաղ մանկությունն է։
«Դանդաղ» վերարտադրման ալիքները (wwww.ay 15-60 րոպե) որպես բուֆեր ակնթարթային պոռնիկի դեմ։
Վերականգնման կետերի ընտրության սկեթը
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) Հավելվածը, վիճակը, քեշը
Սթեյթլի շերտը մեծացնում և վերարտադրում ենք ցանկացած տարածքում (պատկերը/գծապատկեր/մանիֆեստ Git)։
Վիճակը (BD/kashi/kyu), ճշմարտության աղբյուրը BD-ից մեկն է։ քաշերն ու ինդեքսները վերագրանցվում են։
Idempotention և re-drive - իրադարձությունների կրկնվող առաքումը թույլատրելի է։ օգտագործեք www.box/inbox, dedup և տարբերակները։
7) Ցանցը և մուտքի կետը
GSLB/RF ֆեյլերը 'latency/health-based, կարճ TTL պատահականության պատուհանում։
Anycase/L7-2019 'միասնական IP, տարածաշրջանների առողջության միկրոակտիվացում։
Տարածաշրջանային ֆորումները և միգրացիաների քաղաքականությունը (geo-pinning PII-ի համար)։
Հավաստագրերի ֆեյլերը/KFC 'պահեստային շղթաներ, dox-key։
Կեղծ ֆեյլովեր
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) Վիրահատական մոդել և ավտոմատիզացիա
IaC/GitOps: Երկրորդ տարածաշրջանի ենթակառուցվածքը = կոդը, «միանվագ»։
Policy as Code: Խաղացողը «Ոչ DR մանիֆեստներ/bakas/alerts - ոչ մի մրցաշար չկա»։
Runbooks: կոպիտ հրահանգներ և «կարմիր կոճակ», որոնք նույնական են երկու տարածաշրջաններում։
Գաղտնիքները 'կարճ քրեդներ, OIDC ֆեդեգրաֆիա, փոխզիջման/արձագանքի պլան։
Gate (գաղափարը)
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) Ուսուցումներ և թեստեր (Game Days)
Ստանիսլավ 'BD կորուստ, «բիթանոց» տվյալները, KHL-ի հրաժարվելը, տարածաշրջանի անկումը, հանկարծակի egress-սահմանը։
Հաճախականությունը 'եռամսյակային քննադատական առաքելության համար։ վեց ամիսը մեկ 'մյուսների համար։
Ուսուցման մետրերը ՝ RTA/RPA vs նպատակներ, ավտոմատ քայլերի մասնաբաժինը, ձեռքի միջամտությունների քանակը, պլեյբուկի սխալները։
Chaos-smoke-ը թողարկումներում 'կախվածության քայքայումը չպետք է «կոտրի» DR-ճանապարհները։
Մինի-ուսման օրինակ
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) Պլեյբուկի (կանոնական ձևանմուշներ)
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 դիտարկման մետրերը
Replica lag (վայրկյան), RPO-drift (տարբերությունը նպատակային և իրական RPO-ի միջև)։
Restore SLI 'սառը/տաք վերականգնման ժամանակը շրջապատում։
Coverage: Ծառայությունների տոկոսը պլեյբուսներով/baps/PITR 24N օրվա ընթացքում։
Systill score 'ավտոմատ քայլերի մասը, RTA բաշխումը, սխալների հաճախությունը։
Իմպուտաբելությունը 'WORM/air-gapped-ի բեքապների տոկոսը։
Իրադարձական մետրերը 'հերթերի երկարությունը/արագությունը re-drive-ից հետո։
12) Արժեքը և փոխզիջումները
CapEx/OpEx: Տաք պատը ավելի էժան է, քան Active/Action-ը, բայց ավելի թանկ է, քան Pilot Light-ը։
Egress: միջտարածաշրջանային/միջմայրցամաքային կրկնօրինակումը արժե գումար։ Քաշ/ագրեսիա/տեղական ագրեգատներ։
RTO/RPO vs դոլար ՝ յուրաքանչյուր «ինը» հասանելիություն և վայրկյան RPO-ն կարժենա շատ ավելի թանկ, ներդաշնակ բիզնեսին։
Կանաչ պատուհանները 'batch-վերարտադրողական' էժան/« կանաչ »ժամացույցի։
13) Անվտանգությունն ու կոմպլենսը
«Հանգիստ» և «տրանզիտում» կոդավորումը, որը բաժանվել է KHL-ենթախմբերը տարածաշրջաններով։
Immutable-bakaps, պաշտպանություն ransomics: «3-2-1» (3 օրինակներ, 2 կրիչ, 1 օֆլինը), MFA-intete։
Իրավասություններ ՝ PII-ի համար geo-pinning, bakas, Legal Hold TTL-ի վերևում։
Հասանելի են ժամանակի համար 'ժամանակային դերեր DR վիրահատությունների համար, խմբագրության ամսագիրը։
14) Anti-patterna
«Գրենք պլանը ավելի ուշ» - DR առանց ուսմունքների։
Առանց տրամաբանական պատնեշից պաշտպանվելու, միգրանտորեն վերարտադրում է սխալը։
Մեկ տարածք KFC/գաղտնիքները անհնար է։
Bakaps առանց վերականգնումների '«Շրեդինգերի» DR։
Տարածաշրջանի միջև սերտորեն կապված սինխրոն գործարքները կասկադային լատենտ/նվազում են։
Առաջնահերթություն չկա 'նույն DR մակարդակը ամեն ինչի համար (թանկ և անօգուտ)։
15) Ճարտարապետի չեկի թերթիկը
1. Որոշե՞ լ են RTO/RPO/RLO ծառայությունները և սցենարները։
2. Դասակարգված տվյալները 'ճշմարտության աղբյուրը, PITR/պատուհանը, WORM/immutable։
3. Ընտրվել է DR (Backup/Restore, Pilot, Warm, A/P, A/A) per ծառայություն։
4. Ցանցը ՝ GSLB/Anycript, հավաստագրեր/բանալիներ պահեստով, դրոշները «read-only»։
5. Հավելված 'idempotention, www.box/inbox, որոնք փոխհատուցում են գործարքները։
6. IaC/GitOps/Policy as Code: մեկ կլիկ երկրորդ տարածաշրջանի դասավորելու համար։
7. Ուսուցումներ ՝ 108, KPI RTA/RPA, post-ուսուցման գործողություններ։
8. Տե՛ ս ՝ lag, RPO-drift, restore-SLI, www.ill-score, իմունաբելային բեքապներ։
9. Անվտանգությունը/համադրումը 'KMS-ուլտրաձայնները, իրավասությունները, Legal Hold-ը։
10. Արժեքը 'egress բյուջե, կանաչ պատուհաններ, տնտեսապես հիմնավորված մակարդակ։
16) Մինի բաղադրատոմսեր և սկետչիներ
16. 1 PITR-ը Postgres-ի համար (գաղափար)
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 Պաշտպանություն տրամաբանական վնասից (ձերբակալված կրկնօրինակը)
yaml replication:
mode: async apply_delay: "30m" # window to roll back on corruption
16. 3 Փոխանցումը (կեղծ-API GSLB)
bash gslb set-weight api. example. com region-a 0 gslb set-weight api. example. com region-b 100
16. 4 Ինվարանտների ստուգումը ֆեյլովերից հետո (կեղծ)
python assert total_balance(all_accounts) == snapshot_total assert no_duplicates(events_since(t_failover))
Եզրակացություն
DR-ը տեխնիկական և կազմակերպական լուծումներ կայացնելու ունակությունն է ավելի արագ, քան վնասը։ Ռուսական իրական RTO/RPO, ընտրեք բավարար պատրաստվածության մակարդակը, ավտոմատիզացրեք ենթակառուցվածքները և ստուգումները, պարբերաբար մարզեք և չափեք իրական RTA/RPA։ Այդ ժամանակ պատահարը վերածվելու է ոչ թե աղետի, այլ կանխատեսելի պատահարի։