جودة DevOps / المتوسط: أنظمة تحقق موثوقة / الدرس 9
البيئات المؤقتة وعقود الجاهزية
اجعل بيئات الاختبار المؤقتة قابلة للتكرار ومحدودة وآمنة التنظيف دون خلط فشل البدء بعيوب المنتج.
في هذه الصفحة
أهداف الدرس
- عرّف وصف بيئة ودورة حياة محدودة.
- افصل الجاهزية وزرع البيانات والتنفيذ والتنظيف.
حدد البيئة كسياق للدليل
توجد البيئة المؤقتة لغرض اختبار محدود ثم تستبدل أو تزال. قد تكون حاويات محلية أو نطاقاً معزولاً أو بيئة مراجعة. لا يعني المؤقت العزل أو الأمان أو التمثيل تلقائياً. سجل الحزمة والاعتماديات والمخطط والإعداد والشبكة والبيانات والمالك. حدد السلوك الممثل والمستبدل. لا يفسر رابط معاينة هل فُحص المرشح أو نشر قديم أو خدمات مشتركة.
استخدم صحة الخدمة المحلية كمدخل جاهزية
يمكن لإعداد Compose محلي تعريف فحص صحة قاعدة وجعل بدء التطبيق ينتظره. يؤكد الفحص قبول العملية لمسبار الجاهزية لا صحة الترحيل أو الأعمال. افصل جاهزية التطبيق والمخطط. يستخدم الجزء مواصفة Docker Compose وكلمة تجريبية لقاعدة محلية اصطناعية فقط. ليس إعداد إنتاج ولا تشغل الدورة حاويات. راجع إصدارات الصور وبصماتها الثابتة في المشروع.
services:
db:
image: postgres:16
environment:
POSTGRES_PASSWORD: local-lab-only
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 2s
timeout: 2s
retries: 15
app:
build: .
depends_on:
db:
condition: service_healthy
يتطلب Dockerfile محلياً قائماً وتنفيذ Compose متوافقاً. وسم الصورة الرئيسي توضيحي ومتغير؛ يسجل وصف الاختبار الجيد بصمة معتمدة. لا تعرض منافذ أو اعتمادات حقيقية، وجاهزية القاعدة أول مرحلة فقط.
ميّز صحة العملية عن جاهزية الاختبار
قد يسبق المنفذ المفتوح اكتمال الترحيل أو المسارات أو الاعتماديات. عرّف عقد جاهزية محدوداً يؤكد إصدار التطبيق والمتطلبات الدنيا للحزمة. تنتج المهلة تشخيص إعداد لا عشرات إخفاقات الأعمال. تجنب نوماً ثابتاً طويلاً للسريع وقصيراً للبطيء. يقيم المثال استجابة اصطناعية؛ ويفرض المستدعي مهلة ويتحقق من النقل ويستهدف البيئة المحلية المملوكة فقط.
def ready_for_tests(response, expected_artifact):
return (
response.get("ready") is True
and response.get("artifact") == expected_artifact
and response.get("schemaReady") is True
)
assert not ready_for_tests({"ready": True, "artifact": "old", "schemaReady": True}, "candidate")
لا تنفذ الدالة شبكة. يكشف مسار الجاهزية بيانات آمنة فقط ويقيد عند الحاجة. تفيد مطابقة الوسم عندما تأتي هوية الحزمة من ربط بناء ونشر موثوق.
اجعل الإنشاء والتنظيف قابلين للتكرار
أنشئ الموارد بهوية تشغيل صريحة وافشل بأمان عند حالة سابقة غير متوقعة. ازرع مخططاً معروفاً وبيانات قليلة بمساعدات مراجعة. يستهدف التنظيف الملكية الدقيقة ويتحمل الحذف السابق ويحفظ التشخيص قبل الإزالة. تفيد finally ولا تضمن التنظيف بعد فقد المشغّل. أضف انتهاء أو مصالحة محدودة يملكها نظام البيئة. لا تمنح حذفاً واسعاً للتسهيل؛ التنظيف حد أتمتة حساس.
اختر الواقعية والحدود بقصد
تعيد البيئة خطر الاختبار دون نسخ تعقيد إنتاج أو بيانات خاصة غير لازمة. تكشف قاعدة حقيقية الترحيل ويمنع بديل دفع أثراً غير مقصود. حد العمر والحصص والعدد والاحتفاظ. توفر بيئات GitLab بيانات دورة الحياة لكن الإنشاء والعزل والتنظيف يعتمد على الأتمتة والمنصة. اختبر العقد بمرشح معروف وهوية خاطئة عمداً كي لا تختبر الحزمة أي شيء يجيب بالرابط.
الأخطاء الشائعة وإصلاحها
تبدأ الاختبارات قبل انتهاء الترحيل
- لماذا يحدث؟
- اعتُبر فحص منفذ جاهزية كاملة.
- كيف تصلحه؟
- أضف فحوص المخطط والتطبيق بمهلة.
- كيف تتجنب تكراره؟
- افصل تصنيف الإعداد عن تحققات الأعمال.
تبقى الموارد بعد فقد المشغّل
- لماذا يحدث؟
- يعتمد التنظيف على مهمة أخيرة فقط.
- كيف تصلحه؟
- أضف انتهاء ومصالحة بملكية.
- كيف تتجنب تكراره؟
- اختبر الانقطاع وحدود الكلفة.
تتحقق الحزمة من بيئة قديمة
- لماذا يحدث؟
- وُثق الرابط دون مطابقة الحزمة.
- كيف تصلحه؟
- اشترط هوية الحزمة المتوقعة في الجاهزية.
- كيف تتجنب تكراره؟
- اربط بيانات البيئة بمرشح المسار.
اختبر فهمك
1. ينجح فحص القاعدة وتبلغ API جداول مفقودة. أي حد فشل؟
اعرض الحل المشروح
نجحت جاهزية العملية لا المخطط. نفذ الترحيل المقصود وتحقق منه واتصال التطبيق بتلك القاعدة وانتظر العقد. لا تثبت زيادة النوم العشوائي الصحة.
2. تتشارك بيئات الفروع صندوق بريد تجريبياً واحداً. ما خطة العزل؟
اعرض الحل المشروح
قسم الرسائل بهوية التشغيل واستعلم نطاقها فقط أو خصص صناديق مستقلة. لا يحذف التنظيف رسائل الآخرين. أضف احتفاظاً محدوداً وامنع وجهات الإنتاج لتجنب آثار بريد خارجية.
أهم ما تعلمته
- لا يعني المؤقت العزل أو التمثيل تلقائياً.
- تطابق الجاهزية متطلبات الحزمة وهوية المرشح.
- يحتاج التنظيف ملكية وتعافياً وحدوداً.