0Pricing
DevOps Bootcamp · درس

النشر في الإنتاج باستخدام بوابات الموافقة

تعلّم ترقية عمليات البناء بأمان من التجهيز إلى الإنتاج باستخدام قواعد حماية بيئة GitHub Actions والموافقات اليدوية وبوابات النشر

النشر في الإنتاج باستخدام بوابات الموافقة درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

لماذا يحتاج الإنتاج إلى بوابات

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

تمثل بوابة الموافقة توقفًا متعمدًا يؤكد فيه شخص (أو فحص آلي) وجوب متابعة النشر.

  • تقلل نطاق تأثير الأخطاء
  • تنشئ سجلًا تدقيقيًا يوضح من وافق على ماذا
  • تتيح الفصل بين مستويات الثقة في staging وproduction

بيئات GitHub

تتضمن GitHub Actions ميزة تسمى البيئات. ويمكن لبيئة، مثل production، أن تحتوي على أسرارها ومتغيراتها وقواعد الحماية الخاصة بها.

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

jobs:
  deploy:
    runs-on: ubuntu-latest
    environment: production
    steps:
      - run: echo 'Deploying to production'

المراجعون المطلوبون

من إعدادات المستودع، ضمن الإعدادات > البيئات > production، يمكنك تفعيل المراجعون المطلوبون.

عندما تستهدف مهمة هذه البيئة، يتوقف تشغيل سير العمل مؤقتًا وينتظر حتى ينقر أحد المراجعين المدرجين على Approve.

  • يمكن إعداد ما يصل إلى 6 مراجعين
  • تؤدي موافقة واحدة، افتراضيًا، إلى إلغاء حظر المهمة
  • قد لا يكون الشخص الذي شغّل التنفيذ هو الموافق، بحسب الإعدادات

سير عمل كامل محمي بالبوابات

تعمل هنا مهمة build أولًا، ثم تعتمد مهمة deploy عليها عبر needs وتستهدف بيئة production المحمية.

لن يبدأ النشر حتى يوافق المراجع المطلوب عليه في واجهة Actions.

name: Deploy
on:
  push:
    branches: [main]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - run: echo 'build artifact'
  deploy:
    needs: build
    runs-on: ubuntu-latest
    environment:
      name: production
      url: https://myapp.example.com
    steps:
      - run: echo 'deploy to prod'

مؤقتات الانتظار

بالإضافة إلى المراجعين، تدعم البيئات مؤقت انتظار. ويفرض هذا المؤقت تأخيرًا، يصل إلى 30 يومًا، قبل أن يتابع النشر.

يفيد مؤقت الانتظار القصير باعتباره فترة تهدئة آمنة؛ إذ يمنح الفريق فرصة لإلغاء التشغيل قبل وصوله إلى الإنتاج.

قيود فروع النشر

يمكن للبيئات تقييد الفروع المسموح لها بالنشر. وبالنسبة إلى production، لا تسمح عادةً إلا بالفرع main أو بوسوم الإصدارات.

يمنع ذلك النشر العرضي إلى الإنتاج من فرع ميزات.

  • الفروع المحمية — الفروع التي تملك قواعد حماية فقط
  • الفروع المحددة — قائمة سماح صريحة أو نمط وسوم

الأسرار الخاصة بالبيئة

لكل بيئة أسرارها الخاصة. ويمكن لبيئة production أن تحتوي على PROD_DB_URL، بينما تحتوي بيئة staging على STAGING_DB_URL.

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

    steps:
      - name: Deploy
        env:
          DB_URL: ${{ secrets.PROD_DB_URL }}
        run: ./deploy.sh

تتبع حالة النشر

تؤدي إضافة url إلى البيئة إلى إدراج رابط قابل للنقر للنشر في واجهة GitHub، كما تسجل كائن نشر عبر Deployments API.

يوفر ذلك سجلًا مرئيًا يوضح الالتزام الذي وصل إلى الإنتاج ووقت وصوله ومن نفّذه.

    environment:
      name: production
      url: https://myapp.example.com

الموافقة على تشغيل معلّق

عندما تنتظر مهمة محمية، سيظهر شريط أصفر بعنوان Review deployments في صفحة تشغيل سير العمل.

  • افتح التشغيل من علامة التبويب Actions
  • انقر على Review deployments
  • حدد البيئة وانقر على Approve and deploy أو Reject

يمكنك أيضًا ترك تعليق يشرح القرار.

دمج بوابات متعددة

تجمع أقوى بوابة للإنتاج عدة قواعد معًا:

  • المراجعون المطلوبون (موافقة بشرية)
  • مؤقت انتظار (فترة تهدئة)
  • قيود الفروع (فقط main)
  • أسرار البيئة (العزل)

يؤدي وضع هذه القواعد في طبقات إلى إنشاء عملية ترقية قوية من التجهيز إلى الإنتاج.

تجاوز البوابات بأمان

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

لا تعطل البوابات نهائيًا لمجرد التسهيل، فذلك يلغي الغرض من آلية الأمان.

اختبار سريع

اختبر مدى فهمك لبوابات الموافقة على الإنتاج.

مراجعة

لقد تعلمت كيفية إضافة بوابات الموافقة إلى عمليات النشر في الإنتاج باستخدام بيئات GitHub.

  • استخدم المفتاح environment لاستهداف بيئة محمية
  • تضيف المراجعون المطلوبون موافقة بشرية
  • تضيف مؤقتات الانتظار فترة تهدئة
  • تضيف قيود الفروع وأسرار البيئة عزلًا

تجعل هذه البوابات مجتمعةً الترقية من التجهيز إلى الإنتاج آمنة وقابلة للتدقيق.

الأسئلة الشائعة

هل درس «النشر في الإنتاج باستخدام بوابات الموافقة» مجاني؟

نعم — نص درس «النشر في الإنتاج باستخدام بوابات الموافقة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

ماذا ستتعلم في «النشر في الإنتاج باستخدام بوابات الموافقة»؟

تعلّم ترقية عمليات البناء بأمان من التجهيز إلى الإنتاج باستخدام قواعد حماية بيئة GitHub Actions والموافقات اليدوية وبوابات النشر تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟

لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «النشر في الإنتاج باستخدام بوابات الموافقة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟

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

جميع الدروس في هذه الدورة

  1. مقدمة إلى النشر المستمر
  2. النشر في بيئة التجهيز
  3. متغيرات البيئة والأسرار
  4. النشر في الإنتاج باستخدام بوابات الموافقة
← العودة إلى DevOps Bootcamp