هل سمعت عن CI / CD ولكنك غير متأكد ما هو؟
من الناحية المثالية ، يتم تعيين مهندسي البرمجيات لكتابة التعليمات البرمجية التي يجب إرسالها إلى بيئة الإنتاج بحيث يمكن للأعمال التي تحتاج إلى المنتج استخدامها. من أجل إرضاء العمل (غالبًا ما يطلق عليه المستخدمون / العملاء) ، من المهم أن تكون المنتجات خالية من الأخطاء.
النهج النموذجي الذي يتبعه مهندسو البرمجيات هو العمل في الفروع وإنشاء طلب سحب يقوم بتحديث الفرع الرئيسي بالتحديث الجديد الذي تم إجراؤه. لقد اعتمدنا ممارسة كتابة الاختبارات كطريقة للتأكد من أن التغييرات الجديدة لا تسبب أخطاء. عندما يعمل المطورون على ميزة في معظم الحالات ، فإنهم غالبًا لا ينشئون طلب سحب حتى يتم الانتهاء من هذه الميزة بالكامل. ما يحدث عندما يكونون مستعدين هو ذلك ؛
إذا كنت في هذا الموقف من قبل ، فستوافق على أنه يمكن أن يكون صعبًا – لا أحد يريد قضاء يوم عمله بهذا الشكل.
ماهو الحل؟
التكامل المستمر
لمنع السيناريوهات التي ذكرتها أعلاه ؛ يمكن للفرق الهندسية استخدام الممارسة التي تسمى التكامل المستمر – كما يوحي الاسم ، فهي تتضمن التكامل المستمر لتغييرات التعليمات البرمجية التي يقوم بها المطورون في الفرع / المستودع المشترك. يجب أن يخضع الكود المراد دمجه لاختبار تم التحقق منه للتأكد من أنه لا يكسر التطبيق. فقط عندما يتم تشغيل الاختبار يتم دمجه
لفهم هذا ، دعنا نتخيل سيناريو حقيقي حيث يوجد فريق من 10 مطورين. ينشئ هؤلاء المطورون فرعًا محليًا حيث يكتبون رمزًا لتنفيذ ميزات معينة. بدلاً من إرسال طلبات السحب عند الانتهاء تمامًا من الميزة ، يختارون إرسال طلبات السحب أثناء قيامهم بإجراء تغييرات صغيرة. سيكون أحد الأمثلة على هذا التغيير هو إنشاء نموذج جديد ، بشرط أن يعمل المطور على وظيفة تسمح للمستخدمين بإدارة المهام الفردية في التطبيق. بدلاً من انتظار اكتمال ميزة المهمة ، لاتباع نمط تكامل مستمر ، يدفع المطور هذا التغيير الصغير (مقارنةً بما يعمل عليه) وينشئ طلب سحب ليتم دمجه مع الكود.
قبل دمج هذا التغيير الجديد ، يجب إجراء سلسلة من الاختبارات.
تستخدم فرق هندسة البرمجيات أدوات مثل Travis CI لإنشاء عمليات واختبارات التكامل هذه. باستخدام أدوات مثل هذه ، يتم إجراء الاختبارات تلقائيًا ، بحيث يتم تشغيلها بمجرد إرسال طلب سحب إلى الفرع المستهدف المحدد أثناء التثبيت.
يتم إنشاء نتائج الاختبارات ويمكن للمطور الذي أنشأ طلبات السحب رؤية النتائج وإجراء التغييرات اللازمة. فوائد التمسك بهذا النمط لدمج الكود بأقل قدر ممكن وإجراء اختبار تم التحقق منه للتشغيل هي ؛
الشيء المهم الذي يجب ملاحظته حول هذه الممارسة هو أنها تشجع الفريق على الالتزام بشكل متكرر بالكود في الفرع الرئيسي. سيكون القيام بذلك غير فعال إذا لم ينسحب أعضاء الفريق الآخرون من الفرع الرئيسي لتحديث مستودعهم المحلي.
أنواع الاختبارات
عند كتابة الاختبارات التي ستكون جزءًا من عملية التكامل ، إليك بعض الاختبارات التي يمكن تنفيذها في هذه العملية:
من المهم ملاحظة أنك لست بحاجة إلى اختبار كل هذه الأشياء ، فقد يكون عددًا قليلاً منها قد تمت تغطيته بالفعل في الكود الذي كتبه المطور.
أدوات للتكامل المستمر
دون الخوض في التعمق ، إليك أدوات يمكنك البدء في استخدامها في مشاريعك الحالية أو الجديدة ؛
إذا كنت جديدًا على Jenkins ، أقترح عليك أن تأخذ دورة Udemy هذه لتعلم CI باستخدام Java و .NET.
التوزيع المستمر
كم سيكون الأمر جيدًا إذا كانت الميزة التي تقوم بإنشائها موجودة في المستودع لأسابيع أو شهور قبل نشرها في بيئة الإنتاج. بقدر ما يمكن للفرق الهندسية العمل على دمج التغييرات الصغيرة في الفرع الرئيسي عند حدوثها ، يمكنهم أيضًا دفع هذه التغييرات إلى بيئة الإنتاج في أقرب وقت ممكن.
الهدف عند ممارسة النشر المستمر هو نقل التغييرات إلى المستخدمين بمجرد أن يقوم المطورون بدمج هذه التغييرات في الفرع الرئيسي.
كما في حالة التكامل المستمر ، عند استخدام النشر المستمر ، يتم إعداد الاختبارات والفحوصات الآلية لضمان التحقق من التغييرات المدمجة حديثًا. يتم التنفيذ فقط عند الموافقة على هذه الاختبارات.
لكي يستفيد الفريق من تمرين النشر المستمر ، يجب أن يكون لديه ما يلي ؛
تمنحك أدوات التكامل المستمر المذكورة أيضًا الوظيفة اللازمة لإعداد نظام نشر مستمر. هناك الكثير منهم يمكنك أن تقرأ عنه أيضًا.
استنتاج
تعد إنتاجية فريق التطوير أمرًا بالغ الأهمية لنجاح الشركة. للتأكد من أنها منتجة ، يجب اعتماد الممارسات التي تشجع على ذلك. التكامل والتنفيذ المستمر هي أمثلة على هذه الأساليب.
من خلال التكامل المستمر ، يمكن للفرق دفع أكبر قدر ممكن من التعليمات البرمجية يوميًا. وبتحقيق ذلك ، يصبح من السهل توزيع التغييرات المضافة حديثًا على المستخدم في أسرع وقت ممكن. يسمح تنفيذ هذه التغييرات بتعليقات المستخدمين. في نهاية المطاف ، سيكون النشاط التجاري قادرًا على الابتكار بناءً على التعليقات الواردة ، وهو أمر مفيد للجميع.
يمكنك أيضًا معرفة كيفية توسيع وتحسين CI / CD.
إذا كنت مطورًا ومهتمًا بتعلم CI / CD ، فراجع هذه الدورة الرائعة.
هل استمتعت بقراءة المقال؟ ماذا عن المشاركة مع العالم؟