أنماط CI / CD والأنماط المضادة. الجزء 1

مرحبا بالجميع! الأصدقاء ، في اليوم الأخير من الشتاء ، سنطلق بثًا جديدًا في الدورة التدريبية "ممارسات وأدوات DevOps" . تحسبا لبداية الدورة التدريبية ، فإننا نشارك معك الجزء الأول من المقالة: "أنماط CI / CD وأنماط مضادة".



تتكون مهمة خط أنابيب النشر من ثلاثة أجزاء:

  • الرؤية: جميع جوانب سلسلة الإمداد - الإنشاء والنشر والاختبار والإصدار - مرئية لأعضاء الفريق وتسهيل التعاون.
  • ردود الفعل: يتعرف أعضاء الفريق على المشكلات بمجرد حدوثها ، بحيث يمكن إصلاحها في أسرع وقت ممكن.
  • النشر المستمر: باستخدام عملية مؤتمتة بالكامل ، يمكنك نشر وإصدار أي إصدار من البرامج في أي بيئة.



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

1.1 إدارة التكوين - الأنماط والأنماط المضادة

1.1.1 برامج الجهات الخارجية المخصصة

  • النمط: قم بتقييم واستخدام برنامج تابع لجهة خارجية يمكن تهيئته بسهولة ونشره وأتمتة.
  • Anti-pattern: برنامج لا يمكن تهيئته خارجيًا. برنامج بدون واجهة API أو سطر أوامر يتطلب أمرًا لاستخدام واجهة المستخدم الرسومية.

1.1.2 دليل التكوين

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

1.1.3 الخط الرئيسي

  • نمط: التقليل من عمليات الدمج ، والسيطرة على عدد من الخط النشط من خلال العمل في الخط الرئيسي.
  • مكافحة الأنماط: عدة فروع لكل مشروع.

1.1.4 الدمج اليومي

  • النمط: يتم تطبيق التغييرات التي يتم الالتزام بها في الخط الرئيسي على جميع الفروع على الأقل يوميًا.
  • مكافحة الأنماط: دمج كل التكرارات مرة واحدة في الأسبوع أو أقل من مرة واحدة في اليوم.

1.1.5 التكوين الآمن

  • النمط: تخزين معلومات التكوين في مكان آمن يمكن الوصول إليه عن بُعد ، على سبيل المثال ، في قاعدة بيانات أو دليل أو سجل.
  • Anti-patterns: افتح كلمات مرور النص و / أو كمبيوتر واحد أو مورد مشترك.

1.1.6 مستودع

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

1.1.7 الفروع قصيرة العمر

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

1.1.8 بيئة الفريق

  • النمط: تحقق من مستودع المشروع من خلال التحكم في الإصدار وتشغيل أمر واحد لإنشاء التطبيق ونشره على أي بيئة متاحة ، بما في ذلك التطوير المحلي.
  • Anti-pattern: اطلب من المطور تعريف وتكوين متغيرات البيئة. إجبار المطور على تثبيت العديد من أدوات الإنشاء / النشر.

1.1.9 طريقة واحدة للتشغيل

  • النمط: إدارة تكوين النظام بأكمله - المصادر ، التكوين ، البيئة ، البيانات. يمكن تتبع أي تغييرات لمراجعة محددة في نظام التحكم في الإصدار.
  • مكافحة الأنماط: أجزاء من النظام لا تملك نسخة. غير قادر على العودة إلى إعداد برنامج النظام السابق.

1.2 CI التكامل المستمر - أنماط ومكافحة الأنماط

1.2.1 بناء العتبة

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

1.2.2 الالتزامات المتكررة

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

1.2.3 ردود الفعل المستمرة

  • النمط: إرسال تعليقات تلقائية من نظام CI إلى جميع أعضاء الفريق متعدد الوظائف.
  • المضادة للأنماط: لا يتم إرسال الإخطارات. يتم تجاهل الإشعارات ؛ يرسل نظام CI المعلومات إلى أي شخص لا يمكن استخدامه.

1.2.4 التكامل المستمر

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

1.2.5 مبدأ "خط التوقف"

  • النمط: إصلاح جميع أخطاء تسليم البرامج بمجرد ظهورها ؛ "اوقف الخط". لا أحد يقوم بالتحقق من التجميع المكسور ، لأن تحديده له الأولوية القصوى.
  • Anti-pattern: التجميعات تظل مقطوعة لفترة طويلة ، وبالتالي تمنع المطورين من التحقق من كود العمل.

1.2.6 الجمعية المستقلة

  • النمط: تتم كتابة البرامج النصية للبناء منفصلة عن IDE. يتم تنفيذ هذه البرامج النصية بواسطة نظام CI بحيث يتم تنفيذ التجميع مع كل تغيير.
  • مكافحة الأنماط: يعتمد البناء التلقائي على تكوين IDE. غير قادر على بدء التجميع من سطر الأوامر.

1.2.7 لوحات المعلومات المرئية

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

نهاية الجزء الاول.

هنا هذه المواد. يمكنك قراءة استمرار الترجمة هنا ، والآن نحن في انتظار تعليقاتك ونحن ندعوك إلى ندوة عبر الإنترنت مفتوحة ، والتي ستعقد الليلة.

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


All Articles