اختبارات Smoke والتراجع والإشعارات
تحقّق واستعد وأبلغ عن عملية النشر
اختبارات Smoke والتراجع والإشعارات درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
لا يكتمل النشر عند إعادة التحميل
انتهاء الـ play لا يعني أن التطبيق يعمل. ما زلتم بحاجة إلى اختبارات Smoke، ومسار للتراجع، وإشعار. أغلقوا الحلقة. 🔁
اختبار نقطة النهاية باستخدام Smoke Test
اختبروا مسارًا حقيقيًا باستخدام وحدة uri وتحققوا من أن الاستجابة هي 200. إذا لم يستجب التطبيق بشكل صحيح، فيجب أن يفشل النشر بوضوح.
- name: Smoke test
ansible.builtin.uri:
url: https://app.example.com/health
status_code: 200
return_content: trueالتحقق من الإصدار الصحيح
تقدموا خطوة أخرى: اقرأوا الاستجابة واستخدموا assert للتأكد من أن الإصدار النشط يطابق الإصدار الذي نشرتموه للتو.
- ansible.builtin.assert:
that:
- "app_version in smoke.content"
fail_msg: "Wrong version live"وضع النشر داخل block
اجمعوا النشر والاختبارات داخل block حتى يؤدي أي فشل إلى تشغيل مسار تعافٍ مشترك واحد.
- block:
- import_role:
name: deploy
- import_tasks: smoke.ymlالتراجع داخل rescue
ضعوا منطق التراجع داخل rescue: أعيدوا نشر الإصدار السابق حتى لا يترك الإصدار الفاشل المستخدمين على شيفرة معطوبة.
rescue:
- name: Roll back
ansible.builtin.git:
repo: "{{ app_repo }}"
version: "{{ previous_version }}"
dest: /srv/appإعادة تمكين حركة المرور دائمًا
استخدموا always لإعادة node خلف موازن التحميل، سواء نجح النشر أم حدث تراجع. لا تتركوا أي مضيف معزولًا.
always:
- community.general.haproxy:
state: enabled
host: "{{ inventory_hostname }}"
delegate_to: lb1الفشل بسرعة ووضوح
عندما يكون هناك خطأ، أوقفوا التنفيذ برسالة مفيدة باستخدام وحدة fail، حتى يوضح السجل بالضبط ما الذي تعطل.
- ansible.builtin.fail:
msg: "Health check failed on {{ inventory_hostname }}"إخطار الفريق
أبلغوا عن النتيجة. تنشر مهمة community.general.slack رسالة بالنجاح أو الفشل، حتى يعرف الأشخاص أن النشر اكتمل.
- community.general.slack:
token: "{{ slack_token }}"
msg: "Deployed {{ app_version }} ✅"البريد الإلكتروني أم الدردشة، الخيار لكم
هل تفضلون البريد الإلكتروني؟ ترسل وحدة mail ملخصًا. تصلح أي قناة؛ فالمهم هو وجود إشارة واضحة وتلقائية عن النشر.
- community.general.mail:
to: ops@example.com
subject: "Deploy {{ app_version }} complete"الاحتفاظ بآخر إصدار سليم
لا يعمل التراجع إلا إذا تابعتم الإصدار السابق. سجّلوا previous_version قبل النشر حتى يعرف rescue ما الذي يجب استعادته.
vars:
previous_version: "2.4.0"
app_version: "2.4.1"نشر يمكنكم الوثوق به
اختبروا، وتراجعوا عند الفشل، وأعيدوا حركة المرور دائمًا، وأبلغوا الفريق. هذا هو النشر المناسب لبيئة الإنتاج من البداية إلى النهاية. 🎉
تحقق سريع
يضمن قسم واحد استعادة حركة المرور.
مراجعة
أغلقتم الحلقة: اختبارات Smoke، والتراجع داخل rescue، وإعادة التمكين داخل always، وإشعارات الفريق. اكتمل المشروع الختامي! 🏆
الأسئلة الشائعة
هل درس «اختبارات Smoke والتراجع والإشعارات» مجاني؟
نعم — نص درس «اختبارات Smoke والتراجع والإشعارات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ماذا ستتعلم في «اختبارات Smoke والتراجع والإشعارات»؟
تحقّق واستعد وأبلغ عن عملية النشر تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟
لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «اختبارات Smoke والتراجع والإشعارات»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟
نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- هندسة المشروع: Roles وInventory
- تجهيز المضيفين وتأمينهم وتهيئتهم الأولية
- نشر متدرّج خلف Load Balancer
- اختبارات Smoke والتراجع والإشعارات