Правильный способ развертывания обновлений веб-сайта

У меня есть регистрационный веб-сайт, который довольно регулярно обновляется с небольшими изменениями. Хотя эти «исправления» не обязательно представляют какую-либо проблему, мы находимся в той фазе, когда нам нужно развернуть некоторые серьезные изменения.

Я ищу правильный способ внести эти изменения, отмечая, что если что-то пойдет не так на живом сайте, мне нужно как можно быстрее вернуться в прежнее «безопасное» состояние.

Я провел некоторый поиск в сети о «подрывной деятельности» как способе сделать именно это, но у меня есть несколько вопросов/проблем:

1) Правильно ли я отношусь к этому?

2) Является ли подрывная деятельность правильным методом?

3) Если подрывная деятельность - это путь, может ли кто-нибудь предоставить «руководство для начинающих» по подрывной деятельности, поскольку большая часть материала, который я нахожу, предполагает, что у вас есть обширное понимание не только самого себя, но и того, как реализовать в средах Linux.

примечание: я запускаю весь свой код на локальном компьютере с Windows, прежде чем перейти на выделенный виртуальный сервер Media Temple Hosted под управлением Cent OS 5.


person JM4    schedule 14.01.2011    source источник
comment
Subversion — это программное обеспечение для управления исходным кодом, хотя я думаю, вы могли бы использовать его для развертывания. Если вы не используете какой-либо контроль версий, вы определенно должны им пользоваться. На чем написан сайт - это все скрипты, т.е. php или есть какой-то скомпилированный компонент? (Я думаю, нет, так как это и Windows, и Linux, если вы каким-то образом не компилируете скрипты с байт-кодом?) Обычно вы не храните скомпилированные части в subversion.   -  person Rup    schedule 14.01.2011
comment
@Rup - сайт написан на PHP, почти все работает на стеке LAMP   -  person JM4    schedule 14.01.2011


Ответы (1)


Вам не обязательно использовать subversion или любую систему контроля версий, чтобы вернуться к безопасному обновлению. Такие инструменты, как subversion, просты в установке и отлично подходят для контроля версий вашего программного обеспечения. Но если вы просто хотите просто отменить развертывание веб-сайта, иногда самый простой способ — сначала просто создать резервную копию всех ваших файлов на вашем сервере, а затем применить обновление. Если обновление не удалось, просто восстановите резервную копию. Вы можете выполнять резервное копирование во временные каталоги, zip-файлы и т. д.

Subversion отлично подходит для контроля версий, но даже в очень маленьких/отдельных командах полезно отслеживать изменения исходного кода, поскольку вы можете применять комментарии каждый раз, когда вы «фиксируете» свои изменения в системе контроля версий. Эти комментарии могут служить журналом изменений для дальнейшего использования. Кроме того, использование системы контроля версий позволяет сравнивать историю изменений одного файла. т.е. визуально видеть, какие части одного файла были изменены от одной версии к другой. Это может послужить отличным ориентиром в будущем.

Вы можете настроить Subversion, если хотите, чтобы отслеживать изменения исходного кода, но наиболее прагматичный способ развернуть ваши изменения и иметь возможность вернуться в случае аварии — просто сначала создать резервную копию всех файлов вашего веб-сайта. .

Эту ссылку SVN довольно легко усвоить: http://svnbook.red-bean.com/

person Shan Plourde    schedule 14.01.2011
comment
спасибо за предложение ссылки. На самом деле в настоящее время мы используем модель «резервного копирования и восстановления при необходимости», которую вы описываете, но в конечном итоге считаем ее совершенно неэффективной, поскольку это означает, что мы должны выбирать отдельные файлы, которые нам нужно обновить (распределенные по нескольким каталогам), создавать их резервные копии, загружать изменения в отдельных каталогах (трата времени), а затем тестирование на разовой основе. В конечном счете, я хотел бы сказать - если вообще будет обнаружена какая-либо ошибка, замените, перестройте и повторите тестирование. - person JM4; 14.01.2011
comment
Я делаю это для некоторых сайтов, где не настроен процесс автоматического развертывания. Я просто заархивирую целые каталоги, а не только определенные файлы, которые были обновлены, я считаю, что это самый быстрый способ. Тем не менее, SVN будет полезной системой управления версиями наряду с, возможно, решением для автоматического развертывания, таким как cruisecontrol.sourceforge.net или TFS, msdn.microsoft.com/en-us/library/ ff649607.aspx. - person Shan Plourde; 14.01.2011
comment
На стороне БД вы обычно можете управлять версиями своих хранимых процедур и функций, но я не знаю, что есть простой способ управления версиями, связанными с DDL, или изменениями модели данных. Для крупных развертываний я всегда делал резервную копию БД перед применением материалов DDL. - person Shan Plourde; 14.01.2011