المرجع: كيف تتم عملية التكامل المستمر

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

المرجع: كيف تتم عملية التكامل المستمر
/ فليكر / ألتوج كاراكوك / CC BY / تعديل الصورة

مصطلح

التكامل المستمر هو أسلوب لتطوير التطبيقات يتضمن إنشاءات متكررة للمشروع واختبار التعليمات البرمجية.

الهدف هو جعل عملية التكامل قابلة للتنبؤ بها واكتشاف الأخطاء والأخطاء المحتملة في مرحلة مبكرة، بحيث يكون هناك المزيد من الوقت لإصلاحها.

ظهر مصطلح التكامل المستمر لأول مرة في عام 1991. تم تقديمه من قبل منشئ لغة UML جرادي بوتش (جرادي بوتش). قدم المهندس مفهوم CI كجزء من ممارسات التطوير الخاصة به - طريقة بوخ. لقد كان يتضمن تحسينًا تدريجيًا للهندسة المعمارية عند تصميم الأنظمة الموجهة للكائنات. ولم يصف جرادي أي متطلبات للتكامل المستمر. ولكن في وقت لاحق في كتابه "التحليل والتصميم الموجه للكائنات مع التطبيقاتوقال إن الهدف من المنهجية هو تسريع إصدار “الإصدارات الداخلية”.

قصة

في عام 1996، تم اعتماد CI من قبل مبتكري المنهجية البرمجة المتطرفة (إكس بي) - كينت بيك (كينت بيك) و رون جيفريز (رون جيفريز). وأصبح التكامل المستمر واحدًا من المبادئ الاثني عشر الأساسية لنهجهم. أوضح مؤسسو XP متطلبات منهجية CI وأشاروا إلى الحاجة إلى بناء المشروع عدة مرات في اليوم.

في أوائل العقد الأول من القرن الحادي والعشرين، بدأ أحد مؤسسي تحالف Agile في الترويج لمنهجية التكامل المستمر مارتن فاولر (مارتن فاولر). أدت تجاربه مع CI إلى ظهور أول أداة برمجية في هذا المجال - CruiseControl. تم إنشاء الأداة المساعدة من قبل زميل مارتن، ماثيو فوميل.

يتم تنفيذ دورة البناء في الأداة كبرنامج خفي يقوم بفحص نظام التحكم في الإصدار بشكل دوري بحثًا عن التغييرات في قاعدة التعليمات البرمجية. يمكن تنزيل الحل اليوم - عليه وزعت من خلال بموجب ترخيص يشبه BSD.

ومع ظهور برمجيات CI، بدأت المزيد والمزيد من الشركات في تبني هذه الممارسة. وفقًا لأبحاث Forrester [صفحة 5 تقرير]، في عام 2009، استخدمت 86% من شركات التكنولوجيا الخمسين التي شملتها الدراسة أو نفذت أساليب CI.

اليوم، يتم استخدام ممارسة التكامل المستمر من قبل المنظمات من مجموعة واسعة من الصناعات. في عام 2018، أجرى مزود سحابي كبير استطلاعًا بين متخصصي تكنولوجيا المعلومات من الشركات في قطاعات الخدمات والتعليم والتمويل. ومن بين الستة آلاف مشارك، قال 58% أنهم يستخدمون أدوات ومبادئ CI في عملهم.

كيف يعمل هذا؟

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

يمكن تمثيل مخطط العملية العام على النحو التالي:

المرجع: كيف تتم عملية التكامل المستمر

تفرض منهجية CI عددًا من المتطلبات للمطورين:

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

صعوبات التنفيذ

المشكلة الأولى هي ارتفاع تكاليف التشغيل. حتى لو كانت الشركة تستخدم أدوات CI المفتوحة (والتي سنتحدث عنها لاحقًا)، فلا يزال يتعين عليها إنفاق الأموال على دعم البنية التحتية. ومع ذلك، قد تكون التقنيات السحابية هي الحل.

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

حسب الاستطلاعات [صفحة 14 مقالات]، التكامل المستمر يزيد العبء على موظفي الشركة (على الأقل في البداية). عليهم أن يتعلموا أدوات جديدة، ولا يساعد الزملاء دائمًا في التدريب. لذلك، عليك التعامل مع الأطر والخدمات الجديدة أثناء التنقل.

الصعوبة الثالثة هي مشاكل الأتمتة. تواجه المؤسسات التي لديها كمية كبيرة من التعليمات البرمجية القديمة التي لا تغطيها الاختبارات الآلية هذه المشكلة. يؤدي هذا إلى إعادة كتابة الكود ببساطة قبل التنفيذ الكامل لـ CI.

المرجع: كيف تتم عملية التكامل المستمر
/ فليكر / theilr / CC BY-SA

من يستخدم

وكان عمالقة تكنولوجيا المعلومات من بين أول من قدروا فوائد المنهجية. جوجل الاستخدامات التكامل المستمر منذ منتصف العقد الأول من القرن الحادي والعشرين. تم تنفيذ CI لحل مشكلة التأخير في محرك البحث. ساعد التكامل المستمر على اكتشاف المشكلات وحلها بسرعة. الآن يتم استخدام CI من قبل جميع أقسام شركة تكنولوجيا المعلومات العملاقة.

يساعد التكامل المستمر أيضًا الشركات الصغيرة، كما تستخدم المؤسسات المالية ومؤسسات الرعاية الصحية أدوات CI. على سبيل المثال، في Morningstar، ساعدت خدمات التكامل المستمر في تصحيح الثغرات الأمنية بشكل أسرع بنسبة 70%. وتمكنت منصة Philips Healthcare الطبية من مضاعفة سرعة تحديثات الاختبار.

أدوات

فيما يلي بعض الأدوات الشائعة لـ CI:

  • جنكينز هو أحد أنظمة CI الأكثر شعبية. وهو يدعم أكثر من ألف مكون إضافي للتكامل مع VCS المختلفة والأنظمة الأساسية السحابية والخدمات الأخرى. نستخدم أيضًا Jenkins في 1cloud: tool المدرجة في نظام DevOps لدينا. يقوم بانتظام بفحص فرع Git المخصص للاختبار.
  • بناء الروبوت - إطار عمل بايثون لكتابة عمليات التكامل المستمر الخاصة بك. يعد الإعداد الأولي للأداة معقدًا للغاية، ولكن يتم تعويض ذلك من خلال خيارات التخصيص الواسعة. من بين مزايا الإطار، يسلط المستخدمون الضوء على انخفاض كثافة الموارد.
  • كونكورس CI هو خادم من Pivotal يستخدم حاويات Docker. يتكامل Concourse CI مع أي أدوات وأنظمة التحكم في الإصدار. لاحظ المطورون أن النظام مناسب للعمل في الشركات من أي حجم.
  • جيتلاب سي هي أداة مدمجة في نظام التحكم في إصدار GitLab. تعمل الخدمة في السحابة وتستخدم ملفات YAML للتكوين. مثل الكونكورس، Gitlab CI ينطبق حاويات Docker التي تساعد على عزل العمليات المختلفة عن بعضها البعض.
  • الكود هو خادم CI سحابي يعمل مع GitHub وGitLab وBitBucket. لا يتطلب النظام الأساسي إعدادًا أوليًا طويلًا - تتوفر عمليات CI القياسية المثبتة مسبقًا في Codeship. بالنسبة للمشاريع الصغيرة (ما يصل إلى 100 إصدار شهريًا) والمشاريع مفتوحة المصدر، يتوفر Codeship مجانًا.

المواد من مدونة شركتنا:

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

إضافة تعليق