Как правильно локально «развернуть» серверное приложение на основе Python для разработки?

#python #web-services #webserver #setuptools #development-environment

#python #веб-сервисы #веб-сервер #setuptools #среда разработки

Вопрос:

Довольно большой проект на основе Python, над которым я работаю, должен иметь дело с ситуацией, которую некоторые из вас, возможно, знают: у вас есть локальная проверка, из которой ваш сервер не может быть запущен (история), вы изменяете пару файлов, например, редактируя git операции or, а затем хотите локально «исправить»работающий сервер, находящийся в другом расположении файловой системы.

[Локальная проверка, например /home/me/project ] = deploy => [Запущенная среда, например /opt/project ]

Процесс «развертывания» может потребовать запуска произвольных сценариев сборки, копирования измененных файлов, возможно, перезапуска запущенной службы и так далее.

Обратите внимание, что я не говорю о CI или веб-развертывании — это больше похоже на то, что вы что-то меняете в своих исходных файлах и хотите знать, выполняется ли оно (локально).

В настоящее время мы делаем это с помощью собственных иерархических скриптов и хотим улучшить этот подход, например, с make помощью подхода, основанного на a.

Лично мне не нравятся make проекты на Python по нескольким причинам, но в принципе то, что я ищу, можно было бы сделать make , т. Е. Он Обнаруживает изменения, знает зависимости и может выполнять произвольные действия для удовлетворения зависимостей. Теперь мне интересно, нет ли чего-то подобного make для проектов на Python с теми же базовыми функциями, make что и, но с «пониманием Python» (привязка к Python, хорошая обработка аргументов командной строки и т. Д.).

Есть ли у такого типа процесса «развернуть мой сайт для разработки» имя, которое я должен знать? Я не спрашиваю, какую программу я должен использовать, но как я должен информировать себя (примеры очень приветствуются)

Комментарии:

1. Без точного знания всех деталей, необходимых вашему проекту, этот вопрос слишком широк и, следовательно, практически невозможно ответить. А именно, что это за проект? Стек веб-приложений? Приложение базы данных? Нужно ли ему взаимодействовать с расширениями C? Включает ли процесс развертывания создание развертываемых образов артефактов (например, VMware / VirtualBox / AMI для развертывания на AWS EC2)?

2. Если вы ищете конкретное имя или термин, который вы, возможно, захотите выполнить поиск, это может быть роль DevOps, или если вы хотите автоматизировать вышеупомянутый процесс (после его указания), это может быть конвейер CI / CD (непрерывная интеграция / непрерывная доставка), который необходимо настроить.построено.

3. Развертывание должно иметь конфигурацию, специфичную для среды. Затем вы проверяете код, возможно, устанавливаете зависимости и запускаете его. Если вам нужно запускать make и исправлять код, вы движетесь не в правильном направлении.

4. Я не хочу не соглашаться — обычно то, что я хочу сделать, это проверить и запустить, как вы предлагаете. В настоящее время это невозможно для нас и нелегко изменить. Итак, у меня есть «копия» большей части структуры проекта в каком-то другом месте, и я должен «обновить» эту копию до изменений, которые я вношу в оформление заказа.