Как я должен развернуть патч в производственном Rails-приложении на основе Passenger без простоев? - PullRequest
2 голосов
/ 31 марта 2010

У меня есть приложение Rails на основе Passenger, которое имеет тысячи пользователей. Иногда нам нужно применить исправление кода (мы используем git), и текущий процесс для этого (вы можете предположить, что нет миграций данных):

  • Выполнить git pull origin [production-branch-name] на сервере
  • touch tmp/restart.txt для перезапуска Пассажира

Это позволяет нам вносить исправления в сервер, не прибегая к созданию страницы обслуживания, что замечательно, но это не совсем правильно, поскольку на самом деле это не правильное «развертывание», и нам все равно нужно обновлять вручную файл редакции и наше развертывание не отображаются в используемых нами сервисах Hoptoad или NewRelic.

В идеале я бы запустил cap production deploy и просто позволил бы стандартному сценарию развертывания Capistrano позаботиться обо всем, но опасно ли это делать, не открывая страницу обслуживания? Этот процесс развертывания кажется достаточно безопасным в том смысле, что новая редакция развернута в совершенно отдельной папке, и только в самом конце процесса создается символическая ссылка, созданная для переключения развернутой версии, но я все еще довольно параноидален это как-то приводит к потере или неудаче запроса.

1 Ответ

4 голосов
/ 31 марта 2010

Нет проблем здесь, делая cap production deploy. Если развертывание завершается неудачно, предыдущий выпуск все еще хорош. Ничего не выйдет из строя, так как старый выпуск загружается (кэшируется) в текущем процессе Passenger. touch tmp/restart.txt подберет новый релиз, и все хорошо в мире.

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