Что мне нужно знать/узнать для автоматического развертывания Python?
-
20-09-2019 - |
Вопрос
Я начинаю новый проект WebApp в Python, чтобы попасть в Agile Mind Set, и я хотел бы сделать что-то «правильно» в отношении развертывания. Тем не менее, я нахожу весь VirtualEnv/Fabric/Zc.buildout/и т. Д. Столкнувшись - я привык просто FTP' -файлы PHP на сервер и указал на него веб -сервер.
После развертывания настройка сервера будет выглядеть как-то вроде:
Nginx --proxy-to--> WSGI Webserver (Spawning) --> WSGI Middleware --> WSGI App (probably MNML or similar)
с Python Webserver, управляющим Superissord.
Какие настройки развертывания/пакеты/приложения мне следует изучать? И есть ли определенная структура каталогов, которую мне нужно придерживаться моего приложения, чтобы облегчить развертывание?
Решение
Вы уже упомянули настройку, и это все, что вам нужно. Google, например, настройки для разных частей. Потребуется некоторое время, чтобы настроить его в первый раз, но затем вы можете повторно использовать настройку между различными проектами.
Пусть Superisorord запустит все, а не только с сервера Python. Затем запустите супервизируйте в перезагрузке Fron Cron или Init.d.
Другие советы
Ваша история развертывания зависит от вашего приложения. Вы используете Django? Тогда Apache + mod_wsgi
Документы развертывания Сделайте хорошую отправную точку. Тогда вы можете Google, чтобы получить более подробную информацию, например, это 2-часть серии с использованием pip
, virtualenv
, git
, а также fabric
.
Действительно, fabric
, virtualenv
, и все эти другие инструменты предназначены для облегчения поддержания и автоматизации вашего развертывания. Первоначально шагов от документации, вероятно, достаточно. После того, как вы почувствуете, как все работает, вы можете вернуться, чтобы улучшить свой процесс.
Я слышал хорошие вещи о Ткани:
Fabric-это библиотека Python и инструмент командной строки, предназначенный для оптимизации развертывания приложений или выполнения задач администрирования системного управления с помощью протокола SSH. Он предоставляет инструменты для запуска произвольных команд оболочки (либо как обычный пользователь входа в систему, либо через
sudo
), загрузка и загрузка файлов и т. Д.