Logo GH

نظم الشفاء الذاتي والاسترداد الذاتي

1) ما هو الشفاء التلقائي ولماذا هناك حاجة إليه

الشفاء التلقائي هو تثبيت تلقائي للخدمة في حالة الفشل دون تدخل بشري، مع أولوية استعادة الأعراض (SLO) على البحث عن السبب الجذري (RCA).
الأهداف: خفض MTTR، وحماية الميزانيات المعيبة، وتقليل تكاليف التشغيل والخطأ البشري.

الخصائص الرئيسية:
  • الكشف (المقاييس/السجلات/المواد التركيبية/الأحداث).
  • الحل (القواعد/السياسات/الاستدلال في القانون النموذجي).
  • العمل (إعادة التشغيل/المقياس/التخلص/ficheflag/rollback/feilover).
  • التحقق (SLO green في النافذة المحددة).
  • عد إلى التدهور.

2) خريطة آلية الشفاء التلقائي

على مستوى التطبيق: الخصوصية، المهلة، إعادة المحاولة + التراجع + النفاخ، قاطع الدائرة، الحاجز، تدهور المخبأ (رشيق).
Kubernetes: liality/readiness/startPolicy و PDB و HPA/VPA و Descheduler و Pod/Node auto-remediation.
الشبكة/الحافة: حدود الأسعار، وحصص المستأجر الواحد، واستنزاف الاتصال، وفشل فتح/إغلاق، وقواعد WAF.
قوائم الانتظار/البث: المستهلك - المقياس الذاتي، الضغط الخلفي القائم على التأخير، DLQ/ساحة انتظار السيارات.
التخزين/DB: نسخة طبق الأصل من feilover، الإصلاح التلقائي (إعادة البناء)، autovacuum المخنق، إعادة توازن حمام السباحة.
CI/CD: حسابات الكناري، التسليم التدريجي، التراجع التلقائي.
تنسيق الحدث: وحدات التحكم/المشغلون، محركات سير العمل (Argo، Airflow) مع سياسات إعادة التجربة.
Watchdog/Heartbeats: Dead Man's Switch للوظائف الخلفية.

3) مبادئ تصميم التعافي الذاتي الآمن

1. مدفوعة بـ SLO: يتم تشغيل جميع الإجراءات التلقائية بسبب الأعراض المرتبطة بتجربة المستخدم.
2. كناري أولاً: أولاً محليًا/محليًا، ثم عالميًا.
3. حواجز حماية الباب أحادية الاتجاه: التراجع عن طريق الموقت/الحالة، «المفتاح المزدوج» للعمليات المحفوفة بالمخاطر.
4. الخصوصية: كل إجراء (إعادة التشغيل، الهجرة، التناوب) آمن للتكرار.
5. قابلية الملاحظة حسب التصميم: علامات العمل، الارتباط مع الآثار، من/ماذا/متى/لماذا سجل.
6. أقل امتياز: الأتمتة لها الحد الأدنى من الحقوق (RBAC، أسرار محددة النطاق).
7. إدراك التكلفة: قيود على الإجراءات «باهظة الثمن» (القياس والخروج واللقطات).

4) الكشف: إشارات لبدء الشفاء التلقائي

Метрики: 5xx%, p95/p99 latency, Kafka lag, DB lock/lag, node pressure.
المواد التركيبية: سقوط وقت التشغيل/تراجع المسار (تسجيل الدخول/الإيداع).
سجلات: توقيعات خطأ جديدة، معدل استثناء.
События K8s: CrashLoopBackOff، NodeNotReady، FailedSettling.
نبضات القلب: صمت الوظيفة> N دقائق.

مثال على محفزات PromQL:
promql
API error regression sum (rate (http_requests_total{status=~"5"..}[5m]) )/sum (rate (http_requests_total[5m]))> 0. 01

Kafka: lag> threshold max by (topic, group) (kafka_consumergroup_lag)> 10000

K8s: pod в CrashLoopBackOff increase(kube_pod_container_status_restarts_total[5m]) > 3

5) إجراءات الاستعادة التلقائية (كتاب اللعب)

5. 1 تطبيق/شبكة

قاطع الدائرة يعمل مع شذوذ الظهر → سريع الفشل + استجابات ذاكرة التخزين المؤقت/الطعنة.
Retry + backoff + jitter مع حدود وإلغاء الازدواجية.
الحد الأقصى للمعدل/التحميل: تحت الحمل الزائد - تحديد أولويات المسارات الحرجة.

5. 2 كوبرنيت

أعد تشغيل الحاوية (الحيوية) وأزل الموقد على عقدة غير صحية.
HPA/VPA: مقياس تلقائي حسب RPS/CPU/latency/lag ؛ VPA - فقط التوصيات أو خارج ساعات العمل تنطبق.
العلاج التلقائي للعقد: طوق + تصريف للمشاكل المستمرة (القشور).
التقارب/انتشار الطوبولوجيا للحماية من ملفات AZ.

