دليل الدمى: بناء سلاسل DevOps باستخدام أدوات مفتوحة المصدر

دليل الدمى: بناء سلاسل DevOps باستخدام أدوات مفتوحة المصدر
بناء أول سلسلة DevOps لك في خمس خطوات للمبتدئين.

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

مقدمتي إلى DevOps

اعتدت العمل مع السحابة في Citi Group وتطوير تطبيق ويب IaaS لإدارة البنية التحتية السحابية لـ Citi ، لكنني دائمًا ما كنت مهتمًا بكيفية تحسين سلسلة التطوير وتحسين الثقافة بين المطورين. أوصى جريج لافندر ، كبير موظفي التكنولوجيا لدينا للهندسة السحابية والبنية التحتية ، بهذا الكتاب لي. مشروع "فينيكس". يشرح مبادئ DevOps بشكل جميل ويقرأ مثل الرواية.

يوضح الجدول الموجود في الخلف عدد المرات التي تطرح فيها الشركات إصدارات جديدة:

دليل الدمى: بناء سلاسل DevOps باستخدام أدوات مفتوحة المصدر

كيف تمكنت Amazon و Google و Netflix من طرح الكثير؟ والأمر بسيط: لقد اكتشفوا كيفية إنشاء سلسلة DevOps مثالية تقريبًا.

كانت الأمور مختلفة جدًا بالنسبة لنا في Citi حتى تحولنا إلى DevOps. ثم كان لدى فريقي بيئات مختلفة ، لكننا قمنا بالتسليم إلى خادم التطوير يدويًا. كل المطورين لديهم امكانية توصل الى وحدة خدمة تطوير واحدة فقط على أساس IBM WebSphere Application Server Community Edition. مع محاولة التسليم في وقت واحد ، "سقط" الخادم ، وفي كل مرة كان علينا أن نتفاوض "بشكل مؤلم" فيما بيننا. لم يكن لدينا أيضًا تغطية كافية للكود بالاختبارات ، وعملية التسليم اليدوي التي تستغرق وقتًا طويلاً ، ولا توجد طريقة لتتبع تسليم الكود بمساعدة بعض المهام أو متطلبات العميل.

كان من الواضح أن هناك حاجة ماسة إلى القيام بشيء ما ، ووجدت زميلًا له نفس التفكير. قررنا إنشاء أول سلسلة DevOps معًا - فقد أنشأ جهازًا افتراضيًا وخادم تطبيق Tomcat ، واعتنت بـ Jenkins ، والتكامل مع Atlassian Jira و BitBucket ، بالإضافة إلى تغطية التعليمات البرمجية مع الاختبارات. كان المشروع ناجحًا: أتمتة سلسلة التطوير بالكامل ، وحققنا ما يقرب من 100 ٪ من وقت التشغيل على خادم التطوير ، وتمكنا من مراقبة تغطية الكود وتحسينها من خلال الاختبارات ، ويمكن ربط فرع Git بتسليم Jira وإصداره. وتقريبًا كانت جميع الأدوات التي استخدمناها لبناء سلسلة DevOps مفتوحة المصدر.

في الواقع ، تم تبسيط السلسلة ، لأننا لم نطبق حتى التكوينات المتقدمة باستخدام Jenkins أو Ansible. لكننا نجحنا. ربما يكون هذا نتيجة للمبدأ باريتو (المعروف أيضًا باسم قاعدة 80/20).

وصف موجز لسلسلة DevOps و CI / CD

DevOps لها تعريفات مختلفة. تتضمن DevOps ، مثل Agile ، تخصصات مختلفة. لكن معظمهم يوافقون على التعريف التالي: DevOps هي طريقة ، أو دورة حياة ، لتطوير البرمجيات ، والمبدأ الرئيسي لها هو خلق ثقافة يكون فيها المطورون والموظفون الآخرون "على نفس الطول الموجي" ، والعمل اليدوي مؤتمت ، كل شخص يفعل أفضل ما لديه ، ويزداد تواتر الولادات ، ويزيد إنتاجية العمل ، ويزيد المرونة.

