ننتقل اليوم إلى تاريخ المصطلح ونناقش صعوبات تطبيق CI ونوفر بعض الأدوات الشائعة لمساعدتك في التعامل معه.
/ Flickr / Altug Karakoc / CC BY / تم تغيير الصورةمصطلح
التكامل المستمر - نهج لتطوير التطبيقات ، بما في ذلك التجميع المتكرر للمشروع واختبار الكود.
الهدف من ذلك هو جعل عملية التكامل قابلة للتنبؤ بها واكتشاف الأخطاء والأخطاء المحتملة في مرحلة مبكرة حتى يتوفر المزيد من الوقت لإصلاحها.
ظهر مصطلح التكامل المستمر لأول مرة في عام 1991. تم تقديمه بواسطة خالق لغة UML ، Grady Booch. قدم المهندس مفهوم CI كجزء من ممارسته التنموية الخاصة -
طريقة بوتش . أنه ينطوي على تحسين تدريجي للعمارة في تصميم النظم وجوه المنحى. لم يصف جرادي أي متطلبات للتكامل المستمر. ولكن في وقت لاحق من كتابه "
التحليل الموجه نحو الكائنات والتصميم مع التطبيقات " ، قال إن مهمة المنهجية هي تسريع إصدار "الإصدارات الداخلية".
القصة
في عام 1996 ، تم اعتماد CI من قبل المبدعين من منهجية
البرمجة المتطرفة (XP) -
كنت بيك ورون جيفريز . أصبح التكامل المستمر أحد المبادئ الرئيسية الاثني عشر لنهجهم. أوضح مؤسسو XP متطلبات منهجية CI ولاحظوا الحاجة إلى تجميع المشروع عدة مرات في اليوم.
في أوائل عام 2000 ، بدأ
مارتن فاولر ، أحد مؤسسي تحالف أجيل ، في الترويج لمنهجية التكامل المستمر. أدت تجاربه مع CI إلى أول أداة برمجية في الصناعة - CruiseControl. تم إنشاء الأداة المساعدة بواسطة زميل مارتن - ماثيو فوميل (ماثيو فوميل).
يتم تطبيق دورة الإنشاء في الأداة على أنها برنامج خفي ، والتحقق بشكل دوري من نظام التحكم في الإصدار لمعرفة التغييرات في قاعدة الكود. يمكن تنزيل الحل اليوم - يتم توزيعه بموجب ترخيص يشبه BSD.
مع ظهور البرامج لـ CI ، بدأت المزيد والمزيد من الشركات في تبني هذه الممارسة. وفقًا لدراسة أجرتها Forrester [الصفحة 5 من
التقرير ] ، في عام 2009 ، فإن 86٪ من شركات التكنولوجيا الخمسين التي شملتها الدراسة استخدمت أو نفذت أساليب CI.
اليوم ، تمارس التكامل المستمر من قبل مؤسسات من مجموعة واسعة من الصناعات. في عام 2018 ، أجرى مزود سحابة كبير دراسة استقصائية بين المتخصصين في تكنولوجيا المعلومات للشركات من قطاعات الخدمات والتعليم والمالية. من بين ستة آلاف ممن شملهم الاستطلاع ، قال 58٪ أنهم يستخدمون أدوات ومبادئ CI في عملهم.
كيف يعمل؟
أساس التكامل المستمر هو أداتان - نظام التحكم في الإصدار وخادم CI. يمكن أن يكون الأخير إما جهازًا فعليًا أو جهازًا افتراضيًا في بيئة سحابية. يقوم المطورون بتحميل كود جديد مرة واحدة أو عدة مرات في اليوم. يقوم خادم CI بنسخه تلقائيًا بكل التبعيات وتنفيذ التجميع. بعد - تطلق اختبارات التكامل والوحدة. إذا نجحت الاختبارات ، فإن نظام CI ينشر الكود.
يمكن تمثيل المخطط العام للعملية على النحو التالي:

