كي نحكيو على Deployment Strategies اللي تستعملها الشركات الكبيرة، الهدف الأساسي هو نقل التحديثات للـ Production Environment بأقل تأثير على المستخدمين.

كي نحبوا نعملوا تحديثات على الأنظمة في الشركات الكبيرة، الهدف متاعنا ديما هو إننا ننقلوا التحديثات لإنتاج النظام من غير ما يأثروا على المستخدمين.
اليوم باش نحكيو على الأنواع المختلفة من Deployment Strategies مع مميزات و عيوب كل وحدة فيهم.
الاستراتيجية هاذي تعتمد على بيئتين شغالين في نفس الوقت:
أول ما التحديث يكون جاهز، نبدلوا الـTraffic من الـBlue لـ Green دفعة واحدة.
وهكا الناس تبدأ تستخدم الـGreen Deployment بدل الـBlue، وكل الترافيك يتم توجيهه بواسطة Load Balancer.
مميزات الـ Blue-Green Deployment:
عيوب الـ Blue-Green Deployment:
مثال: شركات كبيرة كيما Amazon تستخدم الاستراتيجية هاذي باش تحافظ على استمرارية الخدمات بدون تأثير على المستخدمين.
الاستراتيجية هاذي تعتمد على نقل التحديث تدريجيا. يعني التحديث يتوزع على عدد محدود من المستخدمين الأول، وإذا الأمور مشيت كويس، نكملوا نشر التحديث لبقية المستخدمين.
مثلاً، نحدثوا 20% من machines فقط، و80% يبقوا يستخدموا النسخة القديمة.
مميزات الـ Canary Deployment:
عيوب الـ Canary Deployment:
مثال: شركات كيما Google و Netflix يستخدموا Canary Deployment باش يجربوا المزايا الجديدة قبل ما يعمموها.
في Rolling Deployment، التحديث يتنقل تدريجياً من سيرفر لسيرفر بدل ما نحدثوا كل شيء دفعة واحدة.
لو عندنا 10 Servers، التحديث يتم على واحد تلو الآخر لحد ما يتم تطبيقه على الكل.
مميزات الـ Rolling Deployment:
عيوب الـ Rolling Deployment:
مثال: بعض الشركات تفضل Rolling Deployment لتجنب المشاكل الناتجة عن تحديث كل السيرفرات دفعة واحدة.
في A/B Testing، نختبر التحديث على مجموعة من المستخدمين، وفي نفس الوقت نعمل مقارنة بين نسختين مختلفتين للـ Feature.
مثلاً، نغير واجهة الموقع ونشوف التفاعل مع المستخدمين: هل الجدد يحبوا الواجهة الجديدة أكثر من القديمة؟
مميزات الـ A/B Testing:
عيوب الـ A/B Testing:
مثال: مواقع كيما eBay و Booking.com يستخدموا A/B Testing لاختبار التغييرات في واجهة المستخدم.
في Shadow Deployment، التحديث يكون شغال جنب النسخة القديمة بدون ما المستخدمين يحسوا بأي تغيير.
الهدف هو مراقبة أداء التحديث قبل ما نعلنوه للجميع.
مميزات الـ Shadow Deployment:
عيوب الـ Shadow Deployment:
مثال: شركات زي Airbnb تستخدم Shadow Deployment لتتبع الأداء قبل إطلاق الميزات للمستخدمين.
الـ Recreate Deployment تعتمد على إيقاف السيرفرات القديمة ثم تحديثها مرة واحدة.
مميزات الـ Recreate Deployment:
عيوب الـ Recreate Deployment:
مثال: بعض الشركات الصغيرة تستخدم الاستراتيجية هاذي في التحديثات السريعة لما يكون عدد المستخدمين قليل.
اختيار Deployment Strategy يعتمد على حجم التحديث وحجم Traffic ومدى أهمية الخدمة.
إذا كنت تحب تقليل المخاطر وتجنب Downtime، الاستراتيجيات زي Blue-Green و Canary Deployment هم الأنسب.
أما لو تحب Feedback دقيق من المستخدمين، A/B Testing هو الأنسب.