مساعدة: ما هو التسليم المستمر

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

مساعدة: ما هو التسليم المستمر
/بيكساباي/ بلوبادجي / PL

قصة

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

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

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

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

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

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

يبدو مثال عملية التسليم المستمر كما يلي:

مساعدة: ما هو التسليم المستمر

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

يتم فرض المتطلبات التالية على العملية:

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

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

ما هي الفائدة

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

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

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

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

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

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

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

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

مساعدة: ما هو التسليم المستمر
/ فليكر / h.ger1969 / CC BY-SA

أدوات

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

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

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

المصدر: www.habr.com

إضافة تعليق