0Pricing
Cloud & IT Cert Prep · درس

فحوصات السلامة والتدهور التدريجي

اضبط فحوصات سلامة موازن التحميل وTraffic Manager لاكتشاف الأعطال بسرعة، وصمّم أنماط قاطع الدائرة والتدهور التدريجي لطبقة التطبيق

فحوصات السلامة والتدهور التدريجي درس مجاني في Cloud & IT Cert Prep على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cloud & IT Cert Prep، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cloud & IT Cert Prep 4 دروس في المجموع.

أهمية فحوصات السلامة

فحوصات السلامة هي الآلية التي تكتشف من خلالها موازنات التحميل ومديرو حركة المرور ما إذا كان مثيل الواجهة الخلفية قادرًا على معالجة الطلبات. ومن دون فحوصات السلامة، قد يواصل موازن التحميل إرسال حركة المرور إلى خادم متعطل أو غير مستجيب، مما يتسبب في أخطاء يواجهها المستخدمون. وتتيح فحوصات السلامة المهيأة بشكل صحيح إعادة توجيه حركة المرور تلقائيًا بعيدًا عن المثيلات غير السليمة خلال ثوانٍ من وقوع العطل.

فحوصات سلامة Azure Load Balancer

يدعم Azure Load Balancer نوعين من فحوصات السلامة:

  • فحص TCP — يتحقق مما إذا كانت الواجهة الخلفية تستطيع قبول اتصال TCP على منفذ محدد. وهو بسيط، لكنه لا يتحقق من منطق التطبيق.
  • فحص HTTP/HTTPS — يرسل طلب GET إلى مسار محدد ويتوقع استجابة 200 OK. وهو أكثر دقة لأنه يختبر نقطة نهاية التطبيق مباشرةً.

تُصنَّف الواجهة الخلفية على أنها غير سليمة إذا فشل الفحص لعدد قابل للتهيئة من المحاولات المتتالية.

# Create an HTTP health probe for an Azure Load Balancer:
az network lb probe create \
  --resource-group myRG \
  --lb-name myLoadBalancer \
  --name httpHealthProbe \
  --protocol Http \
  --port 80 \
  --path /health \
  --interval 15 \
  --threshold 2

تصميم نقطة نهاية موثوقة للسلامة

لا تكتفي نقطة نهاية السلامة المصممة جيدًا (/health) بإرجاع 200 OK — بل تتحقق من إمكانية الوصول إلى التبعيات المهمة للتطبيق. وقد يختبر فحص السلامة الشامل الاتصال بقاعدة البيانات وذاكرة التخزين المؤقت وأي واجهات API لاحقة. وإذا كانت أي تبعية غير متاحة، تُرجع نقطة النهاية رمز حالة 5xx، مما يُعلم موازن التحميل بإزالة هذا المثيل من دورة التوزيع.

# Example health endpoint response (JSON):
# GET /health
# {
#   'status': 'healthy',
#   'checks': {
#     'database': 'ok',
#     'cache': 'ok',
#     'externalApi': 'ok'
#   }
# }
# If database check fails, return HTTP 503 instead of 200

فحوصات سلامة Traffic Manager

يستخدم Azure Traffic Manager فحوصات السلامة أيضًا، لكن على المستوى الإقليمي. إذ يرسل طلبات GET دورية عبر HTTP أو HTTPS إلى عنوان URL لنقطة النهاية المهيأة في كل منطقة جغرافية. وإذا فشلت نقطة نهاية في الاستجابة ضمن نافذة المهلة لعدد محدد من الفواصل الزمنية المتتالية، يضع Traffic Manager علامة على نقطة النهاية باعتبارها متدهورة، ويتوقف عن توجيه استعلامات DNS إليها، ويعيد توجيه المستخدمين إلى منطقة سليمة.

# Configure Traffic Manager health probe settings:
az network traffic-manager profile update \
  --resource-group myRG \
  --name myTMProfile \
  --monitor-protocol HTTPS \
  --monitor-port 443 \
  --monitor-path /health \
  --monitor-interval 30 \
  --monitor-timeout 10 \
  --monitor-tolerated-failures 3

فحوصات سلامة Application Gateway

يوفر Azure Application Gateway إمكانات أكثر تطورًا لفحوصات السلامة مقارنةً بـ Load Balancer القياسي. فهو يدعم الفحوصات المخصصة التي تحدد رأس المضيف، ونطاق رمز الحالة المتوقع (مثل 200-399)، وسلسلة مطابقة في النص. كما يدعم Application Gateway التوجيه حسب المسار، بحيث يمكن أن تحتوي مجموعات الواجهات الخلفية المختلفة على إعدادات مختلفة لفحوصات السلامة لمسارات URL المختلفة.

