Для тех, кто пока не сталкивался с запуском стратегий или другого кода не локально, рассказываем направления мысли :)
👍🏻 Запуск Python-скрипта на сервере через nohup
Чтобы запустить Python-скрипт на сервере в фоновом режиме, используйте команду
nohup:1. Арендуйте сервер у провайдера, например, https://vdsina.ru или https://www.hetzner.com. Подключитесь к серверу по SSH.
2. Перейдите в директорию с вашим Python-скриптом:
# для переноса кода на сервер используйте scp, rsync или просто перетащите скрипты через плагин Remote - SSH для VSCode или аналогичный инструмент
cd /path/to/your/script
3. Запустите скрипт с помощью nohup:
nohup python script.py &
Флаг
& отправляет процесс в фоновый режим.4. Выйдите из SSH-сессии. Скрипт будет продолжать выполняться в фоновом режиме даже после выхода. Рекомендуем записать pid процесса, чтобы в случае чего его оставить:
kill -9 pid_процесса. 5. Чтобы проверить вывод скрипта, посмотрите файл
nohup.out в директории со скриптом:
cat nohup.out
🤲🏻 Развертывание приложений через Docker
Чтобы автоматизировать процесс установки зависимостей и не собирать сервер заново, используют докер. Для развертывания приложений с использованием Docker выполните следующие шаги:
1. Создайте
Dockerfile в корне вашего проекта.2. Соберите Docker-образ:
docker build -t your-app .
3. Запустите контейнер на основе собранного образа:
docker run -d -p 8000:8000 your-app
Флаг -d запускает контейнер в фоновом режиме, а -p публикует порт контейнера на хосте, если нужно обращаться к приложению из сети.
4. Ваше приложение будет доступно по адресу
http://server-ip:8000🤝🏻 Развертывание через CI/CD
Чтобы каждый раз не копировать код на сервер и контролировать версии, используют CI/CD. Для автоматизации процесса развертывания с помощью CI/CD используйте инструменты вроде GitLab CI/CD или GitHub Actions:
1. Настройте файл
.gitlab-ci.yml или .github/workflows/ci.yml в вашем репозитории.2. Определите этапы сборки, тестирования и развертывания в конфигурационном файле.
3. При каждом push или merge в определенную ветку CI/CD-инструмент автоматически запустит пайплайн.
4. На этапе развертывания CI/CD-инструмент может:
- Собрать Docker-образ
- Отправить образ в реестр
- Подключиться к серверу по SSH
- Загрузить образ и запустить контейнер
Использование CI/CD позволяет автоматизировать рутинные задачи, ускорить процесс разработки и повысить надежность развертываний [1][3][4].
👨🏻🏫 Полезные ссылки
[1] CI/CD - что это: основы непрерывной интеграции и ... https://blog.skillfactory.ru/glossary/ci-cd/
[2] Docker: как создавать образы контейнеров и развертывать ... https://habr.com/ru/articles/776188/
[3] Как создать и развивать процессы CI/CD в команде / Хабр - Habr https://habr.com/ru/companies/otus/articles/741278/
[4] Что такое CI/CD? Разбираемся с непрерывной интеграцией и ... https://habr.com/ru/companies/otus/articles/515078/
[5] Строим домашний CI/CD при помощи GitHub Actions и Python https://habr.com/ru/articles/476368/
[6] Удобный CI/CD доступен каждому / Хабр - Habr https://habr.com/ru/articles/820451/
[7] 20+ лучших инструментов и программного обеспечения CI/CD ... https://visuresolutions.com/ru/alm-guide/best-ci-cd-tools-for-2023/
[8] Настройка CI/CD для Gitlab-репозитория: схемы и гайд по ... https://habr.com/ru/articles/764568/
Quant Researcher
