استراتيجيات DR و RTO/RPO
1) المبادئ الأساسية
1. الأهداف قبل الوسائل. أولاً، نقوم بصياغة RTO/RPO والسيناريوهات الحرجة، ثم نختار التكنولوجيا.
2. التجزئة حسب الأهمية. ولا تحتاج جميع الخدمات إلى «ذهب» ؛ قسمة على أهمية الأعمال التجارية.
3. البيانات هي جوهر DR. الاتساق والتكرار والكشف عن الفساد ونقطة الاسترداد أكثر أهمية من الأجهزة.
4. التشغيل الآلي والتحقق. لا معنى لـ DR بدون IaC واختبارات تراجع الاسترداد والقياس عن بعد.
5. التعاليم والأدلة. الخطة بدون «يوم لعبة» منتظم هي وهم الاستعداد.
6. السلامة والامتثال. التشفير، العزل، WORM/النسخ الاحتياطية الثابتة، DPA/الولايات القضائية.
2) المصطلحات والمراسلات
RTO - الوقت من لحظة الحدث حتى استعادة الخدمة «الطبيعية».
RPO هو «عمر» آخر نقطة بيانات صحية عند التعافي.
RLO (هدف مستوى الاسترداد) - مستوى الوظيفة التي يجب استعادتها (الحد الأدنى من الخدمة القابلة للاستمرار).
MTD (أقصى وقت توقف مقبول) - العتبة التي يعاني بعدها العمل من ضرر غير مقبول.
RTA/RPA (الفعلي) - نقطة الوقت/الاسترداد الفعلية من الممارسات.
البلاغ: RTO ≤ MTD ؛ RPA ≤ RPO. الفجوة بين الأهداف والحقيقة هي موضوع تشريح الجثة والتحسين.
3) فصول استراتيجية DR (مستويات الاستعداد)
4) السيناريوهات التي ندافع ضدها
فقدان المنطقة/السحابة/مركز البيانات (الكهرباء، الشبكة، المزود).
فساد البيانات/خطأ المشغل (حذف، نسخ مكسورة، فساد منطقي).
البرامج الضارة/برامج الفدية.
عيب إطلاق/تكوين (انقطاع جماعي).
انهيار الإدمان (KMS، DNS، الأسرار، مزود الدفع).
الأحداث القانونية (حظر تصدير البيانات من الولاية القضائية).
لكل سيناريو، حدد RTO/RPO، مستوى DR، كتاب اللعب، الأشخاص المسؤولين.
5) استراتيجيات البيانات (مفتاح RPO)
5. 1 نسخ احتياطية
سجلات المعاملات الكاملة + الإضافية + (لبنك التنمية).
مخزونات ثابتة/WORM ونسخ غير متصلة بالإنترنت («air-gapped»).
فهرس النسخ الاحتياطية مع البيانات الوصفية وتوقيعات التشفير ؛ استعادة الاختبار المجدولة.
5. 2 تكرار
متزامن (منخفض RPO، ↑latentnost، خطر انتشار الغنائم).
غير متزامن (تأثير منخفض على perf، RPO> 0 ؛ مع الطفل المفسد).
CDC (Change Data Capture) لتكرار البث وإعادة بناء الدولة.
5. 3 الحماية من الفساد المنطقي
الإصدار/» النقاط الزمنية» (PITR) مع نافذة ≥ N days.
التوقيعات الثابتة (الأرصدة والمبالغ والصدفات) هي اكتشاف مبكر للبيانات «المكسورة».
قنوات النسخ «البطيئة» (تأخير 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): مصدر الحقيقة هو أحد مجالس التنمية ؛ المخابئ والفهارس مفرطة في التوليد.
) ب (الاستخفاف وإعادة القيادة - يجوز إعادة تنفيذ الأحداث ؛ استخدم outbox/inbox، dedup، والإصدارات.
7) الشبكة ونقطة الدخول
GSLB/DNS-feilover: زمن الوصول/القائم على الصحة، TTL قصير لتحطم النافذة.
وكيل Anycast/L7: IP واحد، التوجيه الصحي الإقليمي.
المجالات الإقليمية وسياسات الولاية القضائية (التثبيت الجغرافي لمؤسسة 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: البنية التحتية للمنطقة الثانية = الرمز، نشر «زر واحد».
Policy as Code: gate «no DR manifests/backups/alerts - no release».
دفاتر التشغيل: تعليمات خطوة بخطوة و «زر أحمر» مطابق لكلا المنطقتين.
الأسرار: ائتمانات قصيرة الأجل، اتحاد 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) مقاييس DR للرصد
Replica lag (sec)، RPO-drift (الفرق بين الهدف و RPO الفعلي).
استعادة SLI: وقت التعافي البارد/الدافئ حسب البيئة.
التغطية:٪ من الخدمات مع كتب اللعب/النسخ الاحتياطية/أيام PITR ≥ N.
درجة الحفر: نسبة الخطوات التلقائية، توزيع RTA، معدل الخطأ.
الثبات:٪ من النسخ الاحتياطية في WORM/hair-gapped.
مقاييس الحدث: طول قائمة الانتظار/سرعة إعادة القيادة بعد المزيف.
12) التكاليف والمقايضات
CapEx/OpEx: الحامل الدافئ أرخص من Active/Active ولكنه أغلى من Pilot Light.
Ext: تكلف النسخ المتكرر بين الأقاليم/السحابة أموالاً ؛ المخبأ/الضغط/الركام المحلي.
RTO/RPO مقابل $: كل «تسعة» من التوافر وثانية من RPO أغلى بعدة مرات - التنسيق مع الشركة.
النوافذ الخضراء: تكرار الدفعة - في ساعات رخيصة/» خضراء«.
13) السلامة والامتثال
التشفير «في الراحة» و «في العبور»، مجالات KMS منفصلة حسب المنطقة.
نسخ احتياطية غير قابلة للتغيير، حماية برامج الفدية: «3-2-1» (3 نسخ، 2 وسائط، 1 غير متصل بالإنترنت)، حذف MFA.
السلطات القضائية: التثبيت الجغرافي لـ PII، توطين النسخ الاحتياطية، Legal Hold على قمة TTL.
الوصول إلى الوقت: أدوار مؤقتة لعمليات DR، سجل التدقيق.
14) الأنماط المضادة
«دعونا نكتب خطة لاحقًا» - DR بدون تمارين.
التكرار دون حماية من الفساد المنطقي - سيضاعف الخطأ على الفور.
منطقة KMS/أسرار واحدة - لا يمكن الخداع.
نسخ احتياطية بدون ترميمات منتظمة - «شريدنجر» د.
المعاملات المتزامنة الوثيقة الصلة بين المناطق هي زمن الانتقال/السقوط التعاقبي.
لا توجد أولويات: نفس مستوى DR لكل شيء (مكلف وعديم الفائدة).
15) قائمة مرجعية للمهندس المعماري
1. تحديد RTO/RPO/RLO حسب الخدمة والسيناريو ؟
2. البيانات السرية: مصدر الحقيقة، PITR/النافذة، WORM/غير قابل للتغيير ؟
3. هل يتم اختيار DR (النسخ الاحتياطي/الاستعادة، الطيار، الدفء، A/P، A/A) لكل خدمة ؟
4. الشبكة: GSLB/Anycast، الشهادات/المفاتيح بهامش، أعلام القراءة فقط ؟
5. التطبيق: الخصوصية، outbox/inbox، تعويض المعاملات ؟
6. IaC/GitOps/Policy as Code: نقرة واحدة على طرح المنطقة الثانية ؟
7. التدريب: الجدول الزمني، KPI RTA/RPA، أنشطة ما بعد التدريب ؟
8. المراقبة: تأخر، RPO-drift، استعادة SLI، درجة الحفر، نسخ احتياطية غير قابلة للتغيير ؟
9. الأمن/الامتثال: مجالات KMS، الولايات القضائية، عقد قانوني ؟
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 تبديل حركة المرور (GSLB pseudo-API):
bash gslb set-weight api. example. com region-a 0 gslb set-weight api. example. com region-b 100
16. 4 تحقق من الثوابت بعد الخداع (cseudocode):
python assert total_balance(all_accounts) == snapshot_total assert no_duplicates(events_since(t_failover))
استنتاج
DR هو القدرة على اتخاذ القرارات الفنية والتنظيمية بشكل أسرع من نمو الضرر. تحديد المنظمات الإقليمية للتجارة/المنظمات الإقليمية الواقعية، واختيار التوافر الكافي، وأتمتة البنية التحتية والفحوصات، وممارسة الرياضة بانتظام، وقياس الترتيبات التجارية الإقليمية/الترتيبات الإقليمية الفعلية. ثم لن يتحول الحادث إلى كارثة، بل إلى حادث محكوم بنتيجة متوقعة.