# Create a custom probe for Application Gateway:
az network application-gateway probe create \
  --gateway-name myAppGateway \
  --resource-group myRG \
  --name customProbe \
  --protocol Http \
  --host-name-from-http-settings true \
  --path /api/health \
  --interval 20 \
  --timeout 10 \
  --threshold 3

ما المقصود بالتدهور السلس؟

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

نمط قاطع الدائرة

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

# Circuit breaker states:
# CLOSED: normal operation, calls pass through
# OPEN:   service failing, calls immediately return error/fallback
# HALF-OPEN: cool-down expired, try one request:
#           success -> CLOSED
#           failure -> OPEN (reset timer)

# Libraries: Polly (.NET), Resilience4j (Java), polly-js (JS)

إعادة المحاولة مع التراجع الأسي

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

# Exponential backoff with jitter (pseudocode):
# attempt 1: wait 1s  + random(0-500ms)
# attempt 2: wait 2s  + random(0-500ms)
# attempt 3: wait 4s  + random(0-500ms)
# attempt 4: wait 8s  + random(0-500ms)
# max retries: 4
# max wait: 30s (cap)
# After max retries: return error to caller

نمط الحواجز

يعزل نمط الحواجز أجزاء التطبيق المختلفة في مجموعات موارد، بحيث لا يؤدي عطل في منطقة واحدة إلى استهلاك جميع الموارد وتعطيل النظام بأكمله. وقد سُمّي بهذا الاسم نسبةً إلى الحواجز الموجودة في السفن، التي تمنع غمر حجرة واحدة بالماء من إغراق السفينة بأكملها. في Azure، قد يعني ذلك استخدام مجموعات مؤشرات ترابط منفصلة أو خطط App Service منفصلة للخدمات المختلفة لاحتواء الأعطال.

الاستجابات البديلة والبيانات المخزنة مؤقتًا

من الأساليب الشائعة للتدهور السلس تقديم بيانات مخزنة مؤقتًا أو قديمة عندما يكون مصدر البيانات المباشر غير متاح. فعلى سبيل المثال، قد تعرض صفحة كتالوج المنتجات الأسعار المخزنة مؤقتًا من الأمس في Azure Cache for Redis بدلًا من عرض خطأ إذا تعذر الوصول إلى قاعدة البيانات مؤقتًا. ويواجه المستخدمون إزعاجًا بسيطًا (أسعارًا قديمة قليلًا) بدلًا من تعطل كامل.

المراقبة والتنبيه عند التدهور

يجب أن يكون التدهور السلس مرئيًا وقابلًا للقياس. استخدم Application Insights لتتبع معدل فتح قواطع الدائرة، والاستجابات البديلة، ومحاولات إعادة المحاولة بوصفها مقاييس مخصصة. وأعدّ تنبيهات عندما تتجاوز هذه المقاييس الحدود المحددة، حتى يتلقى فريق المناوبة إشعارًا بأن التطبيق يعمل في حالة متدهورة، حتى إذا بدت تجربة المستخدم مقبولة.

تحقق سريع

اختبر مدى فهمك لمفاهيم Microsoft Azure Fundamentals (AZ-900) الواردة في هذا الدرس.

مراجعة الدرس

تعلمت في هذا الدرس أن فحوصات الصحة تتيح لموازِنات التحميل اكتشاف الواجهات الخلفية المتعطلة وإعادة توجيه حركة المرور تلقائيًا؛ وأن التدهور السلس يحافظ على الوظائف الجزئية للتطبيقات عند تعطل التبعيات؛ وأن أنماطًا مثل قاطع الدائرة وإعادة المحاولة مع التراجع والحواجز تطبق المرونة على مستوى التطبيق. بعد ذلك، سنستكشف مفاهيم التعافي من الكوارث، مثل تحديد RTO وRPO وطبقات التعافي.

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

هل درس «فحوصات السلامة والتدهور التدريجي» مجاني؟

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

ماذا ستتعلم في «فحوصات السلامة والتدهور التدريجي»؟

اضبط فحوصات سلامة موازن التحميل وTraffic Manager لاكتشاف الأعطال بسرعة، وصمّم أنماط قاطع الدائرة والتدهور التدريجي لطبقة التطبيق تتمرن على Cloud & IT Cert Prep مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Cloud & IT Cert Prep؟

لا تُشترط خبرة سابقة. Cloud & IT Cert Prep على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «فحوصات السلامة والتدهور التدريجي»؟

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

هل يمكنني كتابة وتشغيل أكواد في درس Cloud & IT Cert Prep هذا؟

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

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

  1. اتفاقيات مستوى الخدمة في Azure والاتفاقيات المركبة
  2. مجموعات التوافر ومناطق التوافر
  3. بنية نشطة-نشطة متعددة المناطق
  4. فحوصات السلامة والتدهور التدريجي
← العودة إلى Cloud & IT Cert Prep