6.3 · ممارسات جيدة وفخاخ

المستوى 6 · في الممارسة

6.3ممارسات جيدة وفخاخ

الهدف: تثبيت المنعكسات الـ 10 التي تفصل الاستعمال السليم عن الاستعمال الهش.
الوقت المقدّر: 10 دقيقة · إذا كان لديك 5 دقائق فقط: اقرأ «الأساسي في 30 ثانية» + المخطط.

الأساسي في 30 ثانية

  • تحقق : أوسمة ثابتة في الإنتاج وصور slim غير الجذر مفحوصة وصفر أسرار في الصورة ومستودع git.
  • وثّق الموثوقية : مجلد مسمى + إثبات وشبكة لكل تطبيق وrestart + فحص صحي وCompose متحقق منه عبر config.
  • شغّل : CI مصنعاً وحيداً ونسخ احتياطية معادة التشغيل ووكيل عكسي Proxy وحيد بـ TLS وسجلات بتدوير — ثمانية نعم = إنتاج.

خيط إدير — القاعدة الملصقة على الجدار

بعد ثلاثي، ألصق إدير قاعدته على الجدار في الجزائر : السليم والمثبت أولاً والسريع بعده. ما عدّ أكثر ليس أداة بل ثلاث عادات — الأوسمة الثابتة والمجلدات المثبتة وCompose المتحقق منه — وأكبر فخ تفاداه بشق الأنفس : latest منشورة مساء جمعة، أُوقفت قبل الإنتاج.

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

عقد الثقة

مكدس Docker السليم يقوم على قواعد قليلة تُطبق دائماً. ها هي، مع عكوسها المحظورة.

✓ للقيام

  • أوسمة ثابتة في الإنتاج وlatest في التطوير فقط.
  • USER غير الجذر منهجياً وقواعد slim رسمية.
  • صفر أسرار في الصورة ومستودع git ‏(تشغيل -e والأسرار Secrets و.env غير مُسلَّم).
  • مجلد مسمى للبيانات واختبار rm + إعادة التشغيل.
  • شبكة لكل تطبيق والقاعدة داخلية والواجهة الأمامية وحدها منشورة.
  • restart + فحص صحي على كل خدمة دائمة.
  • Compose مُصدَر ومتحقق منه عبر config وقاعدة + ملفات Profils.
  • CI مصنعاً وحيداً (SHA+نسخة) والذاكرة المؤقتة Cache مفعلة.
  • نسخ احتياطية آلية + استعادة مختبرة.
  • وكيل عكسي وحيد وTLS في الإنتاج وسجلات بتدوير.

✗ للتجنب

  • نشر latest في الإنتاج.
  • العمل بالجذر « للتبسيط ».
  • تسليم .env والأسرار وCOPY لها في الصورة.
  • تخزين القاعدة في الطبقة الزائلة.
  • نشر كل خدمة والقاعدة.
  • depends_on دون شرط ولا إعادة محاولة.
  • سطرو docker run منسوخان من الذاكرة.
  • البناء/الدفع يدوياً من الحاسوب.
  • عدم إعادة تشغيل نسخة احتياطية أبداً.
  • منفذ لكل تطبيق دون وكيل ولا إشراف.
خطأ شائع في الفهم: « تأشير كل الخانات كل يوم ». خطأ. هذه عادات تُثبت واحدة واحدة : اختر واحدة (مثلاً الأوسمة الثابتة في كل مكان) وثبتها في طقوسك ثم انتقل إلى التالية.
نص المخطط (SEO / قارئات الشاشة / الترجمة): التوازن المطلوب : 1) جهة الصورة — أوسمة ثابتة وslim غير الجذر والفحص وصفر أسرار وCI مصنعاً وحيداً مع ذاكرة مؤقتة. 2) جهة المكدس — مجلد مسمى مثبت وشبكة لكل تطبيق وrestart + فحص صحي وCompose مُصدَر متحقق منه عبر config وقاعدة + ملفات. 3) جهة التشغيل — نسخ احتياطية معادة التشغيل ووكيل وحيد بـ TLS وسجلات بتدوير وdown/up مثبت دون فقدان. الدرس : المكدس السليم مُصدَر ومثبت ومختبر أولاً — والسرعة تأتي بعد.

نص جاهز للقول — التحقق من مكدسه قبل الإنتاج (30 ثانية)

« أوسمة ثابتة ؟ غير الجذر + فحص ؟ صفر أسرار في git ؟ مجلد مثبت بـ rm + إعادة تشغيل ؟ restart + فحص صحي ؟ Compose config سليم ؟ CI مصنعاً وحيداً ؟ نسخة احتياطية معادة التشغيل ؟ إن كان جواب لا واحد، أصحح قبل الإنتاج. »

نموذج نسخ ولصق — شبكة الإنتاج قبل النشر

docker compose config
docker scout quickview mon-app:1.0
docker compose up -d --build
docker compose ps
docker compose logs -f api

شركة صغيرة جداً / ميزانية صغيرة

عادة واحدة في الثلاثي تكفي : الأوسمة + المجلدات المثبتة أولاً والباقي بعده.

شركة صغيرة ومتوسطة في الجزائر

تكييف الطقوس مع عمليات النشر : موعد نسخة احتياطية معادة التشغيل وإثبات down/up ملتزم به كل شهر.

عن بعد / هجين

الانضباط رقم 1 عن بعد : الوسم وconfig المتحقق منه والإثبات مكتوبة، حتى للمكدسات الصغيرة.

بين الثقافات

التحقق من الاستعمالات المحلية بدل الافتراض : منفذ أو مسار غير معتاد يجب أن يُنبه في كل مكان.

حذر: تذكير عام : القاعدة الذهبية — المكدس السليم مُصدَر ومثبت أولاً ؛ لا تنشر أبداً latest في الإنتاج ولا تُسلِّم أبداً .env ولا أسرار ولا تخزن أبداً القاعدة في الزائل، وأعد تشغيل كل نسخة احتياطية قبل تصديقها.

تحدي 48 ساعة — طبّق غداً

امسح مكدسك : صفر latest في الإنتاج وصفر أسرار في git وصفر مجلد غير مثبت. صحح أول انحراف تجده.

قائمة الخروج من القسم
  • أعرف المنعكسات الـ 10 للقيام والفخاخ الـ 10 للتجنب.
  • تحققت من نقاطي الحرجة الـ 3 (الأوسمة والأسرار والمجلدات المثبتة).
  • نفذت تحدي 48 ساعة أو حددت تاريخه.
تقييم ذاتي 1-5 : ثبات المنعكسات الجيدة ؟فخاخ متفاداة ؟
تحقّق من فهمك

قبل نشره في الإنتاج، أي منعكس يحمي إدير أكثر ؟

💡

مشغّل Docker الجيد ليس من ينشر أسرع، بل من مكدساته مُصدَرة ومثبتة.