Задать вопрос
@sevmax

Code distribution system

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

История такова:
1. Использовали NFS. Минус — все завязывается на один сервер.
2. Перешли на NAS по CIFS. Минус — возникли проблемы с передачей больших файлов по сети, NAS иногда был недоступен.
3. Пробовали использовать SAN через RedHat GFS. Минус — сложность настройки и необходимость следить за состоянием нод.

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

Варианты решения:
1. код на SVN/git -> скрипт, который по SSH запускает апдейт на каждом сервере.
2. puppet/chef

Заранее спасибо за хорошие советы :)
  • Вопрос задан
  • 2658 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 5
printf
@printf
Ем детей.
Раньше делал так: hook на коммит в определенную ветку репозитория, который развертывает код из этой ветки на продакшене, вызывает миграцию схемы БД и говорит Apache-у перечитать конфиги.

В какой-то момент написал Makefile, который копирует файлы rsync-ом из текущего локального состояния репозитория, и там по мелочи всякие вещи (например, доставляет зависимости в virtualenv, если нужны). Удобнее, поскольку иногда хочется на staging сервер бросить код прямо из редактора, не коммитя.
Ответ написан
Комментировать
TolicH
@TolicH
May be rsync?
Ответ написан
Комментировать
@nekufa
У нас mercurial, раз в минуту на серверах делается hg pull && hg update.
Очень удобная это схема тем, что если что-то правится прям в продуктиве (всякое бывает), то можно с него же и закомитить в общий репозиторий.
Скорее всего, в вашем случае вместо меркуриал подойдёт и свн.
Ответ написан
Комментировать
@jtraub
Почему бы не использовать Capistrano (или любой другой тул для деплоймента) + вызывать rsync из Capistrano для синхронизации самого года
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
hudson вас спасет.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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