5. 3 قوائم انتظار/بث

по تأخر المستهلكين على نطاق تلقائي ؛ التخفيض المؤقت لإنتاجية المنتجين.
DLQ للرسائل السامة ؛ إعادة التشغيل من المحفوظات.

5. 4 DB/Cache

فشل في النسخ المتماثلة مع التحقق من الحالة/التكوين.
إعادة تعيين تجمع الاتصال لتسريبات الاتصال.
ترويج الاستعداد الساخن مع إعادة تشكيل العملاء تلقائيًا.

5. 5 CI/CD

التراجع التلقائي مع نمو 5xx/p95 على حركة مرور الكناري.
أعلام الميزات: إيقاف تلقائي للميزة الإشكالية بدلاً من التراجع العالمي.

6) التسليم التدريجي والتراجع التلقائي

مثال (Argo Rollouts Canary Strategy)

yaml strategy:
canary:
canaryService: api-canary stableService: api-stable steps:
- setWeight: 10
- pause: {duration: 5m}
- analysis:
templates:
- templateName: api-slo-check
- setWeight: 25
- pause: {duration: 10m}
- analysis:
templates:
- templateName: api-slo-check

إذا أعاد تحليل النموذج «فشل» (تم تجاوز الأخطاء/زمن الانتقال)، يتم إعادة الطرح تلقائيًا.

7) ميزة الأعلام كأداة للتعافي الذاتي

Kill-switch for problemative features (server-side).
الاستهداف: ميزة التعطيل في القطاع/المنطقة.
القاعدة التلقائية: إذا كان 5xx٪ من الميزة> X في Y دقائق معطلة والتذكرة متراكمة.
التحقق: ميزة لوحة SLO مع الميزانيات.

8) الحمل الزائد: كيف لا «تعامل» نفسك حتى الموت

الحمولة: رفض/خفض QoS للطلبات غير الحرجة (التعريفات، التقارير الثقيلة).
Token-buket/leaky-buket and tenant/key contas.
التزامن التكيفي (على مستوى الوكيل/SDK) - تقليل التزامن عند زيادة زمن الكمون.
Bulkhead: عزل الخيوط/أحواض الاتصال.

9) الاتساق والخصوصية

المفاتيح الخفية (request_id) → الحماية من التكرار.
المعاملات المخيفة (المدفوعات، عمليات الشطب) - عمليات من مرحلتين، تأكيد/تعويض (ملحمة).
Outbox/Inbox и بالضبط مرة واحدة через التخزين الخفي.

10) السلامة والامتثال

الحد الأدنى من RBAC للأجهزة التلقائية (الموارد اللازمة فقط).
مراجعة جميع الإجراءات: من/متى/ما هي الإشارة/أي أثر.
التجاوز اليدوي و «الزر الأحمر» لتعطيل الإجراءات التلقائية.
عقد قانوني على القطع الأثرية للحوادث وسجلات الأتمتة.
الأسرار - من خلال مدير سري، تناوب المفتاح أثناء الإجراءات الذاتية.

11) FinOps: سعر «الشفاء الذاتي»

قيود على أقصى مقياس ذاتي حتى لا تنكسر مع دفقة.
مقاييس التكلفة لكل إجراء: تكلفة إعادة تشغيل 1، 1 نسخة طبق الأصل إضافية، وخروج 1 تيرابايت.
المجاميع: التكلفة لكل دقيقة SLO موفرة، التكلفة لكل حادث مخفف.
سياسات «الوضع الليلي»: تكون عدوانية الأتمتة أقل إذا كانت حركة المرور التجارية منخفضة.

12) إمكانية رصد التشغيل الآلي

ملصقات على الرسوم البيانية: «علاج _ إجراء =» تراجع «،» مصدر = «أرغو»، «سبب =» سلو _ حرق «».
لوحة القيادة المنفصلة: تكرار الإجراءات التلقائية، النجاح، متوسط وقت الاسترداد، معدل التراجع.
التأثير → ارتباط SLO لتقييم الفوائد.

13) التكوينات والأمثلة

13. 1 K8s: التحقيقات وسياسات إعادة التشغيل

yaml livenessProbe:
httpGet: { path: /healthz, port: 8080 }
initialDelaySeconds: 20 periodSeconds: 10 timeoutSeconds: 2 readinessProbe:
httpGet: { path: /readyz, port: 8080 }
periodSeconds: 5 failureThreshold: 3 startupProbe:
httpGet: { path: /startupz, port: 8080 }
failureThreshold: 30 periodSeconds: 5

13. 2 تنبيه → حركة تلقائية (زائفة)

