ד "ר אסטרטגיות ו ־ RTO/RPO
1) עקרונות בסיסיים
1. מטרות לפני אמצעים. ראשית, אנחנו מנסחים RTO/RPO ותרחישים קריטיים, ואז בוחרים את הטכנולוגיה.
2. מקטע לפי חשיבות. לא כל השירותים דורשים ”זהב”; הפרד בביקורתיות עסקית.
3. הנתונים הם הליבה של ד "ר עקביות, שכפול, גילוי שחיתות ונקודת שיקום חשובים יותר מחומרה.
4. אוטומציה ואימות. ד "ר חסר משמעות בלי איי-איי-סי, בדיקות רגרסיה וטלמטריה.
5. תורות וראיות. תוכנית ללא ”יום משחק” רגיל היא אשליה של מוכנות.
6. בטיחות וציות. הצפנה, בידוד, גיבויים בלתי ניתנים לשינוי, DPA/תחום שיפוט.
2) תנאים והתכתבויות
RTO - זמן מרגע האירוע עד שהשירות יחזור להיות ”נורמלי”.
RPO הוא ”הגיל” של נקודת המידע הבריאה האחרונה בהתאוששות.
(RELLO (Recovery Level Objective - רמת הפונקציונליות שיש לשחזר (מינימום שירות בר קיימא).
MTD (זמן השבתה נסבל מקסימלי) - הסף שאחריו סובל העסק מנזק בלתי מתקבל על הדעת.
RTA/RPA - נקודת זמן/התאוששות ממנהגים.
תקשורת: RTO (ראשי תיבות של MTD); RPA מפוקפק RPO. הפער בין מטרות לעובדה הוא הנושא שלאחר המוות ושיפור.
3) שיעורי אסטרטגיה ד "ר (רמות מוכנות)
4) תרחישים נגדם אנו מגנים
אובדן אזור/ענן/מרכז נתונים (חשמליות, רשת, ספק).
שגיאת שחיתות/אופרטור (מחיקה, העתקים שבורים, שחיתות לוגית).
תוכנות זדוניות/תוכנות כופר.
פגם בשחרור/הגדרות (הפסקת מסה).
התמוטטות התמכרות (KMS, DNS, סודות, ספק תשלומים).
אירועים משפטיים (חסימה, איסור על ייצוא נתונים מתחום השיפוט).
לכל תרחיש, ציין את RTO/RPO, רמת DR, ספר משחקים, אנשים אחראים.
5) אסטרטגיות מידע (מפתח ל ־ RPO)
5. 1 גיבויים
רישומי העברה מלאים + אינקרמנטליים (עבור DB).
חסימות בלתי ניתנות לשינוי/תולעת ועותקים לא מקוונים (”air-goapped”).
קטלוג גיבויים עם מטא-נתונים וחתימות קריפטו; שחזור מבחן מתוכנן.
5. 2 שכפול
Synchronous (RPO נמוך, latentnost, סיכון להתפשטות קלוקלת).
Asynchronous (השפעה נמוכה על Perf, RPO> 0; לשלב עם ילד השלל).
CDC (ליכוד נתונים שינוי) להזרמת שכפול ושחזור מצב.
5. 3 הגנה מפני שחיתות לוגית
Versioning/” points in time” (PITR) עם חלון של N ימים.
חתימות אינווריאנטיות (מאזנות, סכומים, צ 'קסומים) הן איתור מוקדם של מידע ”שבור”.
ערוצי שכפול ”איטיים” (עיכוב של 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) יישום, מצב, מטמון
שכבות חסרות מעמד ומתחילות מחדש בכל אזור (תמונה/תרשים/מניפסוס בגיט).
מצב (DB/caches/kew): מקור האמת הוא אחד מה-DBs; כאבים ואינדקסים הם ניתנים לגידול יתר.
אידמפוטנטיות וכונן מחדש-משלוח מחדש של אירועים מותר; השתמש בתיבת דואר אלקטרוני, dedup, וגרסאות.
7) רשת ונקודת כניסה
GSLB/DNS-feilover: latency/health-based, TTL קצר לחלון התרסקות.
Anycast/L7 ייפוי כוח: איי-פי אחד, ניתוב רפואי אזורי.
תחומים אזוריים ומדיניות שיפוטית (geo-pinning for PII).
קובץ תעודה/KMS: שרשראות רזרביות, דו-מפתח.
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: תשתית אזור שני = קוד, פריסת ”כפתור אחד”.
מדיניות כקוד: שער ”אין מניפסטים/גיבויים/התראות DR - אין שחרור”.
הוראות שלב אחר שלב ו ”כפתור אדום” זהה לשני האזורים.
סודות: קרדיטים קצרי-ימים, פדרציית OIDC, פשרה/תוכנית החזרה.
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) תרגילים ומבחנים (ימי משחק)
טבלת תרחיש: אובדן בסיס נתונים, מידע ”שבור”, כשל KMS, ירידה באזור, הגבלת יציאה פתאומית.
תדר: רבעון למשימה קריטית; פעם בחצי שנה, בשביל השאר.
תרגיל מדדים: RTA/RPA נגד מטרות, פרופורציה של שלבים אוטומטיים, מספר התערבויות ידניות, שגיאות בספר משחקים.
כאוס-עשן בשחרורים: השפלת התלות לא צריך ”לשבור” נתיבי 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) מדדי יכולת תצפית ד "ר
Replica lag (שנייה), RPO-drift (הבדל בין המטרה לבין RPO בפועל).
שחזור SLI: זמן התאוששות קר/חם על ידי הסביבה.
סיקור:% מהשירותים עם חוברות השמעה/גיבויים/PITR ו ־ N ימים.
ציון מקדחה: פרופורציה של שלבים אוטומטיים, התפלגות RTA, שיעור שגיאה.
חוסר תזוזה:% הגיבויים בתולעת/פעור אוויר.
מדדי אירוע: תור אורך/מחדש מהירות הנעה לאחר הזיוף.
12) עלות וחילופים
CapEx/OpEX: הדוכן החם זול יותר מהפעיל/פעיל אך יקר יותר מהאור הפיילוט.
שכפול בין אזורי/בין עננים עולה כסף; מטמון/דחיסה/אגרגטים מקומיים.
RTO/RPO נגד $: כל ”תשע” של זמינות ושנייה של RPO הם פי כמה יותר יקרים - בתיאום עם העסק.
חלונות ירוקים: שכפול אצווה בשעות זולות/” ירוקות”.
13) בטיחות וציות
הצפנה ”במנוחה” ו ”במעבר”, הפרדה בין תחומי KMS לאזור.
גיבויים בלתי ניתנים לשינוי, הגנה על תוכנות כופר: 3-2-1 (3 עותקים, 2 מדיה, 1 לא מקוון), MFA-מחק.
תחום שיפוט: Geo-Pinning עבור PII, מיקום גיבויים, Ligal Hold על גבי TTL.
גישת זמן: תפקידים זמניים למבצעי ד "ר, יומן ביקורת.
14) אנטי דפוסים
"בואו נכתוב תוכנית מאוחר יותר" - ד "ר בלי תרגילים.
שכפול ללא הגנה מפני שחיתות לוגית - יכפיל את השגיאה באופן מיידי.
אזור אחד של KMS/סודות, אין סכנה אפשרית.
גיבויים ללא שחזור רגיל - "שרדינגר" ד "ר
עסקאות סינכרוניות הקשורות קשר הדוק בין אזורים הן נפילה/נפילה.
אין עדיפות: אותה רמת ד "ר לכל דבר (יקר וחסר תועלת).
15) רשימת אדריכלים
1. מוגדר RTO/RPO/RLO על ידי שירות ותרחיש?
2. נתונים מסווגים: מקור האמת, PITR/window, WORM/immutable?
3. האם נבחר DR (גיבוי/שחזור, פיילוט, חם, A/P, A/A) לשירות?
4. רשת: GSLB/Anycast, תעודות/מפתחות עם מרווח, דגלי קריאה בלבד?
5. אפליקציה: אידמפוטנטיות, תיבת דואר אלקטרוני, עסקאות קיזוז?
6. IAC/GitOps/Policy as Code: לחיצה אחת על גלגול האזור השני?
7. תרגיל: לוח זמנים, KPI RTA/RPA, פעילות שלאחר אימון?
8. ניטור: lag, RPO-drift, לשחזר-SLI, קידוח-ציון, גיבויים בלתי ניתנים לשינוי?
9. אבטחה/ציות: KMS Domains, Jurisdents, Legal Hold?
10. עלות: תקציב יציאה, חלונות ירוקים, רמת קול כלכלית?
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):
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))
סיכום
ד "ר הוא היכולת לקבל החלטות טכניות וארגוניות מהר יותר מהנזק שגדל. זיהוי RTO/RPOS מציאותי, בחירת זמינות מספקת, תשתית אוטומטית ובדיקות, פעילות גופנית באופן קבוע ומדידת RTA/RPAs בפועל. אז התאונה לא תהפוך לאסון, אלא לתקרית מבוקרת עם תוצאה צפויה.