تتضمن منهجية CI عددًا من المتطلبات للمطورين:
- إصلاح المشاكل على الفور. جاء هذا المبدأ إلى CI من البرمجة المتطرفة. إصلاحات الأخطاء هي أولوية قصوى للمطورين.
- أتمتة العمليات. يجب على المطورين والمديرين البحث باستمرار عن الاختناقات في عملية التكامل والقضاء عليها. على سبيل المثال ، يكون الاختبار غالبًا "عنق الزجاجة" للتكامل.
- بناء قدر الإمكان. مرة واحدة في اليوم لمزامنة فريق العمل.
صعوبات التنفيذ
المشكلة الأولى هي ارتفاع تكاليف التشغيل. حتى إذا كانت الشركة تستخدم أدوات CI مفتوحة (والتي سنتحدث عنها لاحقًا) ، فسوف يتعين عليها إنفاق أموال على دعم البنية التحتية. ومع ذلك ، قد تكون التكنولوجيا السحابية هي الحل.
أنها تبسيط تجميع تكوينات الكمبيوتر متعددة النطاقات. بالإضافة إلى ذلك ،
تدفع الشركات فقط مقابل الموارد المستخدمة ، مما يساعد على توفير البنية التحتية.
وفقًا للاستطلاعات [ص 14 من
المقال ] ، فإن التكامل المستمر يزيد من العبء على موظفي الشركة (على الأقل لأول مرة). يجب عليهم تعلم أدوات جديدة ، ولا يساعد الزملاء دائمًا في التدريب. لذلك ، يجب عليك التعامل مع الأطر والخدمات الجديدة أثناء التنقل.
الصعوبة الثالثة هي مشاكل الأتمتة. تواجهها المؤسسات التي تحتوي على قدر كبير من الشفرة القديمة التي لا تغطيها الاختبارات الآلية. هذا يؤدي إلى حقيقة أن التعليمات البرمجية تتم إعادة كتابتها ببساطة قبل التنفيذ الكامل لـ CI.
/ فليكر / theilr / CC BY-SAمن يستخدم
واحدة من المزايا الأولى للمنهجية كانت موضع تقدير من قبل عمالقة تكنولوجيا المعلومات.
تستخدم Google التكامل المستمر منذ منتصف عام 2000. نفذت CI لحل المشكلة مع التأخير في محرك البحث. ساعد التكامل المستمر في تحديد المشكلات وحلها بسرعة. الآن يتم استخدام CI من قبل جميع الإدارات العملاقة لتكنولوجيا المعلومات.
يساعد التكامل المستمر أيضًا الشركات الصغيرة ، كما تستخدم المؤسسات المالية والطبية أدوات CI. في Morningstar ، على سبيل المثال ، ساعدت خدمات التكامل المستمر في تصحيح الثغرات الأمنية بنسبة 70٪ بشكل أسرع. وتمكنت منصة Philips Healthcare الطبية من مضاعفة سرعة اختبار التحديثات.
الأدوات
فيما يلي بعض الأدوات الشائعة لـ CI:
- جنكينز هي واحدة من أنظمة CI الأكثر شعبية. وهو يدعم أكثر من ألف مكون إضافي للتكامل مع مختلف VCS والمنصات السحابية وغيرها من الخدمات. نستخدم Jenkins في 1cloud أيضًا: يتم تضمين الأداة في نظام DevOps الخاص بنا . انه يتحقق بانتظام فرع جيت للاختبار.
- Buildbot هو إطار بيثون لكتابة عمليات التكامل المستمر الخاصة بك. الإعداد الأولي للأداة معقد للغاية ، ولكن يتم تعويض ذلك عن طريق إمكانيات التخصيص الواسعة. من بين مزايا الإطار ، يميز المستخدمون كثافة الموارد المنخفضة.
- كونكورس CI هو خادم من Pivotal يستخدم حاويات Docker. كونكورس CI يتكامل مع أي أدوات وأنظمة التحكم في الإصدار. يلاحظ المطورون أن النظام مناسب للعمل في الشركات من أي حجم.
- Gitlab CI هي أداة مضمنة في نظام التحكم في إصدار GitLab. تعمل الخدمة في السحابة وتستخدم ملفات YAML للتكوين. مثل Concourse ، يستخدم Gitlab CI حاويات Docker التي تساعد على عزل العمليات المختلفة عن بعضها البعض.
- Codeship هو خادم CI يستند إلى مجموعة النظراء يعمل مع GitHub و GitLab و BitBucket. لا يتطلب النظام الأساسي إعدادًا أوليًا طويلًا - تتوفر عمليات CI محددة مسبقًا في Codeship. للمشاريع الصغيرة (ما يصل إلى 100 تصميمات شهريًا) والمشاريع مفتوحة المصدر ، تتوفر Codeship مجانًا.
مواد من مدونة الشركة: