سؤال

أنا جديد نسبيا لخوادم التكامل المستمر. لقد كنت أستخدم Gitlab (v6.5) لفترة من الوقت لإدارة المشاريع، لكنني أود أن أبدأ باستخدام Gitlab CI لضمان اختبارات تمرير واستماد النجاح.

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

إذا كنت تقوم بتشغيل الاختبارات على خادم CI، فأنت تفعل ذلك خطأ!

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

من نفس المنصب:

أي شخص يمكن أن يدفع إلى فرع تم اختباره على خادم CI يمكن أن يمتلك بسهولة هذا الخادم.

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

أود حقا أن أفهم هذا أكثر قليلا - بالتأكيد قبل أن أقوم بتطبيقها في الإنتاج. هل هناك طريقة ممكنة بعد بطريقة آمنة لتنفيذ المتسابقين Gitlab و Gitlab CI و Gitlab CI جميع على نفس الجهاز؟

هل كانت مفيدة؟

المحلول

من الناحية المثالية، كنت بخير تشغيل Gitlab-Ci و Gitlab على نفس المضيف. قد يختلف الآخرون معي، لكن orechestrator (عقدة gitlab-ci) لا يفعل أي من الرفع الثقيل. له الوظيفة الصارمة meta io وتخزين النتائج.

مع القول، سأضع العدائين على نفس الجهاز. المتسابقين Gitlab-CI مكثفة في الموارد وسوف يتم تنفيذها في إمالة كاملة على أي آلة تضعها عليها. إنها فكرة جيدة إذا كنت تعمل في الإنتاج لوضع هذه على مثيلات بقعة للمساعدة في كبح بعض تكاليف تشغيل المباني الجائعة في وحدة المعالجة المركزية / الذاكرة في كثير من الأحيان - ولكن يمكن أن تكون غير عملية لأن مثيلاتك ليست دائما في هذه المرحلة.

كان لدي بعض النجاح مع وضع عداء Gitlab-CI في المحيط الرقمي على مثيلات صغيرة. أنا لا أقوم بعمل مباني ضخمة، لكن الفكرة هي توزيع حمل العمل ضد العديد من الخوادم حتى خادم CI الخاص بك:

  • يستجيب
  • يمكن أن يبني بناء مشروع متعدد مرة واحدة
  • يمكن ممارسة العزلة (هذا نوع من التعسفي في هذه القائمة)

وعدد قليل من الأشياء الأخرى التي لا تأتي إلى الذهن على الفور.

آمل أن يساعد هذا!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top