ما هو الحل الأفضل للحفاظ على النسخ الاحتياطي والتحكم في المراجعة على مواقع الويب المباشرة؟

StackOverflow https://stackoverflow.com/questions/27292

  •  09-06-2019
  •  | 
  •  

سؤال

ما هو الحل الأفضل للحفاظ على النسخ الاحتياطي والتحكم في المراجعة على مواقع الويب المباشرة؟

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

ما سيكون مثاليًا هو التحكم في المصدر بدون متاعب.لقد قمت بتطبيق SVN لفترة من الوقت والذي كان رائعًا كحل شبه للنسخ الاحتياطي بالإضافة إلى التحكم في المراجعة (الرجوع السهل للتغييرات المؤقتة أو المعطلة) وما إلى ذلك.

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

أعتقد أنه ربما يكون حل النسخ الاحتياطي المتزايد أفضل.

تشمل الاحتمالات الأخرى ما يلي:

  1. SVK, ، وهو سطر الأوامر فقط والذي يصبح مشكلة.علاوة على ذلك، فأنا غير متأكد من مدى ملاءمة ذلك.
  2. زئبقي, ، ربما مع بعض المشغلات لإخفاء المكون الموزع وهو غير مطلوب في هذه الحالة وسيكون معقدًا بشكل غير ضروري للمطورين الآخرين.

    لقد جربت Mercurial لفترة وجيزة ولكن لم أتمكن من العثور على طريقة لطيفة لفصل المستودع وإبقائه متزامنًا باستمرار مع نسخة عمل المجلد المباشر.ربما يكون هذا هو الحل المناسب للتحكم في المصدر (جعل المستودع والمجلد المباشر في نفس المكان) بالإضافة إلى حل نسخ احتياطي آخر.

    أحد الجوانب السلبية لـ Mercurial هو أنه لا يضع المجلدات الفارغة تحت التحكم بالمصادر وهو ما يمثل مشكلة بالنسبة لمواقع الويب التي غالبًا ما تحتوي على مجلدات فارغة كمواقع نائبة لتحميل الملفات وما إلى ذلك.

  3. رسينك, ، والتي لم أحقق فيها حقًا.

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

الرد على الردود:

  • @ كيبي:

    • لا يتعلق الأمر بالتعليم بقدر ما يتعلق بعدم الإلمام بأي شيء سوى VSS وقلة الوقت/الجهد لتعلم أي شيء آخر.

    • أعتقد أن أسلوب xcopy/7-zip يبدو معقولاً ولكنه سيشغل مساحة كبيرة بسرعة، أليس كذلك؟

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

  • @ ستيف م:

    • نعم، هذه طريقة أفضل للقيام بذلك ولكنها تتطلب تغييرًا ثقافيًا كبيرًا.وقد قلت أنني أحب كثيرا هذا النهج.
  • @مك:

    • حسنًا، لم أفكر في استخدام Rsync للنشر.هل هذا فقط تحميل الاختلافات؟قد تكون الكتابة فوق الدليل المباشر بأكمله في كل مرة نجري فيها تغييرًا مشكلة بسبب توقف الموقع.

ما زلت أشعر بالفضول لمعرفة ما إذا كان هناك المزيد من الخيارات التقليدية

هل كانت مفيدة؟

المحلول

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

كقاعدة عامة، لا ينبغي أبدًا السماح بتغيير التعليمات البرمجية في أنظمة الإنتاج.يجب إجراء التغيير واختباره في بيئة التطوير/الاختبار/UAT، ثم بمجرد التأكيد على أنه موافق، يمكنك وضع علامة على هذا الرمز في SVN بشيء مثل RELEASE-x-x-x.وبعد ذلك، على النظام المباشر، قم بتصدير الكود مع تلك العلامة.

نصائح أخرى

نحن نستخدم الخيار 3.رسينك.لقد كتبت نصًا برمجيًا bash للقيام بذلك مع بعض عمليات التحقق الإضافية، ولكن إليك أساسيات ما يفعله.

  1. اصنع علامة للدفع للعيش.
  2. قم بتشغيل تصدير svn على تلك العلامة.
  3. رسينك للعيش.

حتى الآن تم العمل بها.لا داعي للقلق بشأن تعارضات المستخدم أو أن يكون لدينا مستخدم منفصل لتشغيل svn على جهاز الإنتاج.

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

في حالة عدم قدرتك على تثقيف الأشخاص العاملين في المشروع[1]، فقد يتعين عليك فقط استخدام اللقطات اليومية.شيء بسيط مثل استخدام الملف الدفعي xcopy على محرك أقراص الشبكة، وربما 7-zip في سطر الأوامر لضغطه حتى لا يشغل مساحة كبيرة، ربما يكون الحل الأبسط.

[1] لا أصدق ذلك بشدة، ربما يكون ذلك بسبب كون الأشخاص عنيدين للغاية وغير راغبين في التعلم أو القيام "بعمل إضافي".لا يهم كم من الوقت يمكن أن يوفره لهم التحكم بالمصادر عندما يتعين عليهم العودة إلى الإصدارات السابقة، أو عندما يقوم شخصان بتحرير نفس الملف.

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

يبدو أن svn+rsync حل رائع.سأحاول تجربة ذلك في المستقبل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top