CI/CD / عقود الترقية والبيئة / الدرس 9
البيئات والإعداد وترقية المرشح
رقّ مرشحاً واحداً مع تحديد الإعداد وهوية الهدف صراحة.
في هذه الصفحة
أهداف الدرس
- فصل هوية الحزمة عن إعداد البيئة.
- تعريف موافقات ترتبط بمرشح وهدف محددين.
البيئة أكثر من اسم
staging وproduction اسمان لعقد يشمل النقاط والهويات والإعداد والبيانات والاعتمادات والمسؤولية التشغيلية. قد تخاطب مهمتان مختلفتا الاسم الهدف نفسه بسبب متغير خاطئ. وقد تتصرف الحزمة نفسها بشكل مختلف مع إعداد آخر. نقطة شركة الشحن المرحلية في Parcel افتراضية، ويتطلب الإنتاج هدفاً مضبوطاً مستقلاً. ينبغي للمراجعة تعريف البيئة المقصودة والوجهة الفعلية قبل استخدام السلطة. ليس اسم المهمة تحققاً من الوجهة.
أبق الإعداد خارج التغليف المتغير
ابن حزمة Parcel مرة ثم اجمعها بإعداد بيئي مراجع عند التبني. تنتمي النقطة وإعداد الميزة لعقد الإعداد وتحتاج بيانات الاعتماد قناة سرية منفصلة. سجّل مراجعة الإعداد دون طباعة الأسرار. إذا ضمّن البناء نقطة بيئية فقد لا تختبر المرحلة الحزمة الإنتاجية نفسها. إن تعذر تجنب إعداد وقت التجميع فأعلن مرشحين وأدلة منفصلة بدلاً من ادعاء ترقية حزمة مختبرة بلا تغيير.
مثّل التبني بزوج
يقارن النموذج الكامل هوية الحزمة والإعداد. يولّد تغيير الإعداد وحده سجل تبنٍ مختلفاً وقد يبرر التحقق أو الرجوع. الأسماء افتراضية وتتجنب تجزئات مزيفة. في الواقع تحل هويات حزم ثابتة ومراجعات إعداد موثقة محلها. لا تضع قيم الأسرار في السجل. تكشف الهوية ما اختير مع الحفاظ على سرية المادة المستخدمة لتحقيقه.
staging = {"package": "candidate-r7", "config": "staging-c3"}
production = {"package": "candidate-r7", "config": "production-c8"}
print(staging["package"] == production["package"])
print(staging == production)
True
False
يثبت الأول تطابق الأسماء داخل النموذج فقط. ويظهر الثاني أن تطابق الحزمة لا يجعل إعداد البيئتين متطابقاً. لا يُستعلم عن بيئة ولا تتغير.
اربط الموافقة بالقرار
تحدد الموافقة المرشح والهدف والأدلة وشروطاً أو مدة صالحة ذات معنى. لا تثبت ضغطة قبل التغليف الموافقة على بايتات مجهولة. إن تغير المرشح أثناء الانتظار فطبّق إعادة الموافقة المحددة بالسياسة بدلاً من نقل القرار القديم بصمت. يمكن لحماية البيئة تأخير المهام وحصر أسرارها، لكن الإتاحة والتجاوز يختلفان. راجع سياسة المستودع والمؤسسة؛ لا يثبت حقل environment وحده وجود حماية.
{"candidate":"candidate-r7","target":"production-lab","configuration":"production-c8","decision":"pending"}
يطلب السجل الافتراضي قراراً لتركيبة محددة. ليس حمولة API نشر ولا يمنح موافقة ولا يحوي نقطة أو اعتماداً. يلزم في النظام الحقيقي ربط الأدلة والهويات المتحققة.
لاحظ ما اعتُمد فعلاً
قد تقدم مهمة ناجحة طلباً دون إثبات تبني كل النسخ له. سجّل ملاحظات الهدف عبر مسار التشغيل الموافق: المرشح المطلوب والمرصود وهوية الإعداد والصحة. شخّص الفروق قبل إصدار آخر. قد ينتج الانجراف من تعديل يدوي أو طرح ناقص أو هدف خاطئ. لا يصلح إعادة البناء إعداداً غير متتبع. افصل التفويض وقبول الطلب والتقارب وسلامة المستخدم في اللوحات وملاحظات الحوادث.
الأخطاء الشائعة وإصلاحها
تخوّل موافقة المرحلة مرشحاً لاحقاً مختلفاً.
- لماذا يحدث؟
- لم ترتبط الموافقة بهوية الناتج.
- كيف تصلحه؟
- اطلب قراراً لتركيبة المرشح والهدف الفعلية.
- كيف تتجنب تكراره؟
- أبطل القرارات القديمة عند تغير مدخل جوهري.
تختار مهمة الإنتاج نقطة مرحلية.
- لماذا يحدث؟
- وُثق اسم البيئة بدل الإعداد الفعلي.
- كيف تصلحه؟
- تحقق من الهدف والإعداد في المسار المراجع.
- كيف تتجنب تكراره؟
- اجعل الملكية وفحوص الوجهة صريحة.
يُعرض قبول الطلب كاكتمال التبني.
- لماذا يحدث؟
- اختلط قبول مستوى التحكم بتقارب التشغيل.
- كيف تصلحه؟
- اجمع الهوية المرصودة والصحة منفصلتين.
- كيف تتجنب تكراره؟
- عرّف الاكتمال بما يتجاوز نجاح الأمر.
اختبر فهمك
1. لم تتغير الحزمة لكن تضاعفت مهلة الانتظار. هل يهم الإصدار؟
اعرض الحل المشروح
نعم. تغير عقد التبني رغم ثبات البايتات. راجع أثر القيمة وافحصها بما يناسب وسجّل هوية الإعداد. قد يكفي الرجوع عن الإعداد بلا إعادة بناء.
2. انتظرت الموافقة ليلة ثم اكتُشف اعتماد ضعيف. هل تبقى كافية؟
اعرض الحل المشروح
يجب أن تحدد السياسة حداثة الأدلة وإبطالها. أعد تقييم المرشح بالمعلومة الجديدة واحصل على قرار جديد عند اللزوم. تسجل الموافقة حكماً محدوداً ولا تلغي الأدلة المستقبلية.
أهم ما تعلمته
- حدّد المرشح والإعداد والوجهة منفصلة.
- يجب أن تشير الموافقة والتبني المرصود إلى القرار المحدود نفسه.