[Python-mx] Como Hacer despliegue (Deploy) a Producción una Aplicación Django correctamente.

Noe Nieto nnieto at noenieto.com
Thu Sep 1 12:58:10 EDT 2016


Respuesta rápida: la manera más fácil de arrancar supervisord o tu servidor
wsgi es con crontab:

@reboot /path/to/my/awesome/command

Esa es la manera más rápida y sucia de arrancar tu servicio cuando reinicia
la máquina.

Respuesta larga.

Yo administro mis apps de Django con zc.buidout (
http://www.buildout.org/en/latest/). Los Pythoneros nuevos no tienen idea
de que eso existe y los pythoneros viejos odian cualquier cosa que tenga
que ver con Zope y/o Plone

Lo bonito de Buildout es que puedes usar una receta para construir,
instalar y configurar automáticamente supervisord (
https://pypi.python.org/pypi/collective.recipe.supervisor).

Incluso hay otra receta que descarga, compila y configura Nginx (
https://pypi.python.org/pypi/birdhousebuilder.recipe.nginx/0.3.4). Esa
receta es bastante nueva y no la he probado.

Otra opción es generar el archivo de configuración de nginx con
collective.recipe.template (
https://pypi.python.org/pypi/collective.recipe.template). Con esta receta
no solo puedes generar archivos de configuración, sino también scripts.la
manera más fácil de arrancar supervisord o tu servidor wsgi es con crontab:

@reboot /path/to/my/awesome/command

Esa es la manera más rápida y sucia de arrancar tu servicio cuando reinicia
la máquina.

Por último, z3.recipe.usercrontab(
https://pypi.python.org/pypi/z3c.recipe.usercrontab) configura crontab para
que ejecute los comandos que requieras. Regresando a tu pregunta: la manera
más fácil de arrancar supervisord o tu servidor wsgi es con crontab:

@reboot /path/to/my/awesome/command

Esa es la manera más rápida y sucia de arrancar tu servicio cuando reinicia
la máquina.

La manera correcta y elegante es escribir un init script (en sh o bash) o
un servicio de systemd. Eso te lo dejo de tarea.


-- PD:

Fabric es super divertido para correr tareas remotas en servidores (como,
por ejemplo, un script de deploy). Échale un vistazo.


El 1 de septiembre de 2016, 8:52, Orvil Juarez <orvilj at gmail.com> escribió:

> Hola Amigos buenos días.
>
> Tengo la necesidad de poner en Producción una Aplicación hecha con Django,
> he intentado varias formas pero aún no tengo claro cual es la forma
> correcta o la mejor práctica para hacerlo.
>
> Básicamente lo que quiero hacer es:
>
> 1.- Tener corriendo Nginx como servidor web en la parte pública que sirva
> como proxy.
> 2.- Correr la aplicación Djando en un puerto 8001 al cual se conecte Nginx.
> 3.- Levantar automáticamente la aplicación Django cuando se reinicie el
> servidor. He intentado con supervisord pero no me ha funcionado.
>
> Los puntos 1 y 2 ya los tengo resueltos, el tema es el punto 3.
>
> Espero me puedan ayudar.
>
>
> Gracias.
>
> Saludos desde Puebla.
> --
> Orvil Juárez
> CEO & Owner
> J&A Consulting
> http://www.jacons.net
> Buscanos en Facebook: https://www.facebook.com/jaconsfp/
>
>
>
>
> _______________________________________________
> Python-mx mailing list
> Python-mx at python.org
> https://mail.python.org/mailman/listinfo/python-mx
>
>


-- 
---
Noe Nieto
NNieto Consulting Services
M: nnieto at noenieto.com
W: http://noenieto.com
T:  @tzicatl <https://twitter.com/#%21/tzicatl>
Li: Perfil en LinkedIn <http://www.linkedin.com/profile/view?id=84300665>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-mx/attachments/20160901/2a2f01b0/attachment.html>


More information about the Python-mx mailing list