Как изменять функционал/дизайн на работающем сайте?

Galiev.ru аватар
151

Допустим у нас есть хорошо посещаемый сайт, на нем тусуются посетители, что-то создают, общаются. Нам нужно обновить функционал сайта, допустим поставить самописную баннерокрутилку. Естественно мы не можем упражняться на рабочем сайте, так как могут возникнуть внештатные ситуации. Как происходит этот процесс, где испытывается новый функционал: на другом сайте, на локальной машине? Как затем изменения переносятся на рабочий сайт?

Дима аватар
405

Да, если делать по-нормальному, то нужна тестовая копия сайта, на которой обкатываются изменения. Не важно где, но лучше в похожем окружении. Потом, после тестирования, обновления выгружаются на боевой сервер. Можно сделать это ночью, или просто закрыть на некоторое время сайт от посетителей.

Процесс обновления можно автоматизировать, если использовать CVS или SVN. В этом я не разбираюсь.

Более того, я не обладаю высокой культурой разработки, и зачастую правлю и отлаживаю код прямо на сервере, что на самом деле может привести к очень серьезным последствиям.

viewer аватар
26

Если правка не "очень велика"
1. Бэкап всего что рабочее (файлы, база). И беречь.
2. Локальный сервер с сайтом. На нем ставим, проверяем.
3. На поддомене (закрыт на индексацию, нигде не светится) проверяем.
4. С локального переливаем на рабочий. Лучше, как сказал Дима, ближе к ночи. Но до прихода поисковиков (смотрим по логам сервера их обычное появление).

Galiev.ru аватар
151

Дима писал(а):

Более того, я не обладаю высокой культурой разработки, и зачастую правлю и отлаживаю код прямо на сервере, что на самом деле может привести к очень серьезным последствиям.

Вчера вечером это можно было наблюдать воочию. :)

Galiev.ru аватар
151

viewer писал(а):
Но до прихода поисковиков (смотрим по логам сервера их обычное появление).

Какую цель преследуем?

viewer аватар
26

Цель проста - если что повалится и полезут "бяки", то они не будут проиндексированы (важно, если скрипты будут выкидывать пути, расположение файлов, запросы к базе, названия таблиц).

Если совсем все повалится - то можно энным количеством страниц вылететь из индекса.

Дима аватар
405

Galiev.ru писал(а):
Вчера вечером это можно было наблюдать воочию. :)

Я угадал происхождение этой темы :)

Приношу извинения, и надеюсь, что стадия активного строительства закончится в обозримом будущем. В будущем постараюсь поменьше удивлять.

Вадим аватар
8

Расскажу, как это делаем мы.

Рабочий сайт неприкосновенен и правки на нем не вносятся вручную — нет даже прав доступа у пользователей, которые коннектятся по ФТП или ССШ.

Когда нужно поправить баг или сделать какие-то модификации — снимается текущий дамп БД и загруженных файлов. Если сайты небольшие — то эти данные автоматом заливаются в свн. Все участники, которые будут править сайт обновляются из репозитория. У каждого теперь есть рабочая копия.

Далее каждый вносит необходимые правки (по дизайну, по функционалу, выводу и т.п.).

Каждый делает коммит (фиксирует изменения в репозитории). Обновляемся еще раз, чтобы у каждого был проект со всеми изменениями. Тестируем на локальных машинах. Если все правильно — выгружаем из СВН-а на демо-хост. Тестируем там. Нет багов, результат достигнут — выгружаем из СВН-а на рабочий сайт.

Процесс обновления происходит за считанные секунды. Соответственно незаметно для пользователей.

Дима аватар
405

Вадим, у вас большие проекты? Или делаете так независимо от размера сайта?

Кстати, это хорошая иллюстрация к тому, почему поддержка стоит дорого -- техпроцесс-то ого-го.