Я знаю, что наилучшей практикой для отправки изменений в рабочую среду является наличие наборов серверов A и B, чтобы A обслуживал веб-сайт для клиента, чтобы отправить обновление на B, а затем переключить A‹-> B, чтобы обеспечить непрерывность услуг. . Но это сложно реализовать с помощью Capistrano (?)
В настоящее время у меня есть пул автоматически масштабируемых серверов в облаке Amazon. Используя capistrano, моя команда deploy развернет обновление на всех серверах и перезапустит их все одновременно. В период, когда пассажир перезагружается, на моем рабочем сервере происходит простой (и перезапуск может занять до 10 секунд, так что это проблема).
Чтобы избежать этого, я хотел бы перезапускать свои серверы по одному и ждать x секунд перед перезапуском следующего сервера (я не возражаю, если у меня есть 2 разные версии кода онлайн, целевой сценарий я Имейте в виду, развертывает небольшое исправление)
Есть ли способ переопределить задачу перезапуска Capistrano, чтобы подождать некоторое время перед запуском команды на следующем сервере?