في حين أن الأدوات وحدها لا تكفي لإنشاء بيئة DevOps ، إلا أنها لا غنى عنها. أهمها التكامل المستمر والتسليم المستمر (CI / CD). هناك مراحل مختلفة في السلسلة لكل بيئة (على سبيل المثال ، التطوير) ، INT (التكامل) ، TST (الاختبار) ، QA (ضمان الجودة) ، UAT (اختبار قبول المستخدم) ، STG (التحضير) ، PROD (الاستخدام)) ، المهام اليدوية مؤتمتة ، يمكن للمطورين إنتاج رمز الجودة ، وتسليمه ، ويمكن إعادة بنائه بسهولة.

توضح هذه الملاحظة كيفية إنشاء سلسلة DevOps في خمس خطوات ، كما هو موضح في الصورة أدناه ، باستخدام أدوات مفتوحة المصدر.

دليل الدمى: بناء سلاسل DevOps باستخدام أدوات مفتوحة المصدر

دعونا ننكب على العمل.

الخطوة 1: منصة CI / CD

بادئ ذي بدء ، أنت بحاجة إلى أداة CI / CD. Jenkins هي أداة CI / CD مفتوحة المصدر ومرخصة من قبل معهد ماساتشوستس للتكنولوجيا ومكتوبة بلغة جافا والتي عملت على تعميم حركة DevOps وأصبحت المعيار الفعلي لـ CICD.

ما هو جينكينز؟ تخيل أن لديك لوحة تحكم سحرية لمجموعة متنوعة من الخدمات والأدوات. تعتبر أداة CI / CD من تلقاء نفسها عديمة الفائدة ، ولكن مع الأدوات والخدمات المختلفة ، تصبح قوية للغاية.

بالإضافة إلى Jenkins ، هناك العديد من الأدوات الأخرى مفتوحة المصدر ، اختر أيًا منها.

دليل الدمى: بناء سلاسل DevOps باستخدام أدوات مفتوحة المصدر

إليك ما تبدو عليه عملية DevOps باستخدام أداة CI / CD

دليل الدمى: بناء سلاسل DevOps باستخدام أدوات مفتوحة المصدر

لديك أداة CI / CD في المضيف المحلي ، ولكن ليس هناك الكثير لتفعله حتى الآن. دعنا ننتقل إلى الخطوة التالية.

الخطوة 2: تعيين الإصدار

أفضل طريقة (ويمكن القول إنها الأسهل) لاختبار سحر أداة CI / CD هي دمجها مع أداة إدارة التحكم بالمصادر (SCM). لماذا تحتاج إلى التحكم في الإصدار؟ لنفترض أنك تقدم تطبيقًا. يمكنك كتابتها بلغة Java أو Python أو C ++ أو Go أو Ruby أو JavaScript أو أي لغة أخرى عبارة عن عربة وعربة صغيرة. ما تكتبه يسمى شفرة المصدر. في البداية ، خاصة إذا كنت تعمل بمفردك ، يمكنك حفظ كل شيء في دليل محلي. ولكن مع نمو المشروع وانضمام المزيد من الأشخاص ، تحتاج إلى طريقة لمشاركة تغييرات التعليمات البرمجية ولكن مع تجنب التعارضات عند دمج التغييرات. وتحتاج أيضًا إلى استعادة الإصدارات السابقة بطريقة ما دون استخدام النسخ الاحتياطية واستخدام طريقة النسخ واللصق لملفات التعليمات البرمجية.

وهنا بدون SCM في أي مكان. يقوم SCM بتخزين الكود في المستودعات ، وإدارة إصداراته ، وتنسيقه بين المطورين.

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

دليل الدمى: بناء سلاسل DevOps باستخدام أدوات مفتوحة المصدر

إليك ما يبدو عليه خط أنابيب DevOps بعد إضافة SCM.

دليل الدمى: بناء سلاسل DevOps باستخدام أدوات مفتوحة المصدر

يمكن لأداة CI / CD أتمتة تحميل وتنزيل التعليمات البرمجية المصدر وتعاون الفريق. ليس سيئًا؟ ولكن الآن كيف تصنع تطبيقًا عمليًا من هذا ، محبوبًا من قبل مليارات المستخدمين؟

الخطوة 3: بناء أداة الأتمتة

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

استخدم أداة أتمتة البناء. أيًا كانت الأداة التي تختارها ، ستقوم بتجميع الشفرة بالتنسيق الصحيح وأتمتة التنظيف والتجميع والاختبار والتسليم. تختلف أدوات البناء حسب اللغة ، ولكن الخيارات مفتوحة المصدر التالية مستخدمة بشكل شائع.

دليل الدمى: بناء سلاسل DevOps باستخدام أدوات مفتوحة المصدر

ممتاز! الآن دعنا ندرج ملفات تكوين أداة البناء الآلي في التحكم بالمصادر حتى تقوم أداة CI / CD ببنائها.

دليل الدمى: بناء سلاسل DevOps باستخدام أدوات مفتوحة المصدر

تشعر بشعور جيد. ولكن أين كل هذا ليتم طرحه الآن؟

الخطوة 4: خادم تطبيق الويب

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

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

هناك العديد من خوادم تطبيقات الويب المفتوحة.

دليل الدمى: بناء سلاسل DevOps باستخدام أدوات مفتوحة المصدر

لدينا بالفعل سلسلة DevOps تعمل تقريبًا. عمل عظيم!

دليل الدمى: بناء سلاسل DevOps باستخدام أدوات مفتوحة المصدر

من حيث المبدأ ، يمكنك التوقف هنا ، ثم يمكنك التعامل معها بنفسك ، لكن الأمر يستحق الحديث عن جودة الشفرة.

الخطوة 5: اختبار التغطية

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

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

أطر الاختبار

دليل الدمى: بناء سلاسل DevOps باستخدام أدوات مفتوحة المصدر

أدوات مع نصائح الجودة

دليل الدمى: بناء سلاسل DevOps باستخدام أدوات مفتوحة المصدر

تمت كتابة معظم هذه الأدوات والأطر لـ Java و Python و JavaScript لأن C ++ و C # مملوكتان (على الرغم من أن GCC مفتوحة المصدر).

لقد طبقنا أدوات تغطية الاختبار ، والآن يجب أن يبدو خط أنابيب DevOps مثل الصورة في بداية البرنامج التعليمي.

خطوات إضافية

حاويات

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

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

بالنسبة للحاويات ، عادةً ما يتم أخذ Docker و Kubernetes ، على الرغم من وجود خيارات أخرى.

دليل الدمى: بناء سلاسل DevOps باستخدام أدوات مفتوحة المصدر

اقرأ مقالات حول Docker و Kubernetes على الموقع Opensource.com:

أدوات أتمتة البرمجيات الوسيطة

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

فيما يلي بعض الخيارات الخاصة بأدوات أتمتة البرامج الوسيطة المفتوحة:

دليل الدمى: بناء سلاسل DevOps باستخدام أدوات مفتوحة المصدر

التفاصيل في المقالات Opensource.com:

والآن ماذا؟

هذه ليست سوى غيض من فيض. يمكن لسلسلة DevOps أن تفعل أكثر من ذلك بكثير. ابدأ باستخدام أداة CI / CD وشاهد ما يمكنك أتمتة لجعل عملك أسهل. لا تنسى فتح أدوات الاتصال للتعاون الفعال.

فيما يلي بعض مقالات DevOps الجيدة للمبتدئين:

يمكنك أيضًا دمج DevOps مع أدوات Open Agile:

المصدر: www.habr.com

إضافة تعليق