الحوادث وكتب اللعب SRE
1) ما هو الحادث وكيف يرتبط بـ SLO
الحادثة هي حدث ينتهك وظيفة SLO/الخدمة أو يخلق خطر الانتهاك (يتم حرق الميزانية الخاطئة بسرعة غير مقبولة).
المقاييس الكلاسيكية: MTTD، MTTA، MTTR، MTBF.
يحدد خطأ الميزانية ومعدل الحرق نوافذ الأولوية والتصعيد.
2) مستويات الشدة (SEVs) والمعايير
مشغلات SEV: تجاوز 5xx٪، p95> العتبة، ارتفاع انخفاض الدفع، Kafka-lag> العتبة، NodeNotReady> X min، TLS تنتهي صلاحيتها أقل من 7 أيام، إشارات/تسريب DDoS.
3) الأدوار والمسؤوليات (RACI)
قائد الحادث (IC) - اتخاذ القرار الوحيد، وإدارة تدفق المهام، وتغيير حالة SEV.
Ops Lead (Tech Lead) - استراتيجية تقنية، فرضيات، تنسيق الإصلاحات.
رئيس الاتصالات (Comms) - تحديثات الحالة (داخلية/خارجية)، StatusPage/chat/mail.
Scribe (Chronicler) - جدول زمني، حلول، قطع أثرية، روابط إلى الرسوم البيانية/السجلات.
المهندسون تحت الطلب/الشركات الصغيرة والمتوسطة - تنفيذ إجراءات قواعد اللعبة.
الأمن/الخصوصية - تم تمكينه للأمن أو حوادث PII.
FinOps/Payments - عند التأثير على الفوترة/PSP/التكلفة.
4) دورة حياة الحادث
1. الكشف (تنبيه/تقرير/اصطناعي) → الإنشاء التلقائي لبطاقة الحوادث.
2. الفرز (تم تعيين IC، SEV مخصص، جمع الحد الأدنى للسياق).
3. التثبيت (التخفيف: إيقاف تشغيل الخاصية/التراجع/الحد الأقصى للمعدل/الفشل).
4. التحقيق (فرضيات RCA، جمع الحقائق).
5. استرداد الخدمات (التحقق من صحة SLO، المراقبة).
6. الاتصال (داخل/خارج التقرير النهائي).
7. تشريح الجثة (بدون رسوم، خطة CAPA، المالكين، المواعيد النهائية).
8. الوقاية (الاختبارات/التنبيهات/كتب اللعب/الأعلام، التدريب الإضافي للفريق).
5) الاتصالات و «غرفة الحرب»
قناة الحوادث الموحدة (# inc-sev1-YYYYMMDD-hmm)، فقط الحقائق والأفعال.
أوامر نمط بروتوكول الراديو: "IC: I assession rellack version 1. 24 → ETA 10 دقيقة"
تحديثات الحالة: SEV-1 كل 15 دقيقة، SEV-2 كل 30-60 دقيقة.
صفحة الحالة/الاتصال الخارجي - عبر Comms Lead بواسطة النموذج.
ممنوع: غرف «هادئة» موازية، فرضيات غير مختبرة في قناة مشتركة.
6) التنبيه وحرق SLO (قواعد مثال)
قناة سريعة (1-5 دقائق) وقناة بطيئة (1-2 ساعة) معدل حرق.
الإشارات المتعددة: خطأ في الميزانية، 5xx٪، p95، Kafka-lag، معدل انخفاض الدفع، المواد التركيبية.
ابحث عن السبب الجذري - فقط بعد استقرار الأعراض.
promql
Ошибочная доля 5xx > SLO sum(rate(http_requests_total{status=~"5.."}[5m])) / sum(rate(http_requests_total[5m])) > 0.01
Burn-rate быстрый (пример)
(sum(rate(http_requests_total{status=~"5.."}[1m])) / sum(rate(http_requests_total[1m])))
/ (1 - SLO) > 14.4
7) كتب اللعب مقابل كتب الرانات
كتاب اللعبة - سيناريو الإجراءات حسب نوع الحادث (التفرع والظروف والمخاطر).
Runbook - «خريطة» محددة للخطوات/الأوامر (الفحوصات والإصلاحات والتحقق).
القاعدة: يشير دليل اللعبة إلى عدة كتب تشغيل (التراجع، أعلام الميزات، الفشل، التحجيم، منع حركة المرور، إلخ).
8) نموذج بطاقة الحادث
yaml id: INC-YYYYMMDD-XXXX title: "[SEV-1] Рост 5xx на API /payments"
status: active monitoring resolved sev: 1 reported_at: 2025-11-03T17:42Z ic: <ФИО>
ops_lead: <ФИО>
comms_lead: <ФИО>
scope: regions: [eu-west-1], tenants: [prod], services: [api, payments]
impact: "5xx=12% (обычно <0.5%), конверсия депозитов -20%"
mitigation: "откат на 1.23.4, включен rate-limit 2k rps, фича X выключена"
timeline:
- "17:42: алерт SLO burn-rate быстрый"
- "17:46: назначен IC, открыт war-room"
- "17:52: найден релиз 1.24 как кандидат"
- "18:02: откат завершен, 5xx вернулись к 0.3%"
artifacts:
dashboards: [...]
logs: [...]
traces: [...]
risk: "возможен очередной всплеск при включении фичи X"
next_steps: "канареечный релиз, тесты, постмортем до 2025-11-05"
9) نموذج دليل SRE (ماركداون)
markdown
Плейбук: <название>
Область/симптомы
Список детекторов, сигнатуры в метриках/логах/трассах.
Быстрая стабилизация (Triage & Mitigation)
- [ ] Ограничить трафик/включить WAF-правило/фичефлаг OFF
- [ ] Роллбэк/канареечный релиз/выкатить фикс конфигурации
- [ ] Включить деградационный режим (read-only, кэш-форс)
Диагностика (RCA hints)
- Метрики: … Логи: … Трассы: …
- Частые первопричины/чек-лист гипотез
Риски и коммуникации
- Внутренние/внешние апдейты, SLA-обязательства
Верификация
- [ ] SLO восстановлено (порог/время окна)
- [ ] Нет регресса по смежным сервисам
Последующие действия
- CAPA, задачи в backlog, обновление алертов/дашбордов/плейбука
10) كتب اللعب النموذجية
10. 1 API 5xx Spike
التثبيت: إيقاف تشغيل ficheflag إشكالية ؛ عزز نسخ طبق الأصل من واجهة برمجة التطبيقات تمكين التراجع عن الإصدار.
التشخيص: إطلاق diff، أخطاء في السجلات (أعلى الاستثناءات)، نمو p95، ضغط DB/ذاكرة التخزين المؤقت.
المخاطر: تتابع في المدفوعات/الخلف.
10. 2 БД: تأخر النسخ/عاصفة القفل
تحقيق الاستقرار: تعليق الوظائف/التقارير الثقيلة ؛ يقرأ إعادة التوجيه إلى wal_buffers/replika-sloty زيادة الساحر.
التشخيص: المعاملات الطويلة، وحظر الطلبات، وتغييرات الخطة.
التثبيت: الفهارس/التلميحات، إعادة تطوير الوظائف، الاستفسارات المنقسمة.
10. 3 تأخر المستهلك كافكا
التثبيت: التوزيع المؤقت للمستهلكين ؛ وخفض الإنتاج من الخدمات غير الحيوية ؛ زيادة الأطراف/الحصص.
التشخيص: إعادة التوازن، التصحر البطيء، توقف GC مؤقتًا.
التحقق: تأخر → إلى القيمة المستهدفة، لا انخفاض.
10. 4 K8s NodeNotReady/عاصفة الموارد
التثبيت: الطوق + الصرف ؛ وإعادة توزيع الأحمال ؛ تحقق من أن CNI/التراكب يوقف تشغيل DaemonSets الصاخبة.
التشخيص: ضغط القرص، OOM، الخنق، قطرات الشبكة.
الوقاية: ميزانيات تعطيل الكبسولات، حدود/طلبات الموارد.
10. 5 شهادات TLS/تنتهي صلاحيتها
تحقيق الاستقرار: التحديث القسري للسر/الدخول ؛ تجاوز مؤقت.
التشخيص: سلسلة الثقة، انحراف الساعة.
الوقاية: تنبيهات T-30/T-7/T-1، تلقائية.
10. 6 DDoS/حركة مرور غير طبيعية
التثبيت: قواعد WAF/bot، الحد الأقصى للمعدل/المرشحات الجغرافية، حمل السقيفة في المنبع.
التشخيص: ملامح الهجوم (L3/4/7)، المصادر، المظلات.
الوقاية: على أي حال، التوزيع الذاتي، التخزين المؤقت، اللعب الجميل مع مقدمي الخدمة.
10. 7 دفع PSP-انقطاع
التثبيت: التوجيه الذكي إلى الأساليب البديلة PSP/؛ إعادة المحاولة بالنفث ؛ تدهور «ناعم» في واجهة المستخدم.
التشخيص: فشل الارتفاع بواسطة الرموز، وحالات واجهة برمجة التطبيقات/صفحات حالة PSP.
الاتصالات: تحديثات شفافة للأعمال التجارية والدعم، إحصاءات صحيحة للتدوين الوطني/التحويل.
10. 8 حادث السلامة/تسرب PII
التثبيت: عزل العقدة/الدوران السري، منع التسلل، عقد قانوني.
التشخيص: الجداول الزمنية للوصول، المواضيع/المجالات المتأثرة.
الإشعارات: المنظمون/الشركاء/المستخدمون حسب متطلبات الولاية القضائية.
الوقاية: DLP/تعزيز التجزئة، «أقل امتياز».
11) أتمتة كتب اللعب
أوامر ChatOps: "/ic set sev 1 "، "/نشر rollback api 1. 23. 4 '، '/ميزة من X'.
روبوتات Runbook: خطوات نصف آلية (عقدة التصريف، حركة المرور، ذاكرة التطهير).
خطافات الشفاء الذاتي: كاشف → تخفيف قياسي (حد المعدل، إعادة التشغيل، المقياس).
إنشاء البطاقات/الجداول الزمنية تلقائيًا من التنبيهات والأوامر.
12) جودة دليل اللعبة: قائمة مرجعية
- إزالة الأعراض والكواشف (المقاييس/السجلات/الآثار).
- خطوات الاستقرار السريع مع تقييم المخاطر.
- الأوامر/النصوص محدثة ومسجلة في التدريج.
- التحقق من استرداد المدار الثابت بالنسبة للأرض.
- نماذج الاتصالات ومعايير التحديث الخارجية.
- مرجع ما بعد الوفاة و CAPA بعد الإغلاق.
13) تشريح الجثة (بلا لوم) و CAPA
الهدف: التعلم وليس العثور على الجاني.
المحتوى: ما حدث، ما وجد أنه جيد/سيئ، مساهمة العوامل (تلك العمليات +)، الإجراءات التي يجب منعها.
المدة: SEV-1 - في غضون 48 ساعة ؛ SEV-2-3 أيام عمل.
CAPA: مالكون محددون، التوقيت، الآثار القابلة للقياس (خفض MTTR/زيادة MTTD).
14) الجوانب القانونية وقاعدة الأدلة
عقد قانوني: تجميد السجلات/المسارات/التنبيهات، التخزين مرة واحدة.
سلسلة تخزين القطع الأثرية: الوصول حسب الدور، ومراقبة النزاهة.
الإشعارات التنظيمية: جداول زمنية/نماذج للولايات القضائية (لا سيما مع المدفوعات المتأثرة/مؤشر الاستثمار المستقل).
الخصوصية: تقليل PII والإخفاء أثناء التحليل.
15) مقاييس أداء عملية الحوادث
MTTD/MTTA/MTTR حسب الربع والنطاق.
دقة SEV (التقليل/المبالغة).
حصة من حوادث التخفيف التلقائي.
تغطية كتاب اللعبة لأفضل سيناريوهات N (> 90٪).
أداء CAPA في الوقت المحدد.
16) التنفيذ حسب المرحلة
1. الأسبوع 1: مصفوفة SEV، الأدوار تحت الطلب، نموذج البطاقة العامة، لوائح غرفة الحرب.
2. الأسبوع 2: كتب اللعب لأفضل أعراض 5 (5xx، DB lag، Kafka-lag، NodeNotReady، TLS).
3. الأسبوع 3: ChatOps/rots، بطاقات الإنشاء التلقائي، قوالب الاتصال/StatusPage.
4. الأسبوع 4 +: كتب تشغيل السلامة، انقطاعات PSP، تعليق قانوني، تدريبات منتظمة/ألعاب فوضى
17) أمثلة على دفاتر (شظايا) «سريعة»
واجهة برمجة التطبيقات التراجعية (K8s)
bash kubectl rollout undo deploy/api -n prod kubectl rollout status deploy/api -n prod --timeout=5m
Верификация:
kubectl -n prod top pods -l app=api
صرف العقدة
bash kubectl cordon $NODE && kubectl drain $NODE --ignore-daemonsets --delete-emptydir-data --timeout=10m
علم الميزة OFF (مثال)
bash curl -X POST "$FF_URL/toggle" -H "Authorization: Bearer $TOKEN" -d '{"feature":"X","enabled":false}'
18) الأسئلة الشائعة المصغرة
متى ترفع SEV-1 ؟
عندما تعاني وظيفة SLO/العمل الرئيسية (المدفوعات وتسجيل الدخول واللعبة)، فإن معدل الحرق «يأكل» الميزانية لساعات قادمة.
ما هو الأهم - RCA أم التعافي ؟
دائما الاستقرار، ثم RCA. والوقت اللازم لتحقيق الاستقرار هو المؤشر الرئيسي.
هل أحتاج إلى أتمتة كل شيء ؟
التشغيل الآلي للخطوات المتكررة والآمنة ؛ نادر/محفوف بالمخاطر - عبر تأكيد شبه تلقائي و IC.
النتيجة
تعتمد عملية الحوادث القوية على ثلاث ركائز: الأدوار الواضحة وقواعد SEV، وكتب اللعب/كتب الرانات عالية الجودة مع الأتمتة، وثقافة ما بعد الوفاة دون لوم. أنماط الالتقاط، والتدريب عند الطلب، وقياس ميزانية MTTR/الخاطئة، وتحسين أجهزة الكشف وكتب اللعب باستمرار - وهذا يقلل بشكل مباشر من مخاطر وتكلفة التوقف.