ما هو جينكينز؟ التاريخ والعمارة وخطوط الأنابيب والفوائد
نشرت: 2020-05-01بالنسبة للفرق التي ترغب في دمج المراحل المختلفة من DevOps ، يمكنها القيام بذلك من خلال التكامل المستمر. هناك العديد من الأدوات المتاحة للمساعدة في إجراء هذا التكامل. واحدة من أكثرها شعبية هي جينكينز. ومع ذلك ، قبل أن تقفز إلى البندقية وتبدأ في تشغيل هذه الأداة ، يجب أن تفهم ما هي بالضبط ، وكيف تعمل ، وما هي الميزات التي تأتي معها ، وما هي المزايا التي تقدمها على الأدوات الأخرى المماثلة.
عندما تم إطلاق Jenkins ، كان مجرد أداة تكامل مستمرة مفتوحة المصدر. ومع ذلك ، بعد التحديثات الأخيرة ، أصبحت أداة قادرة على أداء وظيفتين - التكامل المستمر والتسليم المستمر. إنها الآن أداة تساعد في تنظيم نشر التطبيق أيضًا. تهدف هذه المدونة إلى تغطية جميع التفاصيل التي يجب أن تعرفها عن Jenkins قبل البدء في استخدامها في مشاريع تكنولوجيا المعلومات الخاصة بك.
جدول المحتويات
تاريخ جنكينز
تمامًا كما لدينا الكثير من القصص الشيقة حول تطوير العديد من التقنيات والأدوات على مر السنين ، لدينا واحدة لجينكينز أيضًا. يعود إلى عام 2004 ، كان Kohsuke Kawaguchi ، مطور Jenkins ، يعمل مع Sun Microsystems كمطور Java.
لم يكن كاواجوتشي يعلم أن المستقبل لديه شيء خاص جدًا يخبئه له. في ذلك الوقت ، شاركت كاواجوتشي في العديد من المشاريع التنموية. لم يكن يحب كسر البنيات بسبب فشل الكود. جعله هذا يبحث عن شيء يمكن أن يساعده في معرفة ما إذا كانت الشفرة ستعمل أم لا قبل أن تلتزم بالمستودع.
قاد هذا الفضول الطريق إلى تطوير خادم أتمتة اسمه Hudson. في عام 2011 ، كان هناك نزاع سيئ السمعة بين مجتمع المصادر المفتوحة Hudson المستقل وأوراكل ، التي لديها الآن Sun Microsystems تحت مظلتها.
أدى هذا النزاع إلى شوكة ، والتي سميت جينكينز. استمر كل من جينكينز وهدسون في الوجود لفترة طويلة. ومع ذلك ، كان جينكينز هو الخيار المفضل. تم إغلاق مشروع Hudson في يناير 2020. ولا يزال Jenkins نشطًا.

