تخطَّ إلى المحتوى

Canary Deployment

النشر الكناري Canary Deployment

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

بدل التبديل الفوري (Blue-Green) أو الاستبدال التدريجي الكامل (Rolling Update)، Canary يوجّه جزءاً صغيراً محسوباً من حركة المرور — مثلاً 5% — للإصدار الجديد، بينما تستمر البقية على الإصدار القديم المستقر. إذا بقيت مؤشرات الأداء ومعدل الأخطاء طبيعية، تُزاد النسبة تدريجياً (أو دفعة واحدة بعد نسبة تجريبية أولى) حتى تصل 100%؛ وإذا ظهرت مشكلة، تُعاد كل حركة المرور فوراً للإصدار القديم دون التأثير إلا على تلك النسبة الصغيرة من المستخدمين.

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

الصياغة

# مثال مفاهيمي بتقسيم وزن حركة المرور
routes:
  - version: <stable>
    weight: <نسبة كبيرة>
  - version: <canary>
    weight: <نسبة صغيرة>

📄 مثال

routes:
  - version: v1
    weight: 95
  - version: v2   # الإصدار الكناري
    weight: 5

# بعد التأكد من سلامة الأداء، تُرفع weight الكناري تدريجياً حتى 100

أهم النقاط

العنصرالوظيفة
المجموعة الكنارية (canary group)نسبة حركة المرور الموجهة للإصدار الجديد للتجربة
weight / نسبة التوجيهتحدد كم من حركة المرور يذهب لكل إصدار في لحظة معينة
التصعيد التدريجي (progressive rollout)زيادة النسبة خطوة بخطوة بدل قفزة واحدة من نسبة صغيرة إلى 100%
التراجع الجزئيإعادة weight الكناري إلى صفر دون التأثير على بقية المستخدمين

💡 نصائح عملية

  • ابدأ بنسبة صغيرة جداً (1-5%) للميزات الحساسة، وكبّرها فقط بعد فترة مراقبة كافية لظهور أي مشكلة نادرة
  • اربط قرار التصعيد أو التراجع بعتبات مؤشرات محددة مسبقاً (معدل الأخطاء، زمن الاستجابة) لا بقرار يدوي عشوائي

⚠️ أخطاء شائعة

  • تشغيل Canary بدون مراقبة تلقائية فعلية تقارن الإصدارين — يفقد الاستراتيجية غرضها بالكامل
  • ترك النسبة الكنارية لفترة طويلة جداً بلا قرار حاسم (تصعيد أو تراجع)، فيتعقّد الدعم والتحليل بوجود إصدارين نشطين لمدة طويلة

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار DEVOPS الكامل بالعربي.

📚 للتعمق التقني الكامل بالإنجليزية: MDN Web Docs