Наша команда работает на сайте с большим трафиком, где мы используем Capistrano для развертывания наших приложений Rails, работающих на Ubuntu / Apache / Passenger.У нас есть настройка балансировки нагрузки, поэтому наша текущая процедура, позволяющая минимизировать время простоя и избежать того, чтобы клиенты видели страницу Rails 500, выглядит следующим образом (при условии, что в этом примере только 2 производственных сервера):
- Отключите Apacheна production_1 (Балансировка нагрузки теперь отправляет все запросы на production_2)
- Развертывание на 1-м сервере: cap production_1 deploy (включает Apache в конце развертывания)
- Выполните несколько базовых тестов, чтобы убедиться, что ничего не пошлоfunky
- Если что-то пошло не так, выключите Apache и выполните откат
Затем я выполняю эту процедуру для сервера production_2.
Как видите, это больно, поэтому я ищу лучший путь.Не говоря уже о том, что у нас есть больше серверов, и мы будем добавлять еще больше.
Какие альтернативы доступны?
Спасибо!