[pyar] [Django] Muchos sitios con una instancia de Django?

SAn gringotumadre en gmail.com
Jue Dic 22 14:08:22 ART 2011


2011/12/22 Dario Ocles <dario.ocles en gmail.com>:
> El día 22 de diciembre de 2011 11:25, SAn <gringotumadre en gmail.com> escribió:
>> 2011/12/22 Dario Ocles <dario.ocles en gmail.com>:
>>> El día 22 de diciembre de 2011 04:18, SAn <gringotumadre en gmail.com> escribió:
>>>> 2011/12/21 Dario Ocles <dario.ocles en gmail.com>:
>>>>> Buenas gente.
>>>>>
>>>>> Ando con un proyecto en Django que básicamente se trata de X sitios
>>>>> con el mismo código para todos. La única diferencia entre todos los
>>>>> sitios es el SITE_ID, donde busca los templates y alguna que otra
>>>>> configuracion.
>>>>
>>>> La base de datos es la misma o cada sitio tiene la suya propia?
>>>>
>>>
>>> Comparten todo por ahora salvo los templates.
>>>
>>
>> Me refiero a si comparten la misma configuracion de la base de datos.
>>
>
> Sisi, había entendido. Comparten absolutamente todo. La misma base,
> misma conexion, mismas tablas... filtro la información de cada sitio
> en la DB con el framework Site de Django.
>
>> Si no podes arreglarlo a nivel aplicación y queres levantar instancias
>> independientes de bajo tráfico te recomiendo que uses a luisito [0].
>> Luisito es un proxy reverso escrito para resolver exactamente el
>> problema de tener muchos sitios de bajo tráfico escritos en django.
>> Nosotros lo estamos usando en producción desde hace más de un año con
>> unos 50 sitios mas o menos pero deberia escalar a mas sitios sin
>> problemas.
>>
>> La documentación está ahi en el repositorio, pero cualquier cosa no
>> dudes en preguntar.
>>
>> [0] https://bitbucket.org/san/luisito
>>
>
> Pinta muy bien luisito.
>
> En mi cabeza me imagine que se podría levantar una sola instancia de
> Django y con algún middleware o alguna otra magia solucionar lo de los
> distintos sitios. Con luisito se siguen levantando una instancia por
> aplicación.

si

> De todas formas seguro termino usando luisito porque es la solución
> mas rápida y sin modificar mi aplicación :) . Pero me gustaría lograr
> solucionar esto, en algún momento, con una sola instancia.

te recomiendo que lo resuelvas ahora que tenes pocos sitios. En
definitiva un middleware que cambie el site ID y algunas
configuraciones (hay que tener cuidado con cuales configuraciones se
cambian, algunas no se pueden cambiar "en caliente") es muy sencillo
lo podrias realizar en un rato. Los middlewares de django son muy
simples, no es un hack tan horrible.

>
> Cuanto latencia agrega a un pedido si la aplicación no esta corriendo?

Depende de la velocidad del servidor, puede ser ~medio segundo a un
par de segundos. No es una latencia terrible, sobre todo porque el
sitio cuando esta up luego responde rapidamente los requests
subsiguientes.


Suerte y comentanos como lo resolviste,
SAn



More information about the pyar mailing list