0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · درس

علامات الميزات وعمليات الطرح التدريجي

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

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

النشر مقابل الإطلاق

من الأفكار المهمة في التسليم المتقدم أن نشر التعليمات البرمجية وإطلاق ميزة ليسا الشيء نفسه.

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

ما علامة الميزة

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

if (flags.isEnabled('new-checkout')) {
  renderNewCheckout();
} else {
  renderOldCheckout();
}

لماذا تتفوق العلامات على التفريع

تؤدي فروع الميزات طويلة الأجل إلى عمليات دمج مؤلمة. وتتيح العلامات دمج تغييرات صغيرة في main باستمرار، مع إبقاء الميزة مخفية.

  • طلبات سحب أصغر وأكثر أمانًا
  • تطوير قائم على الفرع الرئيسي
  • تشغيل وإيقاف فوريان من دون إعادة نشر

أنواع العلامات

تخدم العلامات أغراضًا مختلفة:

  • علامات الإصدار — لإخفاء العمل غير المكتمل
  • علامات التشغيل — مفاتيح إيقاف للأنظمة المحفوفة بالمخاطر
  • علامات التجارب — لاختبارات A/B
  • علامات الأذونات — لمنح المستخدمين المميزين صلاحياتهم

يساعدكم معرفة النوع في تحديد مدة بقائه.

قواعد الاستهداف

تتيح منصات العلامات استهداف من يرى الميزة: حسب معرّف المستخدم أو المجموعة أو المنطقة أو نسبة مئوية.

وهذا ما يتيح الطرح التدريجي الذي تتحكم فيه الإعدادات بدلًا من نشر بنية تحتية جديدة.

الطرح بالنسب المئوية

من الأنماط الشائعة تمكين العلامة لنسبة صغيرة من المستخدمين أولًا، ثم زيادتها تدريجيًا: 1%، ثم 10%، ثم 50%، ثم 100%.

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

// Pseudo targeting config
flag: new-checkout
rollout:
  percentage: 10
  attribute: userId

مفاتيح إيقاف التشغيل

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

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

العلامات في مسار CI/CD

يمكنكم دمج تغييرات العلامات في CI/CD. فعلى سبيل المثال، يمكن لخطوة في مسار العمل تفعيل علامة بعد نجاح النشر، أو جدولة زيادة تدريجية.

  - name: Enable feature
    run: |
      curl -X PATCH https://flags.example.com/api/flags/new-checkout \
        -H "Authorization: Bearer ${{ secrets.FLAG_TOKEN }}" \
        -d '{"enabled": true}'

متوقفة وآمنة افتراضيًا

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

يجب ألا تصبح علامة الميزة نقطة فشل وحيدة.

const enabled = flags.isEnabled('new-checkout', { default: false });

تنظيف العلامات

تنشئ العلامات مسارات متفرعة في التعليمات البرمجية. وتصبح العلامات القديمة دينًا تقنيًا وتربك القرّاء.

بعد طرح علامة الإصدار بالكامل واستقرارها، أزيلوها واحذفوا مسار التعليمات البرمجية القديم. وتتبعوا دورات حياة العلامات بوعي.

العلامات وأنماط النشر

تكمل علامات الميزات عمليات النشر الأزرق/الأخضر والكناري. إذ تغيّر أنماط البنية التحتية حركة المرور، بينما تغيّر العلامات الوظائف.

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

تحقق سريع

اختبروا مدى فهمكم لعلامات الميزات.

مراجعة

تعلّمتم الفصل بين النشر والإطلاق باستخدام علامات الميزات.

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

عند دمجها مع النشر الأزرق/الأخضر والكناري، تكمل العلامات مجموعة أدوات التسليم المتقدم.

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

هل درس «علامات الميزات وعمليات الطرح التدريجي» مجاني؟

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

ماذا ستتعلم في «علامات الميزات وعمليات الطرح التدريجي»؟

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

هل أحتاج إلى خبرة سابقة لأبدأ CI/CD with GitHub Actions & DevOps Pipelines؟

لا تُشترط خبرة سابقة. CI/CD with GitHub Actions & DevOps Pipelines على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «علامات الميزات وعمليات الطرح التدريجي»؟

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

هل يمكنني كتابة وتشغيل أكواد في درس CI/CD with GitHub Actions & DevOps Pipelines هذا؟

نعم. كل درس في CI/CD with GitHub Actions & DevOps Pipelines يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

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

  1. عمليات النشر الأزرق/الأخضر
  2. إصدارات Canary باستخدام Actions
  3. التراجع والتعافي من الكوارث
  4. علامات الميزات وعمليات الطرح التدريجي
← العودة إلى CI/CD with GitHub Actions & DevOps Pipelines