كيفية بناء خادم تطوير منزلي لـ Git وصور Docker وقواعد البيانات وتطبيقات المعاينة

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

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

بالنسبة إلى مطور أو مطورين يعملون من المنزل، يمكن لخادم Linux واحد استضافة Git وسجل للصور وقواعد البيانات وتطبيقات المعاينة. ويظل التصميم سهل الإدارة فقط عندما يجري التخطيط للهوية وأدوار التخزين والتعرض الشبكي والنسخ الاحتياطي والاستعادة قبل أن تبدأ الخدمات بالاعتماد بعضها على بعض.

حدّد أدوار الخدمات قبل اختيار العتاد

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

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

استخدم عقدة حوسبة واحدة في البداية عندما يكون تعطلها مقبولًا لأغراض التطوير. وافصل عمال البناء لاحقًا إذا بدأت عمليات التجميع المتقطعة في استنزاف موارد قواعد البيانات أو المعاينات التفاعلية.

افصل البيانات الدائمة والقابلة لإعادة البناء وبيانات الاستعادة

دور البيانات أمثلة الحماية
الحالة الدائمة مستودعات Git ووحدات تخزين قواعد البيانات لقطات مع نسخة احتياطية مستقلة
المكونات القابلة لإعادة البناء صور الحاويات وذاكرة التخزين المؤقت للبناء سياسة احتفاظ؛ ونسخة احتياطية اختيارية
الأسرار والإعدادات مفاتيح النشر وملفات البيئة تصدير مشفّر ونسخة استعادة غير متصلة
وسائط الاستعادة مثبّت نظام التشغيل وملاحظات الاستعادة تُخزّن خارج الخادم

لا تنسخ كل بايت احتياطيًا بالقدر نفسه. فعادةً ما يمكن إعادة بناء السجل من المصدر وتعليمات البناء؛ أما قاعدة البيانات فلا يمكن ذلك. خزّن عمليات تفريغ قواعد البيانات أو اللقطات المتسقة بشكل منفصل عن وحدة تخزين قاعدة البيانات المباشرة.

توضح خطة عملية للنسخ الاحتياطي المستضاف ذاتيًا قيمة أتمتة مهام Git والنسخ الخارجية كوظيفتين منفصلتين، بدلًا من افتراض أن NAS نفسه هو النسخة الاحتياطية.

أنشئ مسار وصول خاصًا واحدًا

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

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

اختر SMB أو NFS فقط في عمليات الملفات التي تحتاج فعلًا إلى وحدة تخزين مشتركة. يساعد دليل ملاءمة عملاء SMB وNFS على إبقاء اختيار البروتوكول منفصلًا عن الوصول إلى خدمات التطبيقات.

-15% OFF

اجعل ترتيب النشر متوافقًا مع مخطط التبعيات

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

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

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

انسخ احتياطيًا من أجل الاستعادة، لا من أجل التجميع

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

أجرِ استعادة فصلية في مساحة أسماء معزولة. وتحقق من المستخدمين والإضافات والمهام المجدولة وأذونات المستودعات ومصادقة السجل ومسارات DNS، لا من وجود الملفات فقط.

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

القاعدة النهائية للإعداد

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

إعداد التخزين الشبكي والخادم

المزيد للقراءة

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.