Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Algunas técnicas para acelerar Django

Igor Támara
February 07, 2014

Algunas técnicas para acelerar Django

Mostramos algunos tips para hacer que las aplicaciones desplegadas en Django sean más rápidas. Estos son a partir de casos de la vida real.

Igor Támara

February 07, 2014
Tweet

More Decks by Igor Támara

Other Decks in Programming

Transcript

  1. El plan Preguntas a responder Optimizando Al final Algunas t´

    ecnicas para optimizar Django En sitios no est´ aticos Igor T´ amara 6 de febrero de 2014 Igor T´ amara Algunas t´ ecnicas para optimizar Django
  2. El plan Preguntas a responder Optimizando Al final El presentador

    de la charla Igor T´ amara Linux desde 1.997 Python en el 2.000 Django desde la versi´ on 0.96 Trabajo en Axiacore [email protected] - [email protected] Igor T´ amara Algunas t´ ecnicas para optimizar Django
  3. El plan Preguntas a responder Optimizando Al final El presentador

    de la charla Nuestra ruta Preguntas a responder No in-depth Recomendaciones Base de datos Cach´ e Infraestructura Otros trucos Socializaci´ on Igor T´ amara Algunas t´ ecnicas para optimizar Django
  4. El plan Preguntas a responder Optimizando Al final Nuestro sitio

    no anda r´ apido ¿d´ onde? ¿por qu´ e? plan de acci´ on Igor T´ amara Algunas t´ ecnicas para optimizar Django
  5. El plan Preguntas a responder Optimizando Al final Herramientas base

    ORM y base de datos Uso de cach´ e Otras consideraciones En producci´ on Django Debug Toolbar https://github.com/django-debug-toolbar/ django-debug-toolbar Igor T´ amara Algunas t´ ecnicas para optimizar Django
  6. El plan Preguntas a responder Optimizando Al final Herramientas base

    ORM y base de datos Uso de cach´ e Otras consideraciones En producci´ on Django Extensions y kcachegrind https: //github.com/django-extensions/django-extensions http://kcachegrind.sourceforge.net/html/Home.html ipdb ipython . El shell es tu amigo ./manage.py runprofileserver –kcachegrind –prof-path=/tmp/django-profiling 1 1gracias jerojasro Igor T´ amara Algunas t´ ecnicas para optimizar Django
  7. El plan Preguntas a responder Optimizando Al final Herramientas base

    ORM y base de datos Uso de cach´ e Otras consideraciones En producci´ on select related y prefetch related https://docs.djangoproject.com/en/1.6/ref/models/ querysets/#select-related ´ Unicamente se requiere modificar la vista Usar with para evitar m´ ultiples llamados Usar varias bases de datos(routers) Igor T´ amara Algunas t´ ecnicas para optimizar Django
  8. El plan Preguntas a responder Optimizando Al final Herramientas base

    ORM y base de datos Uso de cach´ e Otras consideraciones En producci´ on El cach´ e al rescate https://docs.djangoproject.com/en/1.6/topics/cache/ redis almacenar datos usados normalmente A nivel de template? usar el cach´ e a bajo nivel?(no es bajo) Se puede guardar incluso Querysets Por session o por usuario, elige bien tu llave. En nuestro caso, datos de tablas relacionadas y usados frecuentemente al momento del login Igor T´ amara Algunas t´ ecnicas para optimizar Django
  9. El plan Preguntas a responder Optimizando Al final Herramientas base

    ORM y base de datos Uso de cach´ e Otras consideraciones En producci´ on Retardar el llamado de im´ agenes Igor T´ amara Algunas t´ ecnicas para optimizar Django
  10. El plan Preguntas a responder Optimizando Al final Herramientas base

    ORM y base de datos Uso de cach´ e Otras consideraciones En producci´ on Evitar las listas desplegables No pondr´ as todos los departamentos en una lista desplegable. Usa autocomplete cuando sea posible. Usa otra aproximaci´ on que llene por js una lista relacionada. Haz cach´ e de aquello que puede ser costoso (Los men´ us) Haz que el dise˜ no o el cargado permita cargar posteriormente aquello que sabemos que es lento y puede aparecer un poco despu´ es Igor T´ amara Algunas t´ ecnicas para optimizar Django
  11. El plan Preguntas a responder Optimizando Al final Herramientas base

    ORM y base de datos Uso de cach´ e Otras consideraciones En producci´ on Tu motor de base de datos de da poder NO comiences en la primera construcci´ on con un super modelo optimizad´ ısimo, hazlo sencillo y legible json, quieres Nosql? Cuidado con los reportes Los ´ ındices para cuando tengas bastantes datos, antes solamente hacen m´ as lenta la base de datos. Pools de conexi´ on? Ver las notas de Django 1.6 y 1.7 Instagram technical blog is nice!!!! Cuidado con las migraciones Igor T´ amara Algunas t´ ecnicas para optimizar Django
  12. El plan Preguntas a responder Optimizando Al final Herramientas base

    ORM y base de datos Uso de cach´ e Otras consideraciones En producci´ on En el despliegue Servidor Web - Liviano por favor Servidor de aplicaciones - R´ apido que tengo af´ an. Muchos o pocos. Servidor de base de datos - Lo quieres en otro lado? Servidor de cach´ e - En serio tienes tanta memoria? C´ omo los comunicas? sockets unix o de red? nginx + uwsgi + redis + postgresql Servir de sitios distintos aplicaci´ on, im´ agenes, uploads Minificar js, html, css django-pipeline Tu despliegue debe ser r´ apido Igor T´ amara Algunas t´ ecnicas para optimizar Django
  13. El plan Preguntas a responder Optimizando Al final Herramientas base

    ORM y base de datos Uso de cach´ e Otras consideraciones En producci´ on M´ as all´ a de lo evidente No hay una herramienta m´ agica que haga que funcione Usar servicios de monitoreo externos, por ejemplo scout o New Relic Balanceo de carga con el proveedor Ma˜ nana habr´ a una nueva oportunidad Igor T´ amara Algunas t´ ecnicas para optimizar Django
  14. El plan Preguntas a responder Optimizando Al final Herramientas base

    ORM y base de datos Uso de cach´ e Otras consideraciones En producci´ on M´ as all´ a de lo evidente No hay una herramienta m´ agica que haga que funcione Usar servicios de monitoreo externos, por ejemplo scout o New Relic Balanceo de carga con el proveedor Ma˜ nana habr´ a una nueva oportunidad Pero hay que lograr llegar al d´ ıa siguiente Igor T´ amara Algunas t´ ecnicas para optimizar Django
  15. El plan Preguntas a responder Optimizando Al final Que Gracias

    Visita nuestro blog (Talento, juicio y aprecio por el orden), [email protected] http://es.axiacore.com/blog/ Igor T´ amara Algunas t´ ecnicas para optimizar Django