كيفية استخدام GitLab لتنفيذ مهام متزامنة (الجزء 1)

فلنتحدث عن GitLab.

منصة الويب لتكنولوجيا DevOps التي تقدم GitLab مجموعة كاملة من الأدوات لتطوير البرمجيات والتحكم في الإصدارات والتكامل المستمر والتسلسل (CI/CD) والتواصل. تستند إلى Git، نظام التحكم في الإصدارات الموزع الشهير، وتوفر حلاً مركزياً لإدارة المستودعات.

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

الميزات الرئيسية لـ GitLab

  1. نظام التحكم في الإصدارات في GitLab، الذي يستند إلى Git، يسمح للمطورين بتتبع التغييرات بكفاءة وإنشاء فروع وإدارة الدمج.
  2. يوفر GitLab نظام إدارة مستودعات مركزي يسمح للمبرمجين بتخزين وتنظيم وإدارة قاعدة بيانات التعليمات البرمجية بفعالية.
  3. تتبع المشكلات: باستخدام نظام تتبع المشكلات المدمج في GitLab، يمكن للفرق إنشاء وتتبع المشكلات وتعيينها لأعضاء الفريق وتتبع تقدمها.
  4. يوفر GitLab خط CI/CD قوي يضمن تشغيل البناء والاختبار وإجراءات النشر تلقائيًا. يسمح للفرق بدمج التغييرات في التعليمات البرمجية على الفور، وإجراء اختبارات تلقائية، ونشر التطبيقات.
  5. أدوات التعاون مثل مراجعات الكود والتعليقات والمحادثات المباشرة تسهل على أعضاء الفريق التعاون وتقديم مداخلات حول تغييرات الكود.
  6. تتضمن GitLab أدوات إدارة المشاريع مثل المعالم الزمنية واللوحات والكانبان ولوحات الأجيال المرنة، مما يسمح للفرق بالتخطيط وتتبع تقدم مشاريعهم بنجاح.
  7. الأمن وتحديد الوصول: لضمان سلامة الكود والحرص على محاربة المخاطر الأمنية المحتملة، يقدم GitLab عدد من القدرات الأمنية، مثل تحديد الوصول على أساس الأدوار وموافقات طلب الدمج وإدارة الإصابات.

الشكل 1: معمارية خط الانتاج المستمر والتسلسلي في GitLab

يأتي GitLab في جميع أنواعه من الإصدار المجاني للمجتمع إلى الإصدار المتميز بمزيد من الوظائف وخيارات الدعم. يمكن استخدامه كخدمة قائمة على السحابة من خلال GitLab.com أو مستضافة على الأمام.

GitLab التكامل المستمر والتسلسلي المستمر (CI/CD)

يقدم GitLab CI/CD منصة قوية للتكامل المستمر والتسلسلي المستمر من قبل GitLab، وهي أداة الإدارة الويبية لمستودعات Git. يمكن للفرق تشغيل كل خطوة في دورة الحياة المتكاملة لتطوير البرمجيات باستخدام GitLab CI/CD، من التزكية إلى النشر، من خلال مجموعة من الخطوط الملائمة.

