Как я могу улучшить наш текущий рабочий процесс развертывания (с Capistrano)? - PullRequest
3 голосов
/ 01 июля 2011

Наша команда работает на сайте с большим трафиком, где мы используем Capistrano для развертывания наших приложений Rails, работающих на Ubuntu / Apache / Passenger.У нас есть настройка балансировки нагрузки, поэтому наша текущая процедура, позволяющая минимизировать время простоя и избежать того, чтобы клиенты видели страницу Rails 500, выглядит следующим образом (при условии, что в этом примере только 2 производственных сервера):

  • Отключите Apacheна production_1 (Балансировка нагрузки теперь отправляет все запросы на production_2)
  • Развертывание на 1-м сервере: cap production_1 deploy (включает Apache в конце развертывания)
  • Выполните несколько базовых тестов, чтобы убедиться, что ничего не пошлоfunky
  • Если что-то пошло не так, выключите Apache и выполните откат

Затем я выполняю эту процедуру для сервера production_2.

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

Какие альтернативы доступны?

Спасибо!

1 Ответ

1 голос
/ 17 июля 2011

да, вы можете использовать разные среды, называемые «production_0», «production_1», и использовать capistrano-ext для обеспечения многоступенчатого развертывания. запустить их следующим образом:

  1. cap production_0 deploy
  2. cap production_1 развертывание

посмотрите на страницы Github как настроить многоступенчатое развертывание

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...