في عالم الـ Software Development، المصطلحات دي كتير بتتقال مع بعض:
-
Delivery
-
Deployment
-
Release
المطلوب:
✅ فسّر الفرق بينهم من حيث:
-
من بيعملهم؟
-
إمتى بيحصلوا؟
-
هل بيظهروا للمستخدم النهائي؟
وضّح بإجابتك الفرق بينهم من ناحية فنية وعملية.
🚚 1. Delivery
بص🧐 احنا دلوقتي شغالين علي مشروع وال developer بدأ يعمل اول feature , بعد ما يخلصها هيديلك build بقا علشان تعمل عليها test طاب هيديهالك ازاي؟!
هيرفعهالك علي testing environment مثلا >> ودي internal environment يعني الحدود بتاعتها هي الشركه بتاعتنا
بالتالى يكون DELIVERY:
- تسليم النسخة الجاهزة من الـ software من فريق الـ Dev إلى فريق آخر (زي QA أو UAT أو Client).
مش بالضرورة يكون اتنشر على سيرفر Production
الهدف: نقول “الكود جاهز” ونسلمه
مثال: تسليم نسخة staging لفريق الـ QA
🔹 بيتم داخليًا
🖥️ 2. Deployment (النشر)
طب دلوقتي الراجل رفعلنا ال features كلها وكل ما يرفع جزء بنعمل تست وبقا عندنا system كامل ، فدلوقتي عايزين بقا نرفع ال system دا علي environment شبه ال production علشان نجربه بقا كله علي بعضه كأنه نزل لل user
بيكون برضو علي internal environment زي ال staging
بالتالي يكون DEPLOYMENT:
- هو الفعل التقني لنقل الكود أو الـ Build من بيئة إلى بيئة (مثلاً من QA إلى Production).
ممكن يتم أوتوماتيكي (CI/CD Pipelines)
مش شرط يظهر للمستخدم (ممكن يكون Feature Toggle)
🔹 بيتم تقنيًا على مستوى السيرفر أو السحابة
🌍 3. Release (الإطلاق للمستخدمين)
المهم خلصنا الاختبار والدنيا تمام؟! يلا بقا نطلع الشغل بتاعنا للنور وننزله لل user علي production environment
📌وهي دي ال release وبتكون علي external environment
- هو إعلان أو تفعيل الميزة فعليًا للمستخدم النهائي.
ممكن يتم بعد أيام من الـ Deployment
مرتبط بالتسويق أو التوقيت المناسب
🔹 هو اللي بيوصل للمستخدم