Я все еще новичок в devops и общем системном администраторе, и несколько дней назад я хотел полностью переустановить все на своем сервере и правильно настроить службы и развертывание для приложений, теперь моя проблема заключается в том, как я правильно подхожу автоматическое развертывание приложения, его сборка, автоматическое обновление и перезапуск при сбоях.
Раньше я делал это с помощью простых bash-скриптов, которые запускались в фоновом режиме, автоматически проверяли наличие обновлений и развертывали их, если в удаленном репозитории есть более новая версия.
Я уже немного заглянул в тему и узнал про docker и docker, kubernetes и docker compose. Все они поначалу казались идеальными, но при более глубоком изучении темы я не увидел в них полной необходимости, так как приложения, которые у меня есть, не нужно изолировать или запускать на полностью отдельном экземпляре от основных операционных систем, приложения могут быть запущены на каждом основном ядре.
Теперь я хотел бы знать, есть ли какие-либо инструменты или приложения для достижения именно этого, мне особенно нужно
- Извлечь из удаленного репозитория, если есть какие-либо обновления (также можно выполнить с помощью действий Github, чтобы вызвать действие на сервере)
- Автоматически создавать новый исходный код и перезапускать приложение.
- Перезапустите приложение, если оно аварийно завершает работу или происходит сбой системы по какой-либо причине.