0Pricing
AWS Solutions Architect · درس

التوافر العالي في مقابل تحمّل الأعطال: التعريفات والمفاضلات

وضّح الفرق بين التوافر العالي (تقليل مدة التوقف) وتحمل الأعطال (عدم التوقف بفضل التكرار)، وتعرّف إلى كيفية زيادة التكلفة مع كل مستوى

التوافر العالي في مقابل تحمّل الأعطال: التعريفات والمفاضلات درس مجاني في AWS Solutions Architect على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في AWS Solutions Architect، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة AWS Solutions Architect 4 دروس في المجموع.

نظرة عامة على التوافر العالي مقابل تحمل الأعطال

يُعد كل من التوافر العالي (HA) وتحمل الأعطال (FT) هدفين مختلفين للموثوقية، وكثيرًا ما يخلط المهندسون المعماريون بينهما. يعني التوافر العالي أن النظام يواجه أقل قدر ممكن من التوقف؛ إذ يمكنه تحمل الأعطال، لكنه قد يتعرض لانقطاعات قصيرة أثناء الاسترداد. أما تحمل الأعطال فيعني استمرار النظام في العمل من دون أي انقطاع حتى عند تعطل المكونات، وذلك بفضل وجود مسارات زائدة بالكامل تتولى العمل فورًا.

تحديد نسب التوافر

يُقاس التوافر كنسبة مئوية من وقت التشغيل خلال سنة. يعني توافر بنسبة 99.9% (ثلاث تسعات) نحو 8.7 ساعات من التوقف سنويًا، بينما لا تسمح نسبة 99.99% (أربع تسعات) إلا بـ 52.6 دقيقة. أما نسبة 99.999% (خمس تسعات) فلا تسمح إلا بـ 5.26 دقائق. وتتطلب كل تسعة إضافية عادةً مزيدًا من التكرار والأتمتة والتكلفة. وغالبًا ما يطلب اختبار SAA-C03 منكم تحديد البنية التي تحقق هدف توافر معين.

# Availability calculations
# 99.9%  → 8.76 hours/year downtime
# 99.99% → 52.6 minutes/year downtime
# 99.999% → 5.26 minutes/year downtime

# Formula: downtime = (1 - availability) * 8760 hours

كيف يبدو التوافر العالي

تتحمل البنية عالية التوافر تعطل مكون واحد من خلال اكتشاف العطل تلقائيًا والتحول إلى بديل سليم خلال ثوانٍ أو دقائق. ومن أمثلتها RDS Multi-AZ (التحويل التلقائي إلى نسخة احتياطية في AZ مختلفة)، وAuto Scaling Groups التي تستبدل المثيلات المنهية، وElastic Load Balancers التي توجه الطلبات بعيدًا عن الأهداف غير السليمة. تحدث إعاقة قصيرة، لكن النظام يتعافى من دون تدخل يدوي.

# RDS Multi-AZ failover: ~60-120 seconds downtime
# ASG replacement: ~1-3 minutes to launch new instance
# ELB unhealthy target removal: within health check interval

كيف يبدو تحمل الأعطال

تحتوي البنية المتسامحة مع الأعطال على تكرار نشط؛ إذ تخدم مكونات متطابقة متعددة الطلبات في الوقت نفسه، بحيث تمتص المكونات الأخرى الحمل فورًا عند تعطل أحدها، من دون أي توقف. ومن أمثلتها active-active ELB with multiple EC2 instances، وDynamoDB Global Tables التي تخدم عمليات القراءة والكتابة في مناطق متعددة في الوقت نفسه، وAurora with multiple read replicas. ويتطلب تحمل الأعطال تشغيل موارد إضافية في جميع الأوقات.

مفاضلات التكلفة بين التوافر العالي وتحمل الأعطال

يُعد تحمل الأعطال أكثر تكلفة بكثير من التوافر العالي، لأنه يتطلب سعة زائدة مجهزة بالكامل في جميع الأوقات. فمثيل RDS Multi-AZ عالي التوافر يضاعف تكلفة قاعدة البيانات مقابل نسخة احتياطية لا تُفعّل إلا عند حدوث عطل. وقد يكلف نشر Aurora متعدد المناطق بنمط active-active ومتسامح مع الأعطال أربعة أضعاف التكلفة، لكنه يلغي جميع فترات التوقف أثناء أعطال المناطق. يجب على المهندسين المعماريين موازنة تكلفة التكرار مع تكلفة التوقف على الأعمال.

# Cost tiers (approximate multipliers):
# Single AZ, no redundancy: 1x cost
# Multi-AZ (HA):             2x cost
# Multi-Region active-passive: 2-3x cost
# Multi-Region active-active (FT): 3-4x cost

هدف وقت الاسترداد والتوافر العالي

هدف وقت الاسترداد (RTO) هو أقصى مدة مقبولة لعدم توفر النظام. وتستهدف البنى عالية التوافر قيمة RTO منخفضة، عادةً بضع دقائق، من خلال التحويل التلقائي. أما البنى المتسامحة مع الأعطال فتستهدف قيمة RTO تقترب من الصفر. وعند التصميم للتوافر العالي، يجب اختيار الخدمات والإعدادات التي تضمن الاسترداد ضمن ميزانية RTO الخاصة بكم. فعلى سبيل المثال، يوفر RDS Multi-AZ قيمة RTO تقارب 60-120 ثانية، وهي مناسبة لكثير من متطلبات التوافر العالي.

نقاط الفشل الوحيدة (SPOF)

تُعد نقطة الفشل الوحيدة (SPOF) أي مكون يؤدي تعطله إلى تعطل النظام بأكمله. ومن أمثلة نقاط الفشل الوحيدة الشائعة مثيل EC2 واحد من دون ASG، وقاعدة بيانات RDS في AZ واحدة، وبوابة NAT واحدة، أو منطقة توافر واحدة. ويُعد التخلص من نقاط الفشل الوحيدة الخطوة الأولى نحو التوافر العالي وتحمل الأعطال. ويختبر امتحان SAA-C03 مرارًا قدرتكم على تحديد نقاط الفشل الوحيدة والتخلص منها في مخططات البنى المعطاة.

# Common SPOFs to eliminate:
# - Single EC2 instance  → ASG + ALB
# - Single-AZ RDS        → Multi-AZ RDS
# - Single NAT Gateway   → NAT Gateway per AZ
# - Single AZ subnets    → Subnets in 2+ AZs
# - Hardcoded IP in app  → DNS + health checks

الخدمات ذات الحالة مقابل عديمة الحالة

يكون تحقيق التوافر العالي أو تحمل الأعطال أبسط بكثير بالنسبة إلى الخدمات عديمة الحالة (مثل خوادم الويب أو دوال Lambda)، لأن أي مثيل يمكنه معالجة أي طلب. أما الخدمات ذات الحالة (قواعد البيانات وذاكرات التخزين المؤقت وأنظمة الملفات) فهي أصعب؛ إذ يجب مزامنة الحالة عبر النسخ المتماثلة، ومعالجة تأخر النسخ، وضمان الاتساق أثناء التحويل. وقد صُممت خدمات AWS مثل EFS (نظام الملفات المشترك)، وElastiCache with replication groups، وAurora (التخزين المشترك) لتسهيل التوافر العالي للخدمات ذات الحالة.

أنماط تصميم التوافر العالي على AWS

تشمل أنماط التوافر العالي الشائعة على AWS ما يلي: 1) موازنة التحميل متعددة المناطق — توزيع مثيلات EC2 عبر مناطق التوافر خلف ALB. 2) النسخ المتماثلة للقراءة — تفريغ حركة القراءة وترقيتها أثناء التعافي من الكوارث. 3) استخدام S3 للأصول عديمة الحالة — يتمتع S3 بطبيعته بتوافر عالٍ مع متانة تبلغ 11 تسعة. 4) Global Accelerator — عناوين IP ثابتة من نوع Anycast توجه الطلبات إلى نقاط النهاية السليمة عبر المناطق. يوازن كل نمط بين التكلفة ومستوى توافر محدد.

# ALB cross-zone load balancing example
aws elbv2 modify-load-balancer-attributes \
  --load-balancer-arn <ALB-ARN> \
  --attributes Key=load_balancing.cross_zone.enabled,Value=true

أنماط تصميم تحمل الأعطال على AWS

