[Python] Deploy con nginx e proxy_pass
Manlio Perillo
manlio.perillo a gmail.com
Ven 3 Gen 2014 17:31:47 CET
On 03/01/2014 16:41, enrico franchi wrote:
>
> 2014/1/3 Manlio Perillo <manlio.perillo a gmail.com
> <mailto:manlio.perillo a gmail.com>>
>
> Per concludere, tieni conto che usare cose come Tornado è tutt'altro
> che banale.
>
>
> Beh, fare scalare qualcosa di non asincrono e' ancora meno banale, IMHO.
>
No, direi che è banale.
Usi Apache + mod_wsgi e spendi tanti bei soldi in hardware :)
> Tutto lo stack (applicazione + framework + eventuali librerie) deve
> essere sviluppato con la programmazione asincrona in mente.
>
>
> Vero. Ma d'altra parte non e' che ci sia un mucchio di soluzioni. O
> molli python del tutto...
>
Le soluzioni ci sarebbero pure. A livello di sistema operativo il
supporto c'è. Il problema è che non è uniforme come dovrebbe. Vedi ad
esempio le differenze nell'implementazione di posix_aio, il fatto che
posix_aio funziona solo sui file ma nulla vieta in teoria di usarlo
anche per i socket e altro.
Vedi il fatto che USB che è asincrono per natura, nelle varie
implementazioni non usa l'interfaccia posix_aio, ma una diversa (parlo
di USB perchè lo devo usare per un progetto personale e mi sto sentendo
male a vedere come è implementato).
Vedi il fatto che su Windows hai solo l'equivalente di posix_aio ma non
quello di epoll/kqueue. Potrei continuare all'infinito...
L'altra mancanza grave è l'implementazione dei "protocolli" di
comunicazione. Nella libreria standard di Python (ma non solo) hai
praticamente dei *giocattoli*. Le implementazioni serie sono nei
framework asincroni, ed **ognuno** reimplementa tutto e funziona solo
con quel framework. La libreria standard di Python reinventerà tutto di
nuovo, perchè avrà il suo bel framework asincrono, su cui poi si
dovranno reimplementare tutti i protocolli.
L'API migliore che ho visto è quella della libpq, per la cronaca.
Migliore perchè non dipende da nessun framework, e si mantiene usabile.
[[piccolo rant di inizio anno]]
> E' vero che ci sono dei monkey patch per alcune funzioni della
> libreria standard, ma non ritengo sia saggio affidarsi ciecamente a
> loro.
>
>
> Funzionicchiano, via. Parlo di gevent, non so quelli di tornado.
>
Visto che Tornado usa gevent, immagino si basi su quelli.
> Python e la libreria standard semplicemente non sono pensati per
> un ambiente a green thread.
>
>
> Ma no, se hai un martello sufficientemente grande (e non hai paura di
> usarlo) si fa tutto. ;)
Incluso scassare tutto alla prima disattenzione. ;)
> Si, vero che non sono pensati, quello e' indubbio. Pero' diciamo che ce
> la si fa… ;)
>
> -ho visto perfino django martellato a forza in logiche asincrone
> (backend, non frontend) -
>
Ciao Manlio
Maggiori informazioni sulla lista
Python