الخلفية: ما هو التسليم المستمر

في وقت سابق تحدثنا عن التكامل المستمر (CI). تواصل مع التسليم المستمر. هذه هي مجموعة من أساليب تطوير البرمجيات. يساعد على التأكد من أن الكود جاهز للنشر.


/ Pixabay / bluebudgie / PL

القصة


يمكن رؤية عبارة "التسليم المستمر" في البيان الرشيق من عام 2001 في بداية قائمة المبادئ الأساسية: "الأولوية هي حل مشكلات العملاء باستخدام التوريد المستمر للبرامج ذات الصلة".

في عام 2010 ، أصدر Jez Humble و David Farley كتابًا عن التسليم المستمر. وفقًا للمؤلفين ، يكمل القرص المضغوط نهج التكامل المستمر ويسهل إعداد الكود للنشر.

بعد نشر الكتاب ، بدأ النهج يكتسب شعبية وفي غضون عامين فقط أصبح مقبولًا عالميًا تقريبًا. وفقًا لاستطلاع شمل أكثر من 600 مطور ومدير تكنولوجيا معلومات في عام 2014 ، كان 97٪ من المديرين الفنيين و 84٪ من المبرمجين على دراية بالتواصل المستمر

الآن هذا النهج لا يزال واحدا من الأكثر شعبية. وفقًا لدراسة أجريت عام 2018 اجتذبت مجتمع تقنية المعلومات DevOps و Jenkins Community ، فإن نصف المجيبين الذين يستخدمونها أكثر من ألف.

كيف يعمل التسليم المستمر


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

مثال على عملية التسليم المستمر كما يلي:



إذا كان نهج التكامل المستمر مسؤولاً عن أتمتة المرحلتين الأوليين ، فعندئذٍ بالنسبة للمرحلتين التاليتين - التسليم المستمر. يتم ضمان استقرار العملية ، من بين أمور أخرى ، بسبب أنظمة إدارة التكوين . يراقبون التغييرات في البنية التحتية وقواعد البيانات والتبعيات. النشر نفسه يمكن أن يكون آليا ، أو يمكن القيام به يدويا.

تحتوي العملية على المتطلبات التالية:

  • توفر المعلومات حول الاستعداد لدخول بيئة الإنتاج والاستعداد للإصدار الفوري (أدوات CD تختبر الكود وتتيح تقييم تأثير التغييرات في الإصدار).
  • المسؤولية الشاملة عن المنتج النهائي. يفكر فريق المنتج - المدراء ، المطورين ، المختبرين - في النتيجة ، وليس فقط في مجال مسؤوليتهم (والنتيجة هي إصدار عمل متاح لمستخدمي المنتج).

يستخدم القرص المضغوط عادةً مراجعة الكود ، ويستخدم مبدأ التشغيل المظلم لجمع آراء العملاء. أولاً ، يتم إصدار ميزة جديدة لشريحة صغيرة من المستخدمين - تساعد خبرتهم في التفاعل مع المنتج في العثور على العيوب والأخطاء التي لم يتم ملاحظتها أثناء الاختبار الداخلي.

ما هي الفائدة


يساعد التسليم المستمر في تبسيط عملية نشر الكود ، الأمر الذي له تأثير إيجابي على الإنتاجية ويقلل من احتمالية استنفاد الموظفين. في النهاية ، هذا يقلل من تكاليف التطوير الشاملة. على سبيل المثال ، ساعد قرص مضغوط أحد فرق HP على تقليل هذه التكاليف بنسبة 40٪.

بالإضافة إلى ذلك ، وفقًا لدراسة أجريت عام 2016 (صفحة 28 من المستند ) ، فإن الشركات التي طبقت الأقراص المدمجة أسرع بنسبة 50٪ في حل مشكلات IS مقارنة بأولئك الذين لا يستخدمون هذا النهج. إلى حد ما ، يمكن تفسير هذا الاختلاف من خلال عمل أدوات التشغيل الآلي للعملية.

ميزة إضافية أخرى هي تسريع إصدارات الإصدار. في استوديو التطوير الفنلندي ، ساعد التسليم المستمر في زيادة سرعة تجميع الرموز بنسبة 25٪.

الصعوبات المحتملة


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

المشكلة المحتملة الثانية هي عدد كبير من فروع التعليمات البرمجية. نتيجة "المتفرعة" هي النزاعات المتكررة والخسائر اللاحقة لمقدار كبير من الوقت. والحل المحتمل هو نهج لا فروع .

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

يجب عليك أيضًا تدريب الموظفين على العمل باستخدام أدوات جديدة - سيوفر البرنامج التعليمي الأولي وقت المطورين وجهدهم.


/ Flickr / h.ger1969 / CC BY-SA

الأدوات


فيما يلي بعض الأدوات المفتوحة للتسليم المستمر:

  • GoCD هو خادم للتوصيل المستمر في Java و JRuby on Rails. يتيح لك التحكم في عملية تسليم التطبيق بالكامل: إصدار بناء - اختبار. الأداة مرخصة بموجب Apache 2.0. على الموقع الرسمي ، يمكنك العثور على دليل الإعداد .
  • Capistrano - إطار عمل لإنشاء البرامج النصية التي تعمل تلقائيًا على نشر التطبيقات في Ruby أو Java أو PHP. Capistrano قادر على تنفيذ الأوامر على جهاز بعيد ، والاتصال به عبر SSH. يعمل مع أدوات التكامل والتسليم المستمرة الأخرى ، مثل خادم Integrity CI.
  • Gradle هي أداة متعددة المنصات تعمل على أتمتة دورة تطوير التطبيق بالكامل. يعمل Gradle مع Java و Python و C / C ++ و Scala وما إلى ذلك. هناك تكامل مع Eclipse و IntelliJ و Jenkins.
  • Drone عبارة عن منصة Go CD. يمكن نشر طائرة بدون طيار على فرضية أو في السحابة. تم بناء الأداة على أساس الحاويات وتستخدم ملفات YAML لإدارتها.
  • Spinnaker هي عبارة عن منصة للتوصيل المستمر للرمز في أنظمة متعددة السحابية. تم تطويره بواسطة Netflix ، وقد لعب مهندسو Google دورًا كبيرًا في تطوير الأداة. يمكن العثور على تعليمات التثبيت على الموقع الرسمي .

ما يجب قراءته في مدونة الشركة:

Source: https://habr.com/ru/post/ar449364/


All Articles