Рубрики
Uncategorized

Развертывание приложения Rails без простоя и нет Вешающие запросы

Работая на Cronmonit, мне нужен способ иметь возможность сделать развертывание с нулевым временем и ноль H … Помечено рельсами, Ruby, DevOps, WebDev.

Работая на Cronmonit, мне нужен способ иметь возможность сделать развертывание с нулевым временем и нулевыми запросами на витание.

Cronmonit Это инструмент мониторинга CRON, и он способен контролировать задания CRON, получая пинги (HTTP-запросы). Подобное обслуживание не может иметь много прочных или зависающих запросов, потому что даже не хватает нескольких пингов, приведет к проблемам для своих пользователей. Как и «задание CRON» — это уведомление по электронной почте, отправляемая даже если задание CRON не на самом деле вниз. И поскольку я часто развертываю, имея способ выполнения развертываний с нулевым простоя, а нулевые запросы зависания имеют решающее значение.

Это текущий технический стог Cronmonit:

  • Рельсы 6.
  • Пума
  • Nginx.
  • PostgreSQL

Все они работают на одном капельке капельки капельки на 5 долларов США (Ubuntu 18.04 LTS).

К счастью, это очень легко развертыванию без временных времен и никаких зависающих запросов на приложении Rails с помощью веб-сервера PUMA. PUMA имеет функцию под названием «Phased Restart», которая убивает рабочие PUMA One-One-One.

Чтобы использовать его, просто порождайте как минимум 2 рабочих Puma.

Например,

Rails_env = Production Bundle Exec Puma -w 2

Затем, когда вам нужно перезапустить PUMA, используйте функцию поэтапной перезагрузки:

Bundle Exec Pumactl Phased-Restart

Вот пример сценария, который объясняет процесс:

  • Делайте изменения в коде в вашей местной среде разработки
  • Совершать или объединить изменения в мастер-филиал
  • Вставьте изменения на ветку Master в ваш репозиторий центрального GIT (E.G, GitHub)
  • Ssh на ваш сервер
  • CD в каталог репозитория Git на вашем сервере
  • Потяните обновления от главной ветки (например, Git Pull Origin Master)
  • Затем перезапустите PUMA, используя поэтапный перезапуск

Вот и все!

Если вы используете Cron Jobs или запланированные задачи, вы можете отслеживать их, используя Cronmonit бесплатно: https://cronmonit.app/

Вот сообщение в блоге о том, как он работает:

https://dev.to/john200ok/free-and-painless-cron-job-monitoring-via-cronmonit-8n9

Оригинал: «https://dev.to/john200ok/deploying-a-rails-app-with-no-downtime-and-no-hanging-requests-nfc»