تكامل Jenkins Git - مفيد لكل محترف DevOps



تناقش هذه المدونة تكامل Git مع Jenkins. كما يناقش مزايا دمج Git مع Jenkins مع العرض التوضيحي.

هو بالتأكيد غير مكتمل بدون جينكينز. Jenkins مع Git هو مزيج رائع. لذا في هذا المقال سأتحدث عن تكامل Jenkins Git ومزاياه. المؤشرات التي سنغطيها هي كما يلي:

فلنبدأ بموضوعنا الأول.





ما هو Git - لماذا Git جاء إلى حيز الوجود؟

نعلم جميعًا أن 'الضرورة أم كل الاختراعات'. وبالمثل ، ظهرت Git لتلبية بعض الضروريات التي واجهها المطورون قبل Git. لذلك ، دعونا نعود خطوة إلى الوراء لمعرفة كل شيء عن أنظمة التحكم في الإصدارات (VCS) وكيف ظهر Git.

التحكم في الإصدار هي إدارة التغييرات على المستندات وبرامج الكمبيوتر والمواقع الكبيرة وغيرها من مجموعات المعلومات.



تابلوه خطوة بخطوة تعليمي

هناك نوعان من VCS:

  • نظام التحكم المركزي في الإصدار (CVCS)

  • نظام التحكم في الإصدار الموزع (DVCS)



VCS مركزي

يستخدم نظام التحكم في الإصدار المركزي (CVCS) خادمًا مركزيًا لتخزين جميع الملفات وتمكين تعاون الفريق. إنه يعمل على مستودع واحد يمكن للمستخدمين الوصول إليه مباشرة إلى خادم مركزي.

يرجى الرجوع إلى الرسم البياني أدناه للحصول على فكرة أفضل عن CVCS:

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

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

على الرغم من أنه يبدو من الملائم جدًا الاحتفاظ بمستودع واحد ، إلا أن له بعض العيوب الرئيسية. ومنهم:

  • إنه غير متوفر محليًا مما يعني أنك بحاجة دائمًا إلى الاتصال بشبكة لتنفيذ أي إجراء.

  • نظرًا لأن كل شيء مركزي ، في أي حال من الأحوال فإن تعطل الخادم المركزي أو تلفه سيؤدي إلى فقدان بيانات المشروع بالكامل.

هذا هو المكان الذي يحل فيه الموزع VCS المشكلة.

الموزعة VCS

لا تعتمد هذه الأنظمة بالضرورة على خادم مركزي لتخزين جميع إصدارات ملف المشروع.في VCS الموزعة ، يمتلك كل مساهم نسخة محلية أو 'نسخة' من المستودع الرئيسي. يحتفظ الجميع هنا بمستودع محلي خاص بهم يحتوي على جميع الملفات والبيانات الوصفية الموجودة في المستودع الرئيسي.

ستفهمه بشكل أفضل بالرجوع إلى الرسم البياني أدناه:

كما ترى في الرسم البياني أعلاه ، يحتفظ كل مبرمج بمستودع محلي بمفرده ، وهو في الواقع نسخة أو نسخة من المستودع المركزي على محرك الأقراص الثابتة. يمكنهم الالتزام وتحديث مستودعهم المحلي دون أي تدخل.

يمكنهم تحديث مستودعاتهم المحلية ببيانات جديدة من الخادم المركزي من خلال عملية تسمى ' سحب 'وتؤثر على التغييرات في المستودع الرئيسي من خلال عملية تسمى' إدفع 'من مستودعهم المحلي.

الآن دعونا نحاول التعرف على تعريف Git.

  • Git هي أداة تحكم في الإصدار الموزعة تدعم تدفقات العمل الموزعة غير الخطية من خلال توفير ضمان البيانات لتطوير برامج الجودة. أدوات مثل Git تتيح الاتصال بين التطوير وفريق العمليات.

  • عادة عندما تقوم بتطوير مشروع كبير يكون لديك عدد كبير من المتعاونين. لذلك من المهم جدًا أن يكون لديك اتصال بين المتعاونين أثناء إجراء تغييرات في المشروع.

  • تلعب رسائل الالتزام في Git دورًا مهمًا للغاية في التواصل بين الفريق. بصرف النظر عن الاتصال ، فإن أهم سبب لاستخدام Git هو أن لديك دائمًا نسخة ثابتة من الكود معك.

  • ومن ثم ، يلعب Git دورًا حيويًا في النجاح في DevOps.

ما هو جينكينز؟

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

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

يحقق Jenkins التكامل المستمر بمساعدة المكونات الإضافية. تسمح المكونات الإضافية بدمج مراحل DevOps المختلفة. إذا كنت ترغب في دمج أداة معينة ، فأنت بحاجة إلى تثبيت المكونات الإضافية لتلك الأداة. على سبيل المثال ، مشروع Git و Maven 2 و Amazon EC2 وناشر HTML وما إلى ذلك.

تشمل مزايا Jenkins ما يلي:

  • إنها أداة مفتوحة المصدر تحظى بدعم كبير من المجتمع.

  • سهل التثبيت.

  • يحتوي على أكثر من 1000 مكون إضافي لتسهيل عملك. في حالة عدم وجود مكون إضافي ، يمكنك ترميزه ومشاركته مع المجتمع.

  • إنه مجاني.

  • تم تصميمه باستخدام Java وبالتالي فهو محمول على جميع المنصات الرئيسية.

