ماذا يحدث بعد انتهاء خط الأنابيب: الإجراءات اللاحقة والتنظيف والأدلة

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

خط الأنابيب لا يكتمل بمجرد نجاح النشر. هناك ثلاثة أشياء يجب أن تحدث بعد اجتياز آخر اختبار، وتجاهلها يخلق مشاكل تظهر فقط بعد أسابيع أو أشهر.

إشعارات مفيدة حقًا

أول شيء يجب أن يفعله خط الأنابيب عند الانتهاء هو إبلاغ شخص ما. لكن ليست كل الإشعارات مفيدة. رسالة تقول فقط "تم النشر بنجاح" أو "فشل البناء" هي مجرد ضوضاء. إنها تجبر الأشخاص على فتح سجلات خط الأنابيب فقط لمعرفة ما حدث.

الإشعار الجيد يحمل سياقًا. يجب أن يتضمن:

  • ما التغيير الذي تمت معالجته (هوية الالتزام أو معرف طلب الدمج)
  • من قام بتشغيل خط الأنابيب
  • أي بيئة استقبلت النشر
  • ما إذا كان كل شيء قد نجح أو فشل شيء ما
  • رابط مباشر لتشغيل خط الأنابيب

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

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

إليك مقتطف YAML عملي لخطوة إشعار Slack تتضمن السياق الأساسي:

notify-slack:
  stage: post-deploy
  image: curlimages/curl:latest
  script:
    - |
      curl -X POST -H "Content-type: application/json" \
        --data "{
          \"text\": \"Deployment complete\",
          \"blocks\": [
            {
              \"type\": \"section\",
              \"text\": {
                \"type\": \"mrkdwn\",
                \"text\": \"*Pipeline finished*\nCommit: \`$CI_COMMIT_SHORT_SHA\`\nAuthor: $GITLAB_USER_LOGIN\nEnvironment: production\nStatus: $CI_JOB_STATUS\nLink: $CI_PIPELINE_URL\"
              }
            }
          ]
        }" \
        $SLACK_WEBHOOK_URL
  only:
    - main

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

تنظيف الموارد المؤقتة

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

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

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

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

تخزين الأدلة: الجزء الذي ينساه الجميع

هذا هو أهم إجراء لاحق، وهو الذي يتجاهله معظم الفرق.

الدليل هو سجل كامل لكل ما حدث أثناء تشغيل خط الأنابيب. ليس فقط الحالة النهائية، بل القصة الكاملة:

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

كل هذا يحتاج إلى حفظه في مكان يمكن الوصول إليه. ليس مدفونًا في التخزين الداخلي لمنصة CI الذي ينتهي بعد 30 يومًا. ليس في سجل الطرفية المحلي لشخص ما. في مكان يمكن الاستعلام عنه بعد شهور أو سنوات.

لماذا هذا مهم؟ لأنه في يوم من الأيام، سيسأل شخص ما:

  • "تلك النسخة التي نشرناها للإنتاج قبل ثلاثة أسابيع، هل خضعت لفحص الأمان؟"
  • "لدينا حادث إنتاج. هل تم اختبار ذلك التغيير ضد ترحيل قاعدة البيانات؟"
  • "المدقق يريد رؤية دليل على أن كل نشر تمت مراجعته قبل الانتقال إلى الإنتاج."

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

كيفية تخزين الأدلة عمليًا

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

يجب أن ينتج خط الأنابيب الخاص بك ملخصًا يحتوي على:

  • معرف البناء ورابط لسجلات البناء
  • عنوان URL للقطعة الأثرية في السجل الخاص بك
  • رابط لتقرير الاختبار
  • رابط لنتائج فحص الأمان
  • موقع سجل النشر
  • أي سجلات موافقة يدوية

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

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

الأدلة ليست فقط للمدققين

نعم، المدققون يحبون الأدلة. لكن القيمة الحقيقية تظهر أثناء التصحيح.

عندما يتعطل الإنتاج، السؤال الأول دائمًا هو: "ما الذي تغير؟" مع الأدلة الجيدة، يمكنك فتح آخر تشغيل لخط الأنابيب ورؤية بالضبط ما حدث. هل كان هناك اختبار فشل ولكن تم تجاهله؟ هل كانت القطعة الأثرية مختلفة عما توقعته؟ هل كان هناك تغيير في التكوين لم يوثقه أحد؟

بدون أدلة، أنت تتصحح بشكل أعمى. تعتمد على الذاكرة، وسجلات الدردشة، والتخمين. مع الأدلة، لديك سجل واقعي لما حدث بالفعل.

إغلاق دورة خط الأنابيب

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

هذا الإيقاع هو ما يجعل CI/CD موثوقًا. كل تغيير يتبع نفس المسار. كل تغيير يترك نفس النوع من الأثر. كل تغيير ينتج مخرجات يمكن التحقق منها لاحقًا.

قائمة مراجعة سريعة لمرحلة ما بعد الإجراء في خط الأنابيب الخاص بك

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

الخلاصة العملية

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