yaml rule: api_5xx_rate_high action:
type: feature_flag target: "payments. new_flow"
set: false guardrails:
cooldown: 10m max_actions_per_hour: 2 rollback_if:
- condition: "5xx% not reduced within 5m"

13. 3 Kafka lag autoscale (HPA بواسطة مقياس مخصص)

yaml metrics:
- type: Pods pods:
metric:
name: kafka_consumer_lag target:
type: AverageValue averageValue: "500"

14) اختبار الشفاء التلقائي (الفوضى وأيام اللعبة)

حقن الفوضى: توقف الشبكة مؤقتًا، وقتل القرون/العقد، وتحلل قاعدة البيانات/ذاكرة التخزين المؤقت.
أيام اللعبة: تدريب السيناريو مع الحد الزمني ومقاييس MTTR.
حركة المرور في الظل: تأجير حركة المرور إلى الكناري دون التأثير على المستخدمين.
أوضاع التشغيل الآلي الجافة (نكتب، لكن لا نفعل ذلك).

15) معايير «الاستعداد للاسترداد الذاتي»

  • تم تعريف SLOs، والمقاييس مستقرة، وهناك مواد تركيبية.
  • تعكس العينات/healthz و/readyz و/startupz الحالة بشكل صحيح.
  • الهوية والحماية المزدوجة (لا سيما في المدفوعات).
  • تتوفر أعلام الميزات وشاشات عرض الكناري.
  • حواجز الحماية: التهدئة، إجراءات الحد من المعدل، المفتاح المزدوج للعمليات عالية الخطورة.
  • لوحة القيادة الآلية وسجلات مراجعة الحسابات.
  • خطة التجاوز اليدوي ودفاتر التشغيل في حالة التشويش.

16) التنفيذ حسب المرحلة (4 تكرارات)

1. القاعدة: حدد SLO، أضف المجسات، بما في ذلك إعادة التشغيل/التنبيهات الرئيسية.
2. الإجراءات المحلية: phicheflag-kill-switch، المستهلكون المتخلفون، جزر الكناري التراجع التلقائي.
3. مستوى إنفرا: إصلاح العقدة، قاعدة بيانات/فشل ذاكرة التخزين المؤقت، تظليل الحمل.
4. التحسين: حواجز الحماية، حدود FinOps، اختبارات الفوضى، استدلال ML للكشف.

17) الأخطاء المتكررة والأنماط المضادة

علاج سبب الأعراض → MTTR طويل.
إجراءات عالمية بدون مرحلة الكناري.
لا تراجع أو لا معايير التراجع.
فحوصات صحية كاذبة (200 للإدمان المكسور).
مقياس "Bloat' التلقائي بدون حدود/عتبات التكلفة.
عاصفة إعادة الدرج العمياء دون تراجع وتفريغ.

18) الأسئلة الشائعة المصغرة

هل تحتاج إلى ML للتسجيل التلقائي ؟

لا ، ليس كذلك البدء بقواعد بشأن قواعد/مقاييس وحواجز الحماية ؛ ML مفيد للحالات الشاذة والتنبؤات.

لماذا لا تساعد إعادة التشغيل دائمًا ؟

إذا كان الجذر معتمدًا (قاعدة بيانات، مخبأ، شبكة)، فإن إعادة التشغيل ستؤدي فقط إلى تفاقم العاصفة. بحاجة إلى كسر/تسريح/خداع.

كيف تثبت الفوائد ؟

قارن MTTR واستهلاك الخطأ قبل/بعد الميزانية. أضف التكلفة لكل مقياس تخفيف.

المجموع

الشفاء التلقائي هو نظام وليس مجموعة من «عكازات إعادة التشغيل»: اكتشاف SLO → إجراءات النقاط الآمنة → التحقق → التراجع عند تفاقمها. من خلال الجمع بين المجسات وحسابات الكناري والأعلام المميزة والتحجيم والتظليل وحواجز الحماية الصارمة، فإنك تقلل MTTR وتحافظ على الميزانية خاطئة وتحافظ على التكلفة تحت السيطرة.

Contact

اتصل بنا

تواصل معنا لأي أسئلة أو دعم.نحن دائمًا جاهزون لمساعدتكم!

Telegram
@Gamble_GC
بدء التكامل

البريد الإلكتروني — إلزامي. تيليغرام أو واتساب — اختياري.

اسمك اختياري
البريد الإلكتروني اختياري
الموضوع اختياري
الرسالة اختياري
Telegram اختياري
@
إذا ذكرت تيليغرام — سنرد عليك هناك أيضًا بالإضافة إلى البريد الإلكتروني.
WhatsApp اختياري
الصيغة: رمز الدولة + الرقم (مثال: +971XXXXXXXXX).

بالنقر على الزر، فإنك توافق على معالجة بياناتك.