توصيات لاستخدام التكامل المستمر

ينطبق على توصية قائمة التحقق من التميز التشغيلي ل Azure Well-Architected Framework:

OE:04 تحسين عمليات تطوير البرامج وضمان الجودة باتباع الممارسات المثبتة في الصناعة للتطوير والاختبار. لتعيين دور واضح، قم بتوحيد الممارسات عبر مكونات مثل الأدوات والتحكم بالمصادر وأنماط تصميم التطبيق والوثائق وأدلة الأنماط.

الدليل ذي الصلة: تحسين سرعة | البناءتوحيد الأدوات والعمليات

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

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

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

استراتيجيات التصميم الرئيسية

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

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

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

يمكن أن يساعدك التكامل المستمر في تقديم برامج عالية الجودة بسرعة أكبر من خلال تنفيذ الإجراءات التالية:

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

البنية الأساسية لبرنامج ربط العمليات التجارية للتكامل المستمر

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

تتضمن البنية الأساسية لبرنامج ربط العمليات التجارية للتكامل المستمر جزءا من البرامج (غالبا ما تكون مستضافة على السحابة) توفر:

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

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

توفر العديد من الحلول، مثل Azure Pipelines أو GitHub Actions، قدرات مسارات التكامل المستمر.

تكامل التحكم في المصدر

يعد تكامل البنية الأساسية لبرنامج ربط العمليات التجارية للتكامل المستمر مع نظام التحكم بالمصادر مفتاحا لتمكين مساهمات التعليمات البرمجية للخدمة الذاتية السريعة.

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

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

تظهر الصورة التالية التكامل بين GitHub والبنية الأساسية لبرنامج ربط العمليات التجارية لـ Azure DevOps. في هذا المثال، يؤدي إنشاء طلب سحب إلى تشغيل مسار Azure DevOps. تظهر حالة البنية الأساسية لبرنامج ربط العمليات التجارية في طلب السحب.

لقطة شاشة لشارة حالة Azure DevOps في مستودع GitHub.

اختبار التكامل

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

تظهر القصاصة البرمجية التالية خطوة اختبار من البنية الأساسية لبرنامج ربط العمليات التجارية لـ DevOps Azure. تحتوي الخطوة على مهمتين:

  • تستخدم المهمة الأولى إطار عمل اختبار Python شائعا لتشغيل اختبارات CI. تتواجد هذه الاختبارات في التحكم بالمصادر إلى جانب تعليمة Python البرمجية. تنتقل نتائج الاختبار إلى ملف يسمى test-results.xml.
  • تستهلك المهمة الثانية نتائج الاختبار وتنشرها في مسار Azure DevOps كتقرير متكامل.
- script: |
    pip3 install pytest
    pytest azure-vote/azure-vote/tests/ --junitxml=junit/test-results.xml
    continueOnError: true

- task: PublishTestResults@2
    displayName: 'Publish Test Results'
    inputs:
    testResultsFormat: 'JUnit'
    testResultsFiles: '**/test-results.xml'
    failTaskOnFailedTests: true
    testRunTitle: 'Python $(python.version)'

تعرض الصورة التالية نتائج الاختبار التي تظهر في مدخل Azure DevOps.

لقطة شاشة لاختبارات البنية الأساسية لبرنامج ربط العمليات التجارية Azure DevOps في مدخل Azure DevOps.

الاختبارات الفاشلة

يجب أن تمنع الاختبارات الفاشلة التوزيع مؤقتا وتؤدي إلى تحليل أعمق لما حدث. يجب أن تؤدي الاختبارات الفاشلة أيضا إلى تحسين الاختبارات أو تحسين التغيير الذي تسبب في فشل الاختبارات.

شارات نتائج CI

يظهر العديد من المطورين أن جودة التعليمات البرمجية الخاصة بهم عالية من خلال عرض شارة حالة في مستودعهم. تظهر الصورة التالية شارة Azure Pipelines معروضة على ملف readme لمشروع مفتوح المصدر في GitHub.

لقطة شاشة لشارة Azure Pipelines على ملف readme في GitHub.

تسهيل Azure

Azure DevOps عبارة عن مجموعة من الخدمات التي تساعدك على بناء ممارسة تطوير تعاونية وفعالة ومتسقة.

توفر Azure Pipelines خدمات الإنشاء والإصدار لدعم التكامل المستمر والتسليم المستمر (CI/CD) لتطبيقاتك.

يتيح GitHub للإجراءات ل Azure أتمتة عمليات CI/CD. يتكامل مباشرة مع Azure لتبسيط عمليات التوزيع. يمكنك إنشاء مهام سير عمل تقوم بإنشاء واختبار كل طلب سحب في المستودع الخاص بك، أو التي تنشر طلبات السحب المدمجة في الإنتاج.

تعرف على كيفية إنشاء مسار تكامل مستمر باستخدام إما GitHub أو Azure DevOps:

تعرف على كيفية عرض الشارات في مستودعاتك:

قائمة التحقق من التميز التشغيلي