أنشئ البنية حول ثلاثة أصول منفصلة: تعريفات Compose ذات الإصدارات، والأسرار المحمية، والبيانات المستمرة التي لها مسار نسخ احتياطي واستعادة خاص بها.
بالنسبة إلى خادم منزلي أو خادم لفريق صغير، يجب أن يكون نظام التشغيل والحاويات قابلين للاستبدال. يصف مشروع Compose الخدمات المطلوبة، ويوفر نظام الأسرار بيانات الاعتماد عند النشر، بينما تحتفظ مسارات البيانات المُسمّاة بالحالة. ولا تنجح الاستعادة إلا عند جمع هذه الأدوار الثلاثة مجددًا على مضيف نظيف، بالاستناد إلى سجلات محفوظة خارج الجهاز المتعطل.
حدّد نطاق إعادة البناء قبل كتابة Compose
اعتبر نظام تشغيل المضيف، وبيئة تشغيل الحاويات، والصور التي تم تنزيلها عناصر قابلة للاستبدال. وتعامل مع ملفات Compose، والإعدادات المخصصة، وبيانات الاعتماد، وقواعد البيانات، والملفات المرفوعة، والشهادات، ومفاتيح التشفير وفق دورها الفعلي في الاستعادة.
أنشئ صفًا واحدًا لكل خدمة في جردك، يتضمن الصورة والإصدار، والمنافذ، والتبعيات، وأسماء الأسرار، والمسارات المستمرة، وطريقة النسخ الاحتياطي، والتحقق من الاستعادة. يكشف الجرد الحالة التي قد تختبئ بخلاف ذلك داخل نظام ملفات الحاوية.
توقف إذا كان أي تطبيق يخزن بيانات لا يمكن تعويضها في طبقة الحاوية القابلة للكتابة. انقل ذلك المسار إلى وحدة تخزين صريحة أو نقطة ربط قبل اعتبار البنية قابلة لإعادة الإنتاج.
أدر تعريفات الإصدارات دون تضمين الأسرار
خزّن ملفات Compose، والإعدادات غير الحساسة، وفحوصات السلامة، وملاحظات النشر في نظام للتحكم في الإصدارات. ثبّت إصدارات الصور أو بصماتها وفق سياسة التحديث لديك، حتى لا تختار عملية إعادة البناء إصدارًا مختلفًا من التطبيق دون ملاحظة.
لا تضع كلمات المرور الفعلية، أو مفاتيح API، أو الشهادات الخاصة في ملف Compose أو المستودع. يوضح هذا الشرح العملي لإبقاء أسرار Docker خارج المصدر سبب حاجة بيانات الاعتماد إلى مسار تسليم منفصل.
أدرج بيانًا بأسماء الأسرار مع عناصر نائبة، ثم احتفظ بالقيم في مدير كلمات مرور مشفّر، أو ملف مشفّر، أو خدمة أسرار يمكن استعادتها بشكل مستقل.
حدّد مالكي البيانات المستمرة ومساراتها بوضوح
افصل قاعدة بيانات كل تطبيق، وملفات المستخدمين المرفوعة، وذاكرة التخزين المؤقت المُنشأة، والصور المصغرة القابلة للاستبدال. أنشئ نسخًا احتياطية للحالة الدائمة، ووثّق ذاكرات التخزين المؤقت التي يمكن إعادة إنشائها لتجنب استعادة حجم غير ضروري.
استخدم مسارات ثابتة ومقروءة على المضيف أو وحدات تخزين مُسمّاة موثّقة بعناية. ويجب التعبير عن الأذونات باستخدام معرّفات رقمية أو خطوة تهيئة، حتى لا يعتمد المضيف النظيف على قاعدة بيانات أسماء مستخدمين محلية قديمة.
بالنسبة إلى قواعد البيانات، نسّق عمليات التفريغ المنطقية أو اللقطات المتسقة مع التطبيق بدلًا من نسخ الملفات قيد الاستخدام بشكل أعمى. احتفظ بوجهة التفريغ خارج وحدة تخزين التطبيق حتى لا تتمكن بنية معطلة من محو نسختها الاحتياطية الوحيدة.
صمّم التحديثات كنشر قابل للعكس
قبل التحديث، التقط نسخة Compose الحالية، ومعرّفات الصور، والإعدادات، ونسخة حديثة قابلة للاستعادة من الحالة التي تغيرت. إن تنزيل صورة جديدة ليس خطة للتراجع عندما يُجري التطبيق أيضًا ترحيلًا لقاعدة البيانات.
يوضح نمط النشر القائم على Compose في دليل للاستضافة الذاتية كيفية توحيد Compose لتعريفات الحاويات المتعددة والأوامر التشغيلية. استخدم ذلك النمط مع إبقاء الحالة وبيانات الاعتماد خارج الطبقة القابلة للتخلص.
حدّث مجموعة تبعيات واحدة في كل مرة، وأجرِ فحوصات السلامة وتسجيل الدخول، ثم سجّل النسخة المعروفة بأنها سليمة. إذا كانت عملية التراجع تتطلب تنسيقًا أقدم لقاعدة البيانات، فاستعدها في مسار منفصل وتحقق منها قبل تبديل العملاء.
أثبت عمل البنية على مضيف استعادة نظيف
استخدم آلة افتراضية مؤقتة أو جهازًا احتياطيًا. ثبّت المتطلبات الموثقة فقط، واستنسخ التعريفات، واستعد الأسرار عبر القناة المعتمدة، واستعد بيانات تطبيق واحد، ثم شغّل سلسلة التبعيات بالترتيب.
تحقق من أكثر من حالة الحاويات: سجّل الدخول، واقرأ سجلًا معروفًا، وأنشئ عنصرًا اختباريًا واحذفه، وأعد تشغيل المضيف، وتأكد من أن مراقبة النسخ الاحتياطي تُبلغ عن الموقع الجديد. سجّل كل تصحيح يدوي غير موثّق كعيب في عملية البناء.
تابع دليل ZimaSpace حول فصل أسرار Docker عن ملفات Compose عند اختيار آلية تسليم بيانات الاعتماد.
القاعدة النهائية للإعداد
ينجح الإعداد عندما يستطيع مضيف نظيف إعادة إنشاء تعريفات الخدمات، وتلقي الأسرار دون كشفها للمستودع، واستعادة الحالة الدائمة، وإكمال عملية تحقق على مستوى التطبيق. انتقل إلى التنسيق فقط عندما تحتاج عدة مضيفات إلى سير العمل المنضبط نفسه.
إعداد التخزين الشبكي والخادم
المزيد للقراءة

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

لماذا يستخدم المطورون عقدة بوابة لنظام DNS الخاص وشبكات VPN والتطبيقات التجريبية؟
تمنح عقدة البوابة التطبيقات الخاصة اسمًا واحدًا ومسار وصول مُتحكَّمًا فيه، بينما تظل عقد الحوسبة غير مكشوفة وقابلة للاستبدال.

هل ينبغي للمطوّر الاحتفاظ بقواعد البيانات على عقدة الحوسبة أم عقدة التخزين؟
حدّد مكان قواعد بيانات المطورين عبر فصل ملفات قواعد البيانات النشطة عن النسخ الاحتياطية وملفات التفريغ والنسخ المتماثلة وبيانات المشاريع الضخمة.