يتم تقديم نظرة عامة على عملية GitLab CI/CD أدناه:

  • تكوين GitLab: قبل البدء، يجب أن يتم إعداد مستودع GitLab وتكوينه. يمكنك إما إعداد مثيل مستضاف لنفسك من GitLab أو استخدام الإصدار المستضاف في السحابة.
  • .gitlab-ci.yml: يتألف الدماغ وراء GitLab CI/CD من ملف .gitlab-ci.yml. يوجد هذا الملف، الذي يصف خط الانتاج والتوسيع المستمر، في الجذع الأساسي لمستودع مشروعك. يتكون من عدة خطوات ومهام وتعليمات تحدد كيفية إنشاء وفحص وإصدار الكود. يتم كتابته بلغة YAML.
  • خطوط الانتاج: في GitLab CI/CD، تمثل خطوط الانتاج مجموعة من المراحل والمهام التي تحدد الإجراءات التي يجب اتخاذها لفرع أو تسمية معينة في مستودعك. يمكنك تشغيل عمليات الاختبار والنشر تلقائيًا عندما يحدث التزامن أو طلب الدمج.
  • المهام والمراحل: تعكس المراحل خطوات الخط الانتاج، بما في ذلك البناء والاختبار والنشر. تحدد واحدة أو أكثر من المهام – وحدات العمل الفردية – داخل كل مستوى. يمكن للمهام العمل على مشغلين منفصلين (مثل الأجهزة الافتراضية أو الحاويات أو حزم Kubernetes)، إما بشكل متزامن أو تسلسلي.
  • المشغلون: يستخدم GitLab CI/CD المشغلون لإجراء المهام المدرجة في الخط الانتاج. يقدم GitLab المشغلون المشتركة والمشغلون المخصصة التي يمكنك إعدادها على بنيتك التحتية. سيتم تشغيل البناء والاختبارات دائمًا لأن مشغلي GitLab يراقبون المهام الجديدة ويقومون بتشغيلها في بيئات معزولة آمنة.
  • القطع الناتجة والتقارير: يتيح لك GitLab CI/CD حفظ القطع الناتجة التي تم إنتاجها داخل الخط الانتاج، مثل نتائج تغطية الكود وتقارير الاختبارات أو الملفات الناتجة عن البناء. يمكنك تنزيل هذه القطع واستخدامها للنشر أو التحقيق الإضافي.
  • التكامل والنشر: توفر GitLab CI/CD العديد من التوافقات لنشر رمزك على مختلف البيئات، بما في ذلك مجموعات Kubernetes، وبيئات الغوغاء السحابية مثل Azure أو AWS أو Google Cloud، أو حتى خوادم يخصصها المستخدم. لدينا الخيار في إنشاء سيرتك الخاصة للنشر أو استخدام قوالب النشر المحددة مسبقًا من GitLab.
  • المراقبة والتعليقات: تمنحك GitLab CI/CD الوصول إلى معلومات حول حالة وتطور خوادم البت الخاصة بك عبر واجهة مستخدم GitLab. يمكننا فحص السجلات، ومتابعة كيفية تشغيل كل عمل، والحصول على إشعارات عندما ينجح أو يفشل تشغيل خوادم البت.

يشمل GitLab CI/CD مجموعة متنوعة من القدرات، مثل التخزين المؤقت، ومتغيرات البيئة، وإدارة السرية، وأكثر من ذلك، لتمكينك من تخصيص وتحسين سير عمل CI/CD الخاصة بك لتلبية احتياجاتك.

الأجمالي، توفر GitLab CI/CD تسهيلًا لعملية إنشاء واختبار ونشر البرمجيات، مما يسمح للفرق بإنشاء تطبيقات عالية الجودة بشكل أسرع وأكثر كفاءة.

GitLab CI: المعالجة المتوازية

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

A great approach to decrease deployment times and give your development and quality assurance teams faster feedback is to run your automated deployments in parallel as part of our Gitlab CICD pipeline. Running your deployment in parallel cuts down on wait times and makes it possible to send bug fixes and upgrades to production more quickly without sacrificing the number of tests you run.


الشكل 2 تنفيذ GitLab المتزامن للوظائف

تنفيذ أتمتة النشر الموازي باستخدام GitLab CICD بسيط للغاية، ولكن هناك بعض المعلمات التوجيهية التي يجب أن تكون على دراية بها. سنتطرق لكل خطوة في إعداد التنفيذ الموازي لتسريع النشر في هذا البرنامج التعليمي وكيفية التواصل بنتائجه مع فريق الإدارة الموارد الهندسية (SRE). فلنبدأ!

الشكل3 GitLab – النشر الموازي مع المناطق

سيرة عمل النشر الموازي في GitLab

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

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

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

بافتراض أننا ننفذ ما يقرب من 100 إلى 200 خطوط عمليات كل يوم، نريد التحقيق في ما إذا كان بإمكاننا تحسين عمليتنا لتعديل كيفية تشغيل المهام المتواصلة لفترات طويلة.

الشكل 4 GitLab – تنفيذ المهام بالتسلسل

في هذا الجزء، استكشفت تنفيذ المهام بالتسلسل. في الجزء الثاني من هذه السلسلة، ستتعلم كيف حللنا مشكلة الانسداد بتشغيل المهام بالتوازي.

Source:
https://dzone.com/articles/how-to-use-gitlab-for-simultaneous-execution-of-jo