تتطلب الأنماط المتسامحة مع الأعطال تكرارًا نشطًا في كل مكان. وتشمل الأنماط الرئيسية لتحمل الأعطال ما يلي: DynamoDB متسامح مع الأعطال بطبيعته؛ إذ يكرر البيانات عبر ثلاث مناطق توافر من دون الحاجة إلى تحويل. ويحتوي S3 على تحمل أعطال مضمّن. ويسمح Aurora Multi-Master (المعروف الآن باسم Aurora Serverless v2 multi-writer) بالكتابة إلى مناطق توافر متعددة في الوقت نفسه. ويخزن Kinesis البيانات عبر مناطق توافر متعددة افتراضيًا. ويُعد اختيار الخدمات المُدارة التي تتضمن تحمل الأعطال مضمّنًا المسار الأكثر فعالية من حيث التكلفة نحو بنى لا تتوقف.

اختبار افتراضات التوافر العالي وتحمل الأعطال

لا يكون التصميم للتوافر العالي أو تحمل الأعطال جيدًا إلا بقدر جودة اختباراتكم. توصي AWS باستخدام AWS Fault Injection Simulator (FIS) لإجراء تجارب مضبوطة تنهي المثيلات، أو تحد من واجهات API، أو تحقن أعطالًا في الشبكة. وينبغي التحقق من اكتمال التحويل ضمن RTO، ومن عدم فقدان بيانات يتجاوز RPO، ومن عمل التنبيهات على النحو الصحيح. تكشف أيام الاختبار الدورية وتمارين هندسة الفوضى فجوات افتراضات المرونة لديكم قبل أن تكشفها حوادث الإنتاج.

# AWS FIS experiment to terminate EC2 instances
aws fis create-experiment-template \
  --description 'Terminate 30% of ASG instances' \
  --targets '{"instanceTargets":{"resourceType":"aws:ec2:instance","selectionMode":"PERCENT(30)"}}' \
  --actions '{"terminateInstances":{"actionId":"aws:ec2:terminate-instances","targets":{"Instances":"instanceTargets"}}}'

اختبار سريع

اختبروا فهمكم لمفاهيم AWS Solutions Architect (SAA-C03) التي تناولها هذا الدرس.

مراجعة الدرس

تعلمتم في هذا الدرس أن التوافر العالي يقلل وقت التوقف من خلال الاسترداد التلقائي (RTO بالدقائق)، وأن تحمل الأعطال يلغي وقت التوقف من خلال التكرار النشط (RTO يساوي صفرًا)، وأن التكلفة تزداد بدرجة كبيرة مع كل مستوى من مستويات المرونة. ويُعد التخلص من نقاط الفشل الوحيدة أساس كلا النهجين. وسنستكشف بعد ذلك أنماط المناطق المتعددة للخدمات ذات الحالة.

الأسئلة الشائعة

هل درس «التوافر العالي في مقابل تحمّل الأعطال: التعريفات والمفاضلات» مجاني؟

نعم — نص درس «التوافر العالي في مقابل تحمّل الأعطال: التعريفات والمفاضلات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة AWS Solutions Architect، انتقل إلى CoddyKit PRO. تتضمن دورة AWS Solutions Architect 4 دروس في المجموع.

ماذا ستتعلم في «التوافر العالي في مقابل تحمّل الأعطال: التعريفات والمفاضلات»؟

وضّح الفرق بين التوافر العالي (تقليل مدة التوقف) وتحمل الأعطال (عدم التوقف بفضل التكرار)، وتعرّف إلى كيفية زيادة التكلفة مع كل مستوى تتمرن على AWS Solutions Architect مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ AWS Solutions Architect؟

لا تُشترط خبرة سابقة. AWS Solutions Architect على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «التوافر العالي في مقابل تحمّل الأعطال: التعريفات والمفاضلات»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس AWS Solutions Architect هذا؟

نعم. كل درس في AWS Solutions Architect يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. التوافر العالي في مقابل تحمّل الأعطال: التعريفات والمفاضلات
  2. أنماط Multi-AZ للخدمات ذات الحالة
  3. النشط-النشط والنشط-الخامل متعدد المناطق
  4. فحوصات الصحة وقواطع الدائرة ومنطق إعادة المحاولة
← العودة إلى AWS Solutions Architect