ما هو جينكينز؟
يمكن وصف Jenkins كأداة أتمتة تستخدمها فرق DevOps التي تتطلع إلى تحقيق التكامل المستمر في مشاريعها. إنه برنامج مفتوح المصدر مبني في Java. يتم استخدامه خلال دورة حياة تطوير البرامج.
ليس فقط في التطوير والاختبار ، ولكن في النشر أيضًا. يسمح للمطورين بدمج التغييرات بسهولة كبيرة في مشاريعهم. تُستخدم Jenkins أيضًا للتسليم المستمر لمشاريع البرامج.
تعرف على المزيد حول: حل سيناريوهات الوقت الفعلي باستخدام DevOps
كيف يعمل التكامل المستمر؟
يعد التكامل المستمر (CI) جزءًا لا يتجزأ من عملية تطوير البرامج. يمكن أن تتكون من عدد من المهام المختلفة ، بما في ذلك استخدام الوظائف الفريدة في المستودع ، وتطوير الميزات ، وإصلاح الأخطاء من بين أمور أخرى.
تعتبر أداة التكامل المستمر ، مثل Jenkins ، رائعة في تحديد المشكلات المتعلقة بمصادر التطبيق الحالية وتوفر استجابة سريعة عن طريق التحقق من عملية التكامل بمساعدة ميزات الإنشاء والاختبار المؤتمتة.
جاء التكامل المستمر من نموذج البرمجة المرتبط بمنهجية Agile. ومع ذلك ، لا يزال من الممكن تطبيق المفهوم على جميع نماذج البرمجة ذات الطبيعة التكرارية.
يمكن لنماذج الشلال وغيرها من مناهج التطوير أن تستفيد أيضًا مما يقدمه التكامل المستمر. غالبًا ما تعمل CI جنبًا إلى جنب مع التسليم المستمر (CD) لتقديم كود قابل للتنفيذ للإنتاج بوتيرة أسرع وبطريقة آلية. المدرجة أدناه هي ممارسات CI الشائعة:
- إلتزام الكود العادي
- بناء التدريج
- آلة بناء مخصصة للتكامل
- ردود الفعل المستمرة
- تصنيف اختبار المطور
يمكن إطلاق التكامل المستمر بأي تردد تراه مناسبًا مع مراعاة مشروعك وشركتك. لذلك ، فإن الشركات التي تستخدم CI لديها إصدارات منتظمة أكثر من تلك التي تستخدم عمليات تطوير البرامج التقليدية.
بدأت المزيد والمزيد من الشركات في استخدام CI بسبب حقيقة واحدة بسيطة - حتى أدنى تغيير في الكود يمكن أن يؤدي إلى إنشاء بنية جديدة. يمكن لـ CI تقديم ملاحظات مستمرة أثناء تطوير البرنامج.
يساعد هذا فرق DevOps على التخلص من الأخطاء في كل مرحلة من مراحل التطوير. كما أنه يكتشف المشكلات في وقت مبكر جدًا من عملية التطوير. هذا يجعل هذه المشكلات أقل تعقيدًا ، وليست معقدة للغاية ، ويسهل التعامل معها.
قراءة: أهم أدوات DevOps في السوق
كيف يعمل التسليم المستمر؟
يعد التسليم المستمر جزءًا من عملية تطوير البرامج التي تمكنك من المضي قدمًا في التطوير بطريقة تجعلك دائمًا على استعداد لإصدار البرنامج للإنتاج. في ما يلي بعض المرات التي يكون فيها التسليم المستمر مثمرًا بشكل إضافي:
1. يضمن فريق DevOps أن البرنامج جاهز للنشر حتى عندما يكون تطوير الميزات قيد التقدم
2. البرنامج جاهز للنشر خلال دورة تطوير البرنامج
3. يعد النشر من خلال وسائل الضغط على الزر حقيقة واقعة لإصدارات مختلفة من البرامج في بيئات مختلفة حسب الطلب
كيف يمكن تحقيق التسليم المستمر؟ الشرط الأول هو أن البرنامج يجب أن يخضع بالفعل للتكامل المستمر. يجب على فريق التطوير بعد ذلك بناء الملفات التنفيذية وإجراء اختبارات عليها لاكتشاف الأخطاء أو الأخطاء. أيضًا ، من المهم جدًا اختبار الملفات التنفيذية في بيئات الإنتاج المختلفة للتأكد من أن البرنامج جاهز للإرسال إلى الإنتاج في أي وقت. لهذا ، وجود نشر أمر ضروري.
تسمح أتمتة Jenkins للشركات بتسريع عملية تطوير البرامج بشكل كبير. إن Jenkins قادرة على دمج أنواع مختلفة من عمليات دورة حياة تطوير البرمجيات ، بما في ذلك البناء والاختبار والنشر وغيرها. المكونات الإضافية مهمة جدًا لضمان التكامل المستمر. إذا كنت تبحث عن إضافة أداة جديدة إلى Jenkins ، فسيتعين عليك أولاً التأكد من تثبيت مكون إضافي لها.
قراءة: أسئلة وأجوبة مقابلة جينكينز
ما هو خط أنابيب جنكينز؟
خط أنابيب Jenkins عبارة عن مجموعة من الوظائف أو المهام أو الأحداث المرتبطة ببعضها البعض في تسلسل. بمعنى آخر ، إنها مجموعة من المكونات الإضافية التي تتيح دمج خطوط أنابيب التسليم المستمر وتنفيذها بسهولة. تعمل الأتمتة القابلة للتوسيع لدعم خط أنابيب في إنشاء خطوط توصيل معقدة وبسيطة في شكل رمز وبمساعدة لغة خاصة بالمجال أو DSL.
دعونا الآن نناقش قليلاً حول خطوط أنابيب التسليم المستمر وكيفية عملها. السمة الأساسية لخط أنابيب Jenkins هي أن كل حدث أو مهمة أو وظيفة يشغلها تعتمد بطريقة أو بأخرى على واحد أو أكثر من هذه الأحداث أو الوظائف أو المهام. تتميز خطوط أنابيب التسليم المستمر بحالات مختلفة ، مثل الإنشاء والاختبار والنشر والإصدار. كل هذه الدول مرتبطة ببعضها البعض.
خط أنابيب التسليم المستمر هو تسلسل تعمل فيه أحداث كل حالة من هذه الحالات. وهو تعبير آلي يعالج العمليات المطلوبة للحصول على برنامج التحكم في الإصدار. يجب أن تمر جميع التغييرات التي يتم إجراؤها على البرنامج عبر العديد من العمليات المعقدة قبل إصدار البرنامج. تضمن هذه العملية أيضًا تطوير البرنامج بطريقة قابلة للتكرار وموثوق بها وتتضمن مراحل اختبار ونشر متعددة ، يتقدم البرنامج خلالها.
JenkinsFile هو ملف نصي يستخدم لتعريف خطوط أنابيب Jenkins. غالبًا ما يتم استخدام JenkisFile لتنفيذ خطوط الأنابيب في شكل رمز ، ويتم تعريف هذه العملية بأكملها باستخدام DSL. يمكنك أيضًا استخدام JenkinsFile لتدوين الخطوات التي يجب اتباعها لتشغيل خطوط أنابيب Jenkins. المذكورة أدناه هي بعض فوائد استخدام JenkinsFile:

- يجعل مراجعة الكود على خط الأنابيب أمرًا سهلاً.
- يمكن أن يساعدك في تنفيذ طلبات السحب لجميع خطوط الأنابيب التي قمت بإنشائها لفروع مختلفة.
- إنه المصدر الوحيد والمصدر الوحيد لخطوط الأنابيب الخاصة بك التي يمكن تعديلها بواسطة مستخدمين مختلفين.
- يمكن أن يساعدك في إجراء تدقيق على خط أنابيب Jenkins الخاص بك.
يتم تعريف JenkinsFile باستخدام نوعين من بناء الجملة
التركيب التعريفي لخطوط الأنابيب
إنشاء خطوط الأنابيب أسهل بكثير مع بناء الجملة هذا. يتميز بتسلسل هرمي راسخ يساعد في إنشاء خطوط الأنابيب. يوفر لك طرقًا بسيطة للتحكم في كل جانب من جوانب تنفيذ خطوط الأنابيب.
بناء جملة خطوط الأنابيب المبرمجة
يستخدم المنفذ خفيف الوزن ويعمل على Jenkins master. لديها مجموعة الموارد الخاصة بها التي تستخدمها لتحويل خطوط الأنابيب إلى أوامر ذرية. كما يتضح تمامًا من تعريفاتهم ، فإن كلا اللغتين يختلفان تمامًا عن بعضهما البعض. ليس هذا فحسب ، بل يتم تعريفهم أيضًا بطرق مختلفة.
لماذا يجب عليك استخدام خط أنابيب جينكينز؟
تقوم Jenkins بأتمتة عملية تطوير البرامج من خلال قدرات التكامل المستمر. يمكنك استخدام حالات استخدام مختلفة لإنشاء عدد من وظائف الأتمتة ثم استخدام خط أنابيب Jenkins لتشغيلها جميعًا. المدرجة أدناه هي بعض الأسباب لاستخدام خط أنابيب Jenkins:
- نظرًا لأنه يتم تنفيذه في شكل رمز ، يمكن أن يكون لخط أنابيب Jenkins عدد من المستخدمين الذين يمكنهم تحرير العملية وتنفيذها.
- وهو يدعم المشاريع التي يكون حجمها أكبر من المعتاد. من الممكن تشغيل عدة مشاريع في وقت واحد أو استخدام خطوط الأنابيب في حلقة.
- إنها قوية. لا داعي للقلق إذا تمت إعادة تشغيل الخادم الخاص بك في ظل ظروف غير متوقعة. سيتم استئناف خط أنابيب Jenkins تلقائيًا.
- يمكن إيقاف عملية خط الأنابيب مؤقتًا وعدم استئنافها حتى تتلقى إدخال المستخدم.
جينكينز للهندسة المعمارية
في هذا القسم ، سنركز مناقشتنا على كيفية مساعدة Jenkins للمطورين والمختبرين؟ دعونا نناقش تكامل Jenkins المستمر لفهم ذلك.
في البداية ، يقوم المطورون بإجراء جميع التغييرات التي يريدونها في الكود المصدري. يتم تخزين هذا الرمز في مستودع Git. يتم اتباع التعديل عند تنفيذ هذه التغييرات. يقوم خادم Jenkins بعمله ويتتبع التغييرات التي تم إجراؤها على الملفات المخزنة في المستودع. تم الكشف عن التغييرات التي قام بها المطورون بواسطة خادم Jenkins. يسحب Jenkins بعد ذلك هذه التغييرات ويبدأ العمل على تصميم جديد للبرنامج بناءً على تلك التغييرات ،
يتلقى الفريق المعني إشعارًا في حالة فشل الإنشاء. من ناحية أخرى ، إذا كان البناء ناجحًا ، ينشره Jenkins على خادم الاختبار. يتم إخطار المطورين بشأن نتائج تطوير واختبار البناء. تستمر هذه الدورة في التكرار.
الآن بعد أن فهمنا كيفية عمل Jenkins ، سيكون من الأسهل بالنسبة لنا أن نحدث الفرق في عملها وتلك الخاصة بالطرق التي تم استخدامها للإصدار والنشر قبلها.
لذا ، قبل ظهور جينكينز في المقدمة ، تضمنت العملية بناء واختبار كود المصدر الكامل. لم يكن تحديد الأخطاء والأخطاء وإصلاحها على الإطلاق من المهام السهلة التي كانت تؤخر تسليم البرامج. كان على المطورين الانتظار وقتًا طويلاً للحصول على نتائج الاختبار. كان النشر يحدث يدويًا.
بعد Jenkins ، يتم اختبار جميع التغييرات في التعليمات البرمجية المصدر بمجرد إجرائها. المطورين غير مطالبين بالمرور عبر كود المصدر الكامل لتحديد الأخطاء والأخطاء. أصبح إطلاق إصدارات البناء أكثر تكرارا الآن. المطورين على علم بنتائج الاختبار لجميع التغييرات والالتزامات. بمجرد تنفيذ التغييرات ، يمكن لخادم Jenkins البدء في تنفيذ العمليات الأخرى.
توزيع جينكينز للهندسة المعمارية
يدير Jenkins المباني بمساعدة العمارة السيد والعبد. تتواصل الوحدات الرئيسية والعبد مع بعضها البعض باستخدام بروتوكول IP / TCP. هنا تنزيل صغير حول كيفية عمل كل شيء.
سيد جنكينز
هذا هو الخادم الأساسي لـ Jenkins. إنه يتعامل مع عدد من المهام التي تشمل على سبيل المثال لا الحصر جدولة وظائف الإنشاء ، وتسجيل نتائج الإنشاء وتقديمها ، وإرسال الإنشاءات إلى العبيد للتنفيذ ، ومراقبة جميع العبيد في وضع عدم الاتصال وكذلك عبر الإنترنت ، وغيرها. Master Jenkins قادر على تنفيذ وظائف البناء مباشرة.
جنكينز العبد
يتم تشغيله على الخادم البعيد. يتبع خادم Jenkins طلبات سيد Jenkins وهو متوافق مع جميع أنظمة التشغيل. يتم تنفيذ أعمال البناء التي يرسلها السيد بواسطة العبد. يمكن تكوين المشروع بشكل مناسب لاختيار آلة تابعة معينة.
فوائد جنكينز
1. Jenkins هي أداة مفتوحة المصدر سهلة التركيب والاستخدام. لا تحتاج إلى مكونات إضافية لاستخدامه
2. إنه مجاني ومتاح للاستخدام مع منصات مختلفة ، مثل Windows و Linux و macOS وغيرها
3. يتم استخدامه على نطاق واسع ، لذا فإن العثور على الدعم في المجتمعات عبر الإنترنت ليس مشكلة كبيرة
4. تقوم Jenkins بأتمتة جميع أعمال التكامل. تعد مشكلات التكامل نادرة ، وبالتالي فهي تساعد في توفير الوقت والمال طوال دورة حياة المشروع.
5. من السهل تكوين وتوسيع وتعديل. يسمح بالتوليد الفوري للاختبارات وبناء وأتمتة ونشر التعليمات البرمجية على منصات مختلفة
6. يمكن تكوين Jenkins لتشغيل مفاهيم CI و CD بشكل صحيح
7. يمكنه بسهولة اكتشاف المشكلات وإصلاحها. البرنامج جاهز دائمًا للإصدار المفاجئ
8. يدعم مجموعة متنوعة من المكونات الإضافية ، مما يسمح بمرونة أفضل
9. يساعد في اكتشاف الأخطاء في وقت مبكر جدًا ، وبالتالي توفير الكثير من الوقت والعمل الشاق للمطورين
زيادة الإنتاجية مع ملحقات Jenkins
فيما يلي بعض المكونات الإضافية الأكثر شيوعًا التي يستخدمها المطورون.

1. البرنامج المساعد لتوليد الوظائف
يعد الحفاظ على وظائف المشروع في مؤسسة متنامية أو أكبر أمرًا صعبًا بعض الشيء ، وذلك لأن المطورين غالبًا ما يعملون في فروع وإصدارات مختلفة. بينما أنت على استعداد للسماح للمطورين بإنشاء وظائف بأنفسهم ، فأنت لست متأكدًا مما إذا كان سيتمكنون من تلبية معايير الشركة. هذه معضلة كبيرة. يتيح لك هذا المكون الإضافي تحديد القوالب التي يمكن لمطوريك استخدامها لإنشاء الوظائف. يمكنك تعطيل الوصول إلى التكوين للقالب باستخدام ملحق التفويض المستند إلى الدور.
2. Global build stats plugin
إن معرفة قدرتك وإمكانياتك واستخدامك الحالي أمر مهم للغاية لإعداد نفسك لمتطلبات النظام أو تخطيط السعة. يجب أن تكون على دراية بعدد البنيات التي تحدث على أساس منتظم. تحتاج أيضًا إلى معرفة الوقت المطلوب لإصدار البنيات. يوفر لك هذا البرنامج المساعد جميع المعلومات الضرورية المطلوبة للإجابة على كل هذه الأسئلة.
3. GitLab / GitHub منشئ طلب السحب
يمكنك استخدام هذا النموذج لأتمتة عملية مراجعة الكود في GitLab / GitHub إلى مستوى أعلى من المعتاد. لكل طلب سحب ، يمكنك أن تتوقع من هذا المكون الإضافي ليس فقط تشغيل الإصدار ولكن أيضًا إنشاء النتائج ومشاركة الحالة مع طلب سحب أو جمع تحليل ثابت مهم. يخبر هذا المكون الإضافي الكثير عن الكود الذي يجب دمجه. من الممكن أيضًا تحديد الدمج التلقائي في بعض الظروف باستخدام هذا البرنامج المساعد.
خاتمة
تقدم هذه المدونة فكرة جيدة عن كيفية عمل Jenkins وكيف يمكن استخدامها لتنفيذ أفكار مشاريع مختلفة باستخدام CI / CD. إنها واحدة من أكثر أدوات DevOps المفضلة هذه الأيام والتي تجعل الأمور سهلة للغاية من خلال واجهتها الفعالة والمكونات الإضافية.
إذا كنت مهتمًا بمعرفة المزيد حول تطوير المكدس الكامل ، فراجع دبلوم PG الخاص بـ upGrad & IIIT-B في تطوير البرامج الكامل المكدس المصمم للمهنيين العاملين ويقدم أكثر من 500 ساعة من التدريب الصارم ، وأكثر من 9 مشروعات ، والمهام ، حالة خريجي IIIT-B ، ومشاريع التخرج العملية العملية والمساعدة في العمل مع الشركات الكبرى.