Почему на production не рекомендуют использовать систему контроля версий?

Почему на prodaction не рекомендуют использовать систему контроля версий? Т.е. нельзя просто взять и сделать, например, git pull (svn update). Нужно писать какой-то скрипт, который бы обновлял production в соответствии с текущей ситуацией. В git это, например, скрипт, который клонирует данные из нужной ветки, сравнивает разницу каждого файла, и если необходимо обновляет (ну или просто полностью заменяет необходимые папки).
  • Вопрос задан
  • 1041 просмотр
Решения вопроса 3
NYMEZIDE
@NYMEZIDE
резюме - ivanfilatov.ru
prodaction пишется как production

потому что в GIT не надо хранить настройки боевого сервера. В системе контроля хранят только исходники.
дальше их отправляют в CI (Непрерывная интеграция), которая в случае успешной сборки добавляет deploy скрипт под конкретный боевой production. И выкладывает на сервер, или выкладывает архив для ручного выкладывания.
Ответ написан
Комментировать
ppokrovsky
@ppokrovsky
Нет такого, что рекомендуют или не рекомендуют. Все зависит от вашего проекта. Те доводы, которые здесь перечислены насчет CI итд - правильные. Дополнительным аргументом в пользу deploy-скриптов может быть, например, необходимость изменения схемы БД на проде с очередным апдейтом, чего git не сделает сам по себе. Плюс, обновление через git - не очень рабочий вариант в случае компилируемого кода. Конечно, можно навернуть поверх гита каких-нибудь билдеров, но этому уже точно на проде не место.

Но если, например, проект простой, компилируемого кода нет, и в команде есть договоренность о том, что в master попадает только протестированный код, то никакого криминала в том, чтобы сделать git pull, нет.
Ответ написан
Комментировать
@dimbo
Действительно, это довольно удобно. Но в такой простоте есть риск выкатывания на production не протестированного должным образом кода. Использование системы continuous integration с настроенными автотестами дает некоторый уровень гарантии.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Добавлю ко всему вышесказанному, что в некоторых случаях (часто бывает с PHP, например) папка .git может оказаться в публичной директории и какие-нибудь злоумышленники могут стянуть все исходники сайта.
Ответ написан
@polifill
Почему нельзя?
Мы такое практиковали, когда работали с постоянной интеграцией и постоянным развертыванием.

Другое дело, что для production отдельная ветка, в которую не все имеют права по записи.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы