Deploy на несколько серверов php кода?

Всем добрый день!

Есть:
- 5 серверов, в дальнейшем могут добавится новые сервера
- git

Необходимо:
- обновить код на серверах без downtime в одну команду
- после deploy выполнить n задач (сбросить кэш, сгенерировать прокси классы, и.т.д)
- иметь возможность откатиться до предыдущей версии в одну команду

Смотрел в сторону capistrano вроде все подходить, единственное не понял есть ли возможность произвести deploy на несколько серверов и может ли capistrano откатить git репозиторий до предыдущего состояния.
  • Вопрос задан
  • 4504 просмотра
Решения вопроса 2
Rpsl
@Rpsl
Кратко о себе
capistrano, fabric, phing, etc... Все они по сути лишь обертка для исполнения команд на удаленной машине. Для деплоя и отката действий нужно написать самостоятельный набор команд.

В большинстве случаев схема деплоя работает следующим образом:

Создается слепок текущего репозитория.
Загружается на удаленный сервер в папку /var/www/mysite/deploy_2015_01_01_00:00:01
Сам вебсервер при этом смотрит на симлинк типа /var/ww/mysite/current
Если все прошло удачно, то симлинк переносится на только что созданную папку.

Процесс отката такойже только наоборт, смотрим какие есть папки деплоев и переносим симлинк на предпоследнюю.
Ответ написан
Комментировать
Пользуюсь rocketeer. Аналог capistrano, но написан на php. Умеет откатываться (помнит последние N версий), не останавливает сервер. Проблем с деплоем на несколько машин нет, все работает из коробки.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@DDanya
На нескольких можно, только не знаю как.И откатить git он тоже может.Нужно лазать в док-ции.
Ответ написан
Комментировать
@Shahelm Автор вопроса
Как работает схема я понимаю, меня интересует:
- может ли capistrano выполнить deploy на несколько серверов
- может ли capistrano откатить git до нужного состояния при deploy:rollback

Желательно с ссылками на док или еще что-то.
Ответ написан
@Shahelm Автор вопроса
@Sander_Li
Git hooks не подходят, нам необходимо выполнять некоторые задачи после deploy. Без выполнения этих задач произойдет downtime.

Меня устроит полностью функционал capistrano, если он дает возможность производить deploy на несколько серверов.

Я так понимаю он это умеет я просто не туда смотрю). И откат git-а я можно зацепить на deploy:rollback поправите если не прав.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы