Должен ли я использовать Git для развертывания веб-сайтов? - PullRequest
11 голосов
/ 14 марта 2009

У меня есть сайт, работающий на django, (но вопрос относится ко всему, php и т. Д.)

В настоящее время я использую unison для развертывания своих изменений, и я (вроде как) любил это, потому что до этого я делал это вручную !!

Теперь, когда я мокну от мерзавцев, я начинаю любить это! И я думаю, может быть, мне стоит использовать его вместо унисон для развертывания моих изменений!

Таким образом, я получу дополнительное преимущество от возможности отменить мои изменения, если их развертывание окажется катастрофой!

Вопрос:

  • Подходит ли git для развертывания веб-сайтов?

  • Любые вещи / проблемы / ошибки, которые я должен знать?

Ответы [ 4 ]

16 голосов
/ 11 апреля 2009

Я использую git для отслеживания своего веб-сайта и развертываю его следующим образом:

git archive --format=tar --prefix="homepage/" master | gzip | ssh webserver "tar xvz -C ~/public_html"

Это заслуживает небольшого объяснения. Команда архивирования для git экспортирует файлы для главной ветви, которая сжимается с помощью gzip для минимизации сетевого трафика. Он получен удаленно через ssh, который распаковывается в конечный каталог назначения.

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

9 голосов
/ 16 марта 2009

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

8 голосов
/ 14 марта 2009

Если вопрос заключается в том, можете ли вы использовать git для развертывания приложения django, ответ верен!

Однако производственное развертывание популярного приложения может стать сложным - и пойти дальше простого отката файлов. Вам может потребоваться запустить сценарии БД (как сценарии обновления, так и обновления), перезапустить задания cron или переместить файлы.

В рамках процесса развертывания вы можете выполнить резервное копирование базы кода в полном объеме, чтобы можно было откатить любое количество версий назад.

Один из способов сделать это с Capistrano, который автоматизирует весь процесс развертывания для вас. Вы создаете сценарии в своей среде разработки и запускаете такие команды, как: cap deploy, cap deploy_with_migrations, cap rollback и т. Д., И все автоматизируется от входа до процесса резервного копирования и запуска сценариев БД. Автоматизировав развертывание, вы устраняете ошибки в своей производственной среде. Недавно я поговорил с организацией, которая случайно удалила всю свою базу данных в процессе развертывания и нуждалась в восстановлении всего из резервных копий. Ошибки развертывания могут действительно сломать ваш бизнес, поэтому вы должны автоматизировать это, если вы серьезно относитесь к этому.

Хотя Capistrano - это инструмент развертывания на основе Ruby, обычно используемый в Rails, он не зависит от своих возможностей автоматизации. В Интернете есть многочисленные сообщения, в которых обсуждаются преимущества развертывания приложений Django с Capistrano (google - django capistrano).

Вы также можете проверить проверить эту ссылку здесь

4 голосов
/ 14 марта 2009

Ну, я использую SVN для развертывания моего сайта, поэтому я бы сказал, пойти на это! Имейте в виду, что вам, возможно, придется перезапускать / перезагружать сервер каждый раз, когда вы обновляете код для веб-сайта (я не уверен, что Django или все, на чем вы его запускаете, может обойти это).

...