CI \ CD للشركات الناشئة: ما هي الأدوات الموجودة ولماذا لا تستخدمها الشركات الكبيرة والمشهورة فقط

غالبًا ما يشير مطورو أدوات CI \ CD إلى الشركات الكبيرة مثل Microsoft و Oculus و Red Hat وحتى Ferrari و NASA كعملاء. يبدو أن مثل هذه العلامات التجارية لا تعمل إلا مع أنظمة باهظة الثمن لا يمكن أن يكون البدء الشرطي من اثنين من المطورين ومصمم. ولكن جزء كبير من الأدوات متاح للفرق الصغيرة.

ما يمكنك الانتباه إليه - سنقول المزيد.


صور - Csaba Balazs - Unsplash



PHP الرقيب


خادم CI مفتوح المصدر يجعل من السهل بناء مشاريع PHP. هذا شوكة لمشروع PHPCI . PHPCI نفسه لا يزال قيد التطوير ، ولكن ليس بنشاط كما كان من قبل.

يمكن PHP Censor العمل مع مستودعات GitHub ، GitLab ، Mercurial والعديد من الآخرين. لاختبار الشفرة ، تستخدم الأداة مكتبات Atoum و PHP Spec و Behat و Codeception. فيما يلي مثال لملف التكوين للحالة الأولى:

test: atoum: args: "command line arguments go here" config: "path to config file" directory: "directory to run tests" executable: "path to atoum executable" 

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



ريكس


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

 use Rex -feature => ['1.3']; user "my-user"; password "my-password"; group myservers => "mywebserver", "mymailserver", "myfileserver"; desc "Get the uptime of all servers"; task "uptime", group => "myservers", sub { my $output = run "uptime"; say $output; }; 

نوصي بالبدء في التعرف على الأداة من خلال الدليل الرسمي والكتاب الإلكتروني ، الذي تتم إضافته حاليًا.



خدمة البناء المفتوح (OBS)


هذه هي منصة لتحسين تطوير التوزيع. رمزها مفتوح ويكمن في المستودع على جيثب . مؤلف الأداة هو Novell . شاركت في تطوير توزيع SuSE ، وكان يسمى هذا المشروع في الأصل openSUSE Build Service. ليس من المستغرب أن يتم استخدام خدمة Open Build لإنشاء مشاريع في openSUSE و Tizen و VideoLAN. تعمل الأداة أيضًا مع Dell و SGI و Intel. ولكن هناك بين المستخدمين العاديين والشركات الناشئة الصغيرة. خاصةً بالنسبة لهم ، جمع المؤلفون ( ص 10 ) حزمة برامج مُعدة مسبقًا. النظام نفسه مجاني تمامًا - ما عليك سوى إنفاق المال على استضافة أو خادم حديد لنشره.

ولكن طوال فترة وجودها ، لم تحصل الأداة على مجتمع واسع. على الرغم من أنها كانت جزءًا من Linux Developer Network ، إلا أنها مسؤولة عن توحيد نظام التشغيل المفتوح. قد يكون من الصعب العثور على إجابة على سؤال في منتديات المواضيع. لكن أحد سكان Quora أشار إلى أنه في دردشة IRC على Freenode ، يستجيب أفراد المجتمع عن طيب خاطر. مشكلة المجتمع الصغير ليست عالمية ، لأن حل العديد من المشكلات موصوف في الوثائق الرسمية (PDF و EPUB). هناك يمكنك العثور على أفضل الممارسات للعمل مع OBS (هناك أمثلة وحالات).



Rundeck


أداة مفتوحة ( GitHub ) تعمل على أتمتة المهام في مركز البيانات والسحابة باستخدام البرامج النصية. خادم سيناريو خاص مسؤول عن تنفيذها. يمكننا القول أن Rundeck هي "ابنة" النظام الأساسي لإدارة تطبيقات ControlTier. انفصلت Rundeck عن ذلك في عام 2010 واكتسبت وظائف جديدة - على سبيل المثال ، التكامل مع Puppet و Chef و Git و Jenkins.

يستخدم هذا النظام شركة والت ديزني و Salesforce و Ticketmaster . لكن المشروع مناسب أيضًا للشركات الناشئة. وذلك لأن Rundeck مرخص بموجب ترخيص Apache v2.0. علاوة على ذلك ، فإن الأداة سهلة الاستخدام.

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

يمكنك أيضًا العثور على أدلة سريعة حول إعداد الأداة عبر الإنترنت:




GoCD


أداة مفتوحة ( GitHub ) بأتمتة التحكم في إصدار التعليمات البرمجية. تم تقديمه في عام 2007 من قبل ThoughtWorks - ثم أطلق على المشروع اسم Cruise.

AutoCD Autoder ، وهي خدمة الأنساب Ancestry ، و Barclaycard ، مزود بطاقة الائتمان ، تعمل مع GoCD. ومع ذلك ، فإن ربع مستخدمي الأداة من الشركات الصغيرة .

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


صور - مات Wildbore - Unsplash

إذا كنت ترغب في تجربة GoCD في الممارسة ، فيمكنك العثور على الوثائق الرسمية على موقع المشروع. يمكنك أيضًا التوصية بـ GoCD Developer Blog مع أدلة التخصيص كمصدر للمعلومات الإضافية.



جنكينز


جنكينز معروف على نطاق واسع ويعتبر نوعًا من المعايير في مجال CI \ CD - بالطبع ، بدونه لن يكون هذا الاختيار كاملاً. ظهرت الأداة في عام 2011 ، لتصبح فرعًا لمشروع Hudson من Oracle.

اليوم ، يعملون مع جنكينز في ناسا ، نينتندو ، وغيرها من المنظمات الكبيرة. ومع ذلك ، فإن أكثر من 8 ٪ من المستخدمين هم مجموعات صغيرة تصل إلى عشرة أشخاص. المنتج مجاني تمامًا ويتم توزيعه بموجب ترخيص MIT . ومع ذلك ، سيكون عليك استضافة Jenkins وتكوينه بنفسك - فهو يتطلب خادمًا مخصصًا.

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


لدى جنكينز بعض مشاريع الجهات الخارجية المفيدة. الأول هو تكوين البرنامج المساعد رمز . يعمل ذلك على تبسيط إعداد Jenkins مع واجهات برمجة التطبيقات القابلة للقراءة والتي يمكن فهمها حتى للمسؤولين دون معرفة عميقة بالأداة. والثاني هو نظام سحاب جنكينز X. إنه يسرع تسليم التطبيقات المنشورة على بنية تحتية لتكنولوجيا المعلومات على نطاق واسع من خلال أتمتة بعض المهام الروتينية.



Buildbot


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

مؤلف الأداة كان المهندس برايان وارنر (براين وارنر). تم استبداله اليوم بمبادرة لجنة Buildbot ، والتي تضم ستة مطورين.

يستخدم Buildbot بواسطة مشاريع مثل LLVM و MariaDB و Blender و Dr.Web. ولكنه يستخدم أيضًا في المشروعات الصغيرة مثل wxWidgets و Flathub. يدعم النظام جميع VCS الحديثة ولديه إعدادات بناء مرنة من خلال استخدام Python لوصفها. ستساعدك الوثائق الرسمية والبرامج التعليمية للجهات الخارجية في التعامل معها جميعًا ، على سبيل المثال ، يوجد دليل سريع من IBM .



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



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

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


All Articles