Как зайти в Даркнет?!
25th January, 01:11
5
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
893
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
912
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6085
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4350
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4395
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Что является лучшим решением для поддержания резервного копирования и контроля версий на живых веб-сайтах?
Что является лучшим решением для поддержания резервного копирования и контроля версий на живых веб-сайтах?
В рамках своей работы я работаю с несколькими живыми сайтами. Нам нужен эффективный способ поддержания резервных копий живых папок с течением времени. Кроме того, обновление этих сайтов может быть болезненным, особенно если изменение происходит с перерывом в живой среде по какой-либо причине.
То, что было бы идеальным, было бы беспроблемным управлением версиями. Я реализовал SVN на некоторое время, что было здорово в качестве полурешения для резервного копирования, а также контроля версий (легкая реверсия временных или критических изменений) и т. д.
К сожалению, SVN размещает .SVN скрытых каталогов везде, которые вызывают проблемы, особенно когда другие разработчики делают изменения структуры папок или копируют / перемещают каталоги веб-сайтов. Я слышал аргумент, что это вопрос образования и т. д. но подход, принятый SVN, просто не является для нас практическим решением.
Я думаю,что, возможно, инкрементное резервное копирование может быть лучше.
Другие возможности включают в себя:
- SVK, который является только командной строкой, которая становится проблемой. Кроме того, я не уверен, насколько это будет уместно.
Mercurial, возможно, с некоторыми триггерами, чтобы скрыть распределенный компонент, который не требуется в этом случае и был бы излишне сложным для других разработчиков.
Я немного поэкспериментировал с Mercurial, но не смог найти хороший способ отделить хранилище и постоянно синхронизировать его с рабочей копией живой папки. Возможно, в качестве решения для управления версиями (создание репозитория и живой папки в одном месте) в сочетании с другим решением для резервного копирования это может быть правильным решением.
Одним из недостатков Mercurial является то, что он не помещает пустые папки под управление версиями, что является проблематичным для веб-сайтов, которые часто имеют пустые папки в качестве мест-заполнителей для загрузки файлов и т. д.
- Rsync , который я на самом деле не исследовал.
Я был бы очень признателен Вам за совет о том, как лучше всего поддерживать резервные копии живых веб-сайтов, в идеале с помощью простых средств быстрого восстановления прошлых версий.
Ответ ответов:
@Kibbee :
Речь идет не столько об образовании, сколько об отсутствии знакомства с чем-либо, кроме VSS, и об отсутствии времени/усилий для изучения чего-либо еще.
Подход xcopy/7-zip звучит разумно, я думаю, но он быстро займет много места, верно?
Что касается управления версиями, я думаю, что мне бы хотелось, чтобы система управления версиями просто сказала: "это состояние папки сейчас, я разберусь с этим, и если я не смогу сопоставить материал, который является вашей виной, я просто начну новые истории", а не потерплю неудачу.
@Steve м :
- Да, это более приятный способ сделать это, но потребует значительных культурных изменений. Сказав, что мне очень нравится такой подход.
@mk :
- Хорошо, что я не подумал об использовании Rsync для развертывания. Это только загружает различия? Перезапись всего живого каталога каждый раз, когда мы вносим изменения, будет проблематичной из-за простоя сайта.
Мне все еще любопытно посмотреть, есть ли еще какие-то традиционные варианты
Вы все еще можете использовать SVN, но вместо того, чтобы выполнять проверку в вашей живой среде, сделайте экспорт, таким образом, никакие каталоги .svn не будут созданы. Недостатком, конечно, является то, что никакие изменения кода в вашей живой среде не могут иметь место. Это очень хорошая вещь.
Как правило, изменения кода в производственных системах никогда не должны допускаться. Это изменение должно быть сделано и протестировано в среде development/test/UAT, а затем, после подтверждения как OK, вы можете пометить этот код в SVN чем-то вроде RELEASE-x-x-x. Затем в живой системе экспортируйте код с этим тегом.
Мы используем вариант 3. Rsync. Я написал сценарий bash, чтобы сделать это вместе с некоторой дополнительной проверкой, но вот основы того, что он делает.
- Сделайте бирку для того, чтобы толкать к жизни.
- Запустите svn export по этому тегу.
- rsync жить.
До сих пор все шло хорошо. Нам не нужно беспокоиться о конфликтах пользователей или иметь отдельного пользователя для запуска svn на производственной машине.
Любое решение для управления версиями, которое вы выберете, будет иметь проблемы, если люди перемещают, удаляют или добавляют файлы и не сообщают об этом системе управления версиями. Я не знаю ни одного элемента управления версиями, который мог бы решить эту проблему.
В том случае, когда вы просто не можете обучить людей, работающих на project[1], то вам, возможно, придется просто пойти с ежедневными снимками. Что-то настолько простое, как пакетный файл с помощью xcopy на сетевой диск, и, возможно, 7-zip в командной строке, чтобы сжать его, чтобы он не занимал слишком много места, вероятно, было бы самым простым решением.
[1] я бы очень не поверил в это, возможно, просто это был бы случай, когда люди слишком упрямы и не хотят учиться или делать "extra work". Неважно, сколько времени система управления версиями может сохранить их, когда они должны вернуться к предыдущим версиям, или 2 человека редактировали один и тот же файл.
rsync будет только загружать различия. Я лично не использовал его, но Марк Пилигрим уже давно написал о том, как он блестяще справляется даже с двоичными диффами .
svn+rsync звучит как фантастическое решение. Мне придется попробовать это в будущем.