استكشاف التحكم بالمصادر والتحكم بالإصدار
استخدام التحكم في المصدر والإصدار هو ممارسة DevOps أساسية. كما أنه شرط أساسي لممارسات مثل التكامل المستمر والبنية الأساسية كتعلم برمجي، وكلاهما أمر بالغ الأهمية للوصول إلى إمكانات DevOps الكاملة. يجب على المؤسسة في نموذج السيناريو الخاص بنا مراجعة استراتيجيتها الحالية لتطوير البرامج التعاونية والانتقال إلى نموذج التحكم في الإصدار الموزع مثل Git، خاصة بالنظر إلى خططها لاستخدام GitHub لإدارة دورة حياة البرامج الخاصة بها. ومع ذلك، يتطلب هذا فهما سليما لمبادئ التحكم في الإصدار والمصادر وفوائدها، والتي سنغطيها هنا.
التحكم بالمصادر والتحكم بالإصدار
غالبا ما تستخدم المصطلحات التحكم بالمصادر والتحكم في الإصدار بالتبادل، وفي العديد من السياقات، تشير إلى نفس المفهوم. بشكل عام، يرتبط كلاهما بممارسة إدارة التغييرات على التعليمات البرمجية في بيئة تطوير مشتركة. ومع ذلك، قد تواجه سيناريوهات أكثر دقة حيث يكون معناها مختلفا قليلا. في هذه السيناريوهات، يعين التحكم بالمصادر نظاما يدير التغييرات في ملفات التعليمات البرمجية المصدر بينما التحكم بالإصدار يتضمن إدارة التغيير لأي نوع ملف لأغراض تتجاوز التعليمات البرمجية المصدر وحدها. من الآن فصاعدا، من أجل الاتساق، سنستخدم مصطلح التحكم في الإصدار لتمثيل مستودعات البرامج التعاونية المستندة إلى Git المتوفرة في GitHub وAzure DevOps.
ما هي فوائد التحكم بالإصدار؟
يتعقب التحكم بالإصدار التغييرات التي تطرأ على الملفات ضمن نطاق إدارته. يوفر هذا مجموعة واسعة من المزايا:
المحفوظات وتعقب الإصدارات: لديك القدرة على مراجعة محفوظات التغييرات على أي ملف، بما في ذلك القدرة على تحديد وقت حدوث كل تغيير فردي وما هو نطاقه. يوفر هذا أيضا إمكانية التتبع، عادة عن طريق ربط كل مجموعة من التغييرات بمعرف فريد.
التراجع والاسترداد: إذا كان هناك خطأ أو مشكلة، يمكنك بسهولة إرجاع التغييرات لاسترداد إصدار العمل المعروف من الملف المتأثر.
التفريع والدمج: إذا كنت بحاجة إلى توسيع وظائف التعليمات البرمجية الحالية عن طريق إضافة ميزة أخرى أو إصلاح خطأ تم اكتشافه حديثا، يمكنك إنشاء ما يسمى بالفرع، والذي يسمح لك بالعمل بشكل مستقل مقابل قاعدة التعليمات البرمجية الموجودة. الفرع الجديد مطابق في البداية لفرع الرئيسي الذي يستضيف التعليمات البرمجية الحالية. بمجرد إكمال التغييرات، يمكنك دمج الفرع الجديد مع الفرع الرئيسي. في حين أن هذا قد لا يزال يؤدي إلى تعارضات (إذا قرر مطور آخر تعديل نفس مجموعة الملفات في هذه الأثناء عبر فرع آخر)، فإن نطاقها محدود ويمكن عادة تحديدها وحلها بسهولة.
التعاون والتنمية المتوازية: تسهل أحكام حل التعارض المستكملة بالتفريع والدمج وجود العديد من المطورين الذين يعملون على نفس قاعدة التعليمات البرمجية، ما يزيد من الكفاءة. مع أنظمة التحكم الموزعة، مثل Git، من الممكن حتى تأليف التعليمات البرمجية في وضع قطع الاتصال. ويشمل التعاون أيضا استعراض النظراء المتبادلين لطلبات السحب، وتعزيز تبادل المعرفة والشفافية.
التنفيذ التلقائي: يعد التحكم بالإصدار جزءا أساسيا من التكامل المستمر والنشر التلقائي. يمكن تشغيل الإنشاء والاختبار التلقائي تلقائيا كلما تم دفع إصدار جديد من التعليمات البرمجية إلى مستودع التحكم بالإصدار أو دمجه مع الفرع الرئيسي. يمكن نشر إصدارات مختلفة من التعليمات البرمجية في بيئات مختلفة.