Darrera setmana de juny
Escrit per Aaloy a 30 de May , 2010 a les 9:36 a.m.
Aquesta setmana he tocat molt poca cosa de Python i Django, el projecte que ens consumeix gran part del temps és una feina gairebé de rellotgeria però no és un projecte Python. Tot i això he fet servir Django per al prototipat d'algunes part de l'aplicació. És molt més senzill i ràpid muntar un prototip i fer-hi feina que tractar amb l'aplicació real, per molt que tenguem varis entorns de proves.
Estic revisant també els vídeos de la Djangocon Europe 2010. He vist el de Django a l'empresa, el dedicat a la testabilitat i el de GUnicorn. Aquest darrer m'ha agradat especialment ja que tenim plans per anar incorporant GUnicorn com a mètode de referència de desplegament d'aplicacions Django.
En aquests moments estam fent servir CherryPy i la veritat és que funciona molt bé. Encara que la màxima és "si funciona no ho canviïs" GUnicorn és un sistema WSGI molt més orientat a la feina que CherryPy, amb possibilitat de gestionar connexions síncrones i asíncrones. Els benchmarks que hi posen Gunicorn un poc pitjor que altres sistemses WSGI, però per notar-ne la diferència hem de gestionar un lloc web amb moooltes visites. En aquests casos el que ens puguin dir els benchmarks serveix de poc, ja que sempre s'ha d'ajustar la tecnologia al nostre cas concret.
El que té bo GUnicorn a més de l'orientació a la feina és que fa molt senzill desplegar una aplicació Django amb WSGI, fins i tot provant-la en local, està molt ben documentat i amb manteniment actiu.
Parlant d'una altra tema, dir que entenc perfectament a Ricardo quan diu que Amazon l'avorreix! El sistema de contingència que ha desenvolupat Bernat funciona molt bé. Això sí, no hi ha por que els administradors de sistemes es quedin fora feina. Es necessita un bon administrador per fer que tot rutlli, el que sí que hi ha és la tranquilitat de saber que no hi ha problemes de hardware. El valor afeget d'un tècnic d'IT és a més d'entendre com funciona Amazon AWS, crear els scripts necessaris per a automatitzar-ho tot, crear les alarmes, els tests, etc. Amazon no llevarà feina als administradors de sistemes, sols canvia el tipus i la qualitat de feina.
L'altra dia vaig posar la primera alfa-alfa del motor de reserves per hotels a l'entorn de test. Encara està molt verd per a poder-ho alliberar com a codi font, i no he tingut temps per polir alguns errors que té la prova. Per ara és un "naked dessign" on es mostren els contractes, la cerca de disponibilitat i permet modificar algunes coses. Falta documentar, no el codi, que hi està força, però sí fer una documentació amb Sphinx que faciliti entendre tot el que comporta. Si algú vol fer una ullada a l'aplicació que m'ho digui i li facilitaré l'accés.
Seguim intentant trobar un finançament mínim per donar major impuls al projecte, però encara no hem aconseguit res, així que la cosa per ara va tira a tira.
L'altra dia a una trobada es parlava de la necessitat que tenia la gent de WP de comptar amb un motor de reserves semblant al que estam desenvolupant. Crec que no és tan imporant que estigui dins WP com que es pugui fer una integració neta mitjançant cridades Rest, XML o XML-RPC.
No tenc clar quin pot ser el model de negoci d'una aplicació així: cobrar pr suport, per tenir una versió estable, per hostejar el servei?. El que sí tenc clar és que ha de ser de codi obert.
Però no tot ha de ser informàtica, he començat a llegir "Si és dolent t'ho recomano" de Steven Johnson, mentres esper que m'arribin d'Amazon UK dos llibres de gestió de projectes. Per ara Johnson m'està agradant força, té un punt de vista molt fresc respecte a com ens influeixen els canvis com els videjocs, els realities, etc. La seva teoria és que aquests canvis no ens fan més estúpids sinó tot el contrari. Quan l'acabi en faré una ressenya més extensa.
Enllaços citats
Traducciones/Translations by apertium
7 comentaris, 0 trackbacks (URL) , Tags: Informàtica Llibres i revistes Python Django
Comentaris
1 Comentari de guillem a les 11:05 del Sunday 30 May de 2010
Quan estava llegint el teu post he recordat uns benchmarks de servidors python. Sembla que gunicorn no queda gaire ben parat:
http://nichol.as/benchmark-of-python-web-servers
Sempre els benchmarks s'han d'agafar amb agulles, però tot i això és clar que no és el més ràpid.
2 Comentari de guillem a les 11:05 del Sunday 30 May de 2010
Has fet una ullada a gevent? http://www.gevent.org/
3 Comentari de aaloy a les 11:05 del Sunday 30 May de 2010
Efectivament, segons alguns Benchmarks Gnunicorn no és el més ràpid no tan sols el més estalbe front a una càrrega gran. Ha passant unes quantes versions de Gunincorn d'ença del Benchmark i potser fent les optimitzacions i instal·lant la darrera versió això canvia...
Tot i això, el que és interessant és veure que gariebé tots els servidors WSGI que hi ha es comporten bé fins a arribar a les 1100 peticions/segon. No és una cosa que me llevi la són per ara. M'interessa molt més la facilitat de posada en marxa, de gestió i consum de memòria.
La veritat és que CherryPy ens funciona d'allò més bé, però per exemple no té la possibilitat del reinici "en calent" sense perdre connexions.
La idea és fer en poder els nostres propis benchmarks per les aplicacions i tipus de tràfic que tenim.
4 Comentari de guillem a les 11:05 del Sunday 30 May de 2010
Veig que gunicorn suporta gevent. És possible utilitzar gevent + django?
5 Comentari de SebaSj a les 12:05 del Sunday 30 May de 2010
"mentres esper que m'arribin d'Amazon UK dos llibres de gestió de projectes"
Comorl!!?? encara no tens el kindle?
Per cert, per fer-li un cop d'ull al motor de reserves, on s'ha d'omplir la sol·licitud?
6 Comentari de bibigeek a les 07:05 del Sunday 30 May de 2010
Respecte al servidor django, jo localment vaig montar un servidor amb Tornado i la part estàtica amb Nginx.
Tenc que dir que no soc ni molt més un administrador de sistemes, pel que no te puc dir si era eficient o no, me vaig basar amb lo que deia en Nicolas Piël en el post de benchmark, i bono més o menys el fer-lo funcionar va ser simple.
Pregunta1: Que penses sobre el funcionament de Tornado en un entorn de producció?
Pregunta2: No se si és una bona pràctica, però llegint el teu post del Tornado, per arrancar el servidor jo faig: "python webserver.py" i listo, això hauria de ser així a producció?
7 Comentari de aaloy a les 09:05 del Sunday 30 May de 2010
@guillem No he provat gevent amb Django, sols he vist els benchmarks, així que sí que supòs que és possible.
@bibigeek Tornado és una alternativa (la pots fer servir junt a Gunicorn per cert) si la teva aplicació és bàsicament asíncrona, amb Django no li acab de trobar cap avanatge respecte a CherryPy o Gunicorn, així que en un entorn de producció que tengui que funcionar amb Django m'estim més anar cap a solucions més provades. La manera d'arrencar dependrà de com acabis configurant l'aplicació.
@Sebasj Per ser alfa-tester del motor basta que m'envieu un e-mail privat i us faig arribar una clau.
Per cert, que el post digui "la darrera setmana de juny" és una pista de quan m'agradaria treure la versió alfa amb codi.
