دليل التشغيل ودليل الاستجابة
دليل التشغيل ودليل الاستجابة
الساعة 3:07 صباحًا. يوقظك هاتفك. يُخبرك PagerDuty أن خدمة الدفع متوقفة. عقلك يعمل بطاقة 30%. آخر شيء تريده هو شاشة فارغة مع توقع أن تستعيد أسابيعًا من المعرفة المؤسسية من الذاكرة وأنت تحت ضغط شديد. وجود دليل التشغيل (Runbook) هو تحديدًا ما يمنعك من ذلك — ليس كوثيقة بيروقراطية، بل كأداة نجاة تُتيح للمهندس الذي لم يستيقظ بعد حل حادثة بأولوية P1 دون تفاقمها.
في شركات كـ Google وNetflix وStripe، تُعامَل أدلة التشغيل كأصول إنتاج من الدرجة الأولى، تُحفظ في نظام التحكم بالإصدارات جنبًا إلى جنب مع كود الخدمة، وتُراجَع في طلبات السحب (Pull Requests)، وتُختبر في تمارين محاكاة الحوادث. الفارق بين فريق يُجيد إدارة الحوادث وآخر يتخبط فيها يتمحور دائمًا حول جودة أدلة التشغيل.
ما الذي يجعل دليل التشغيل قابلًا للاستخدام في الساعة 3 صباحًا
تفشل معظم أدلة التشغيل ليس لأنها غير دقيقة، بل لأنها كُتبت للمؤلف وليس للقارئ. المؤلف يعرف السياق بالفعل. القارئ في الثالثة صباحًا لا يعرفه. دليل التشغيل القابل للاستخدام يتمتع بهذه الخصائص:
- محفّز واحد محدد. يرتبط الدليل مباشرةً بالتنبيه الذي يستدعيه. يجب ألا يضطر المهندس إلى تخمين أي دليل ينطبق. يحتوي تنبيه Alertmanager أو حادثة PagerDuty على الرابط مباشرةً.
- تأكيد الأعراض أولًا. قبل اتخاذ أي إجراء، يتأكد المهندس من أنه يواجه المشكلة الصحيحة. يبدأ كل دليل بخطوات التحقق: "يجب أن ترى X في لوحة التحكم. إذا لم تره، توقف وتصعّد."
- خطوات مرقمة وذرية. ليست فقرات أو نثرًا. خطوات مرقمة، كل منها صغيرة بما يكفي لتنفيذها والتحقق منها بشكل مستقل. المهندسون تحت الضغط يتخطون الخطوات ويفقدون مكانهم. القوائم المرقمة أكثر موثوقية.
- أوامر قابلة للنسخ واللصق. يجب أن يكون كل أمر في الدليل قابلًا للتشغيل دون تعديل، أو مع متغير محدد بوضوح مثل
${SERVICE_NAME}أو${CLUSTER}يملؤه المهندس. الغموض في الساعة 3 صباحًا خطير. - الناتج المتوقع بعد كل أمر. "يجب أن ترى:
PONG. إذا رأيت خطأ في الاتصال، انتقل إلى الخطوة 7." يحتاج المهندسون إلى تأكيد نجاح الخطوة قبل المتابعة. - شجرات قرار صريحة. "إذا حلّت الخطوة 4 التنبيه خلال 5 دقائق، انتقل إلى قسم التحقق. إذا لم تُحلّه، تصعّد إلى مناوب قاعدة البيانات." يجب أن تكون القرارات صريحة وليست متروكة للتقدير الشخصي عندما يكون التقدير مُثقلًا.
- مخرج آمن. يجب أن يُخبرك كل دليل متى تتوقف عن اتباعه وتطلب المساعدة. الالتزام الأعمى بدليل في حالة فشل غير متوقعة قد يُفاقم الأمور.
تشريح دليل التشغيل الإنتاجي
إليك البنية التي تستخدمها فرق SRE الناضجة. هذا قالب حقيقي، وليس مجرد اقتراح — استخدمه حرفيًا وعدّل المحتوى لكل خدمة:
annotations.runbook_url على كل قاعدة تنبيه. في PagerDuty، أرفق الدليل كـ Response Play. لا ينبغي للمهندسين البحث عن الدليل — يجب أن يظهر في إشعار المناوبة نفسه.دليل التشغيل كـ كود: التحكم بالإصدارات والاختبار
أدلة التشغيل المحفوظة في Confluence أو Google Docs تتقادم. يُصلح المهندسون النظام وينسون تحديث الوثيقة، ويتبع المناوب التالي تعليمات قديمة. عامل أدلة التشغيل كـ كود:
- احفظها في مستودع الخدمة تحت
docs/runbooks/أو في مستودعrunbooksمخصص. - اشترط تحديث دليل التشغيل في قائمة مراجعة PR لأي تغيير يؤثر على عتبة التنبيه أو مسار المعالجة.
- أضف حقل "آخر اختبار". خلال تمارين محاكاة الحوادث أو الفوضى المهندسية، نفّذ الدليل فعليًا وحدّث هذا التاريخ.
- استخدم CI للتحقق من الروابط — الروابط المكسورة للوحات التحكم وجهات التصعيد شائعة وخطيرة خلال الحوادث.
أدلة الاستجابة: تنسيق الاستجابة
حيث يُعالج دليل التشغيل حالة فشل واحدة، يُعالج دليل الاستجابة فئة من الحوادث. "دليل انقطاع قاعدة البيانات" لا يُخبرك كيف تُصلح خطأ قاعدة بيانات محدد — بل يُخبرك كيف تُدير الحادثة: من يتولى قيادة الحادث، وأي أدلة التشغيل تستدعي بالتوازي، وكيف تتواصل مع أصحاب المصلحة، ومتى تُعلن SEV1، وما هي معايير التراجع. تُستخدم أدلة الاستجابة من قِبل قادة الحادث، وليس بالضرورة من قِبل المهندسين المنفذين لخطوات المعالجة.
دورة حياة دليل التشغيل: الكتابة والتحقق والتقاعد
لدليل التشغيل دورة حياة. يُنشأ عند إضافة تنبيه جديد. يُتحقق منه خلال تمرين محاكاة الحوادث أو الحادثة الحقيقية التالية. يُحدَّث بعد كل تحليل لاحق يكشف عن ثغرة. يُتقاعد عندما يتغير النظام الأساسي وتختفي حالة الفشل. الفرق التي لا تُتقاعد أدلة التشغيل القديمة تُراكم ضوضاء خطيرة — يتوقف المهندسون عن الثقة بالتوثيق ويبدأون في الارتجال، مما يُهزم الغرض كله.
ادمج تدقيقًا ربع سنويًا في تقويم فريقك. راجع كل دليل: هل الأمر لا يزال يعمل؟ هل رابط لوحة التحكم يعمل؟ هل جهة التصعيد لا تزال في الفريق؟ تدقيق لساعتين كل ربع سنة يمنع ساعات من الارتباك خلال الحوادث.
الأتمتة: الصورة النهائية لدليل التشغيل
كل خطوة يدوية في دليل التشغيل هي خلل ينبغي إصلاحه. الهدف على المدى البعيد هو أتمتة خطوات دليل التشغيل حتى يصبح وثيقة مرجعية لحالات الحافة بدلًا من آلية استجابة أولية. عندما يُنفَّذ دليل تشغيل Redis عشر مرات والحل دائمًا هو "مسح DB 1"، يجب أن تصبح تلك الخطوة معالجة آلية مُشغَّلة بالتنبيه. أدوات مثل AWS Systems Manager Automation وRundeck والدوال السحابية المخصصة تجعل ذلك ممكنًا. يبقى دليل التشغيل موجودًا — ليصف ما تفعله الأتمتة، والشروط التي تعمل بها، وكيفية التدخل اليدوي إذا فشلت الأتمتة.