أنت تعرف الآن كيف تتغلب Jenkins على عيوب SDLC التقليدية. يوضح الجدول أدناه المقارنة بين 'قبل وبعد Jenkins'.

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

لماذا يتم استخدام Jenkins و Git معًا؟

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

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

مزايا:

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

مثال:

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

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

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

تجريبي

سنرى هنا كيفية دمج Git مع Jenkins. هناك 5 خطوات يجب عليك اتباعها:

1. أنشئ نموذجًا للبرنامج:

يمكنك إنشاء أي برنامج نموذج تريده مثل Java أو Python أو أي برنامج آخر. هنا سوف نكتب بسيطة برنامج بايثون الذي يطبع Hello، World!

2. أنشئ وظيفة Jenkins:

  • هنا أولا تحتاج إلى ابدأ جنكينز باستخدام موجه الأوامر.

  • لذلك ، تحتاج أولاً إلى الانتقال إلى موقع Jenkins على نظامك واستخدام الأمر java -jar jenkins.war

  • بعد تشغيل هذا الأمر ، افتح متصفح الويب وانتقل إلى صفحة Jenkins الرئيسية باستخدام الرابط المضيف المحلي: 8080 . هذا هو رقم المنفذ الافتراضي.

  • افتح الصفحة الرئيسية لـ Jenkins بواسطة إدخال اسم المستخدم وكلمة المرور.

  • لإنشاء مشروع انقر فوق عنصر جديد وادخل اسم المشروع واختر مشروع فري ستايل . انقر فوق موافق.

3. أضف هذا البرنامج إلى Github:

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

  • استخدم الأمر إضافة بوابة. لإضافة الملف إلى منطقة التدريج من دليل العمل.

  • قم الآن بإضافة الملف إلى المستودع المحلي باستخدام الأمر git الالتزام -m 'تمت إضافة ملف demo.py' .

  • الآن عليك إدفع هذا الملف إلى المستودع البعيد. للقيام بذلك ، انتقل إلى حساب GitHub الخاص بك وقم بإنشاء مستودع عام جديد. الآن انسخ موقع هذا المستودع وانتقل إلى git bash terminal. هنا اكتب الأمر بوابة إضافة الأصل . منذ الآن قمت بالاتصال بالمستودع البعيد ، يمكنك الآن دفع الكود الخاص بك هناك باستخدام الأمر بوابة دفع -u سيد الأصل. للتحقق من ذلك ، انتقل إلى حساب GitHub وقم بتحديث الصفحة. سترى الملف مضاف هناك.

4. أضف Git Plugin في Jenkins:

  • على الصفحة الرئيسية لـ Jenkins انتقل إلى إدارة جنكينز .

  • انقر بعد ذلك على إدارة الإضافات . تحقق هنا من الحصول على المكون الإضافي Git في القسم المثبت. إذا لم يكن متوفرًا هنا ، فابحث عنه في القسم المتاح وقم بتنزيله.

5. تكوين وظيفة Jenkins لتشغيل البناء:

  • انتقل إلى المشروع في Jenkins الذي أنشأناه في الخطوة 2. هنا في قسم إدارة كود المصدر ، حدد بوابة وأدخل رابط المستودع العام الذي قمت بإنشائه في الخطوة 3. التالي في قسم مشغلات البناء ، انقر فوق خيار استطلاع SCM . هنا في جزء الجدول ، عليك إدخال خمس علامات نجمية مفصولة بمسافة. هذا ليس سوى بناء جملة كرون لعملك. هذا يعني أن Jenkins سيتحقق من أي تغييرات في الكود المصدري كل دقيقة وإذا كان هناك أي تغيير فسيؤدي إلى إنشاء Jenkins.

    فرز الصفيف في c ++
  • انقر فوق تطبيق ثم بعد ذلك حفظ . التالي في الصفحة الرئيسية لمشروعك انقر فوق بناء الآن . سيؤدي هذا إلى تشغيل المشروع وفي إخراج وحدة التحكم ، يمكنك رؤية إخراج برنامجك لحالة مهمة Jenkins الخاصة بك. إذا كان كل شيء على ما يرام ، فسيتم عرضه بتنسيق نجاح .

هكذا يتم تنفيذ Jenkins Git Integration. بهذا نكون قد وصلنا إلى نهاية هذا المقال عن Jenkins Git Integration. أتمنى أن تكون قد استمتعت بهذا المقال.

الآن بعد أن فهمت ماذا جينكينز جيت تكامل هو ، تحقق من هذا من Edureka ، شركة تعليمية موثوقة عبر الإنترنت مع شبكة تضم أكثر من 250.000 متعلم راضٍ منتشرين في جميع أنحاء العالم تساعد الدورة التدريبية لشهادة Edureka DevOps المتعلمين على فهم ما هو DevOps واكتساب الخبرة في عمليات وأدوات DevOps المختلفة مثل Puppet و Jenkins و Nagios و Ansible و Chef و Saltstack و GIT لأتمتة خطوات متعددة في SDLC.

لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات وسنعاود الاتصال بك