Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
Djangoday lt 20120420
Djangoday lt 20120420
Loading in …3
×
1 of 31

Unbit djangoday 20120419

1

Share

Download to read offline

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Unbit djangoday 20120419

  1. Production-grade Servers for Django DjangoDay 2012 Roberto De Ioris (Unbit) giovedì 26 aprile 12
  2. python manage.py runserver Why not ? giovedì 26 aprile 12
  3. Availability crash happens. always. giovedì 26 aprile 12
  4. Concurrency there is no “premature optimization” thing in sysadmins world giovedì 26 aprile 12
  5. Users They ignore you when things go well. They hate you when things go wrong. They want to kill you a bunch of minutes later... giovedì 26 aprile 12
  6. Servers are a cost ...and can became the higher cost very easily giovedì 26 aprile 12
  7. The manager want to scale ...even if he does not know what it means giovedì 26 aprile 12
  8. Security be ready for the truth giovedì 26 aprile 12
  9. WSGI one standard to rule them all... def application(env, start_response): start_response(‘200 OK’, [(‘Content-Type’,‘text/html’)]) return “Hello World” giovedì 26 aprile 12
  10. Proxy servers and static contents do not expose your app to the world. NEVER do not serve static files with Django. NEVER giovedì 26 aprile 12
  11. app world webserver app app giovedì 26 aprile 12
  12. Once upon a time... Flup and mod_python giovedì 26 aprile 12
  13. Flup FastCGI, SCGI, AJP pure python, preforking-multithread giovedì 26 aprile 12
  14. mod_python was a bad idea ? giovedì 26 aprile 12
  15. The new generation mod_wsgi gunicorn uWSGI giovedì 26 aprile 12
  16. mod_wsgi apache module (in C) 2 modes: embedded and daemon preforking and multithread mature solid Windows support giovedì 26 aprile 12
  17. # mod_wsgi config WSGIScriptAlias / /path/to/mysite.com/mysite/wsgi.py WSGIPythonPath /path/to/mysite.com WSGIDaemonProcess pippo processes=2 threads=15 <Directory /path/to/mysite.com/mysite> <Files wsgi.py> Order deny,allow Allow from all </Files> </Directory> giovedì 26 aprile 12
  18. gunicorn pure python do one thing do it well preforking (+async extensions) speaks http easy (maybe the easiest tool ever written) giovedì 26 aprile 12
  19. PYTHONPATH=/var/www gunicorn --workers 2 --bind 127.0.0.1:8000 pippo.wsgi:application # or add gunicorn to INSTALLED_APPS # it will bind to port 8000 python manage.py run_gunicorn giovedì 26 aprile 12
  20. uWSGI pure C preforking + multithread + async + plugins + blah blah feature rich (a blast beat of options) speaks uwsgi,FastCGI,Mongrel2-zeromq,HTTP and maybe Klingon fat-beardy-braces_equipped sysadmin friendly high learning curve made only for making money Mr Wolf would wear a uWSGI t-shirt giovedì 26 aprile 12
  21. uwsgi --http-socket 127.0.0.1:8000 --wsgi-file /var/ww/pippo/wsgi.py --processes 2 --threads 15 # or [uwsgi] http-socket = 128.0.0.1:8000 wsgi-file = /var/ww/pippo/wsgi.py processes = 2 threads = 15 # or <uwsgi> <http-socket> 128.0.0.1:8000</http-socket> <wsgi-file> /var/ww/pippo/wsgi.py</wsgi-file> <processes>2</processes> <threads>15</threads> </uwsgi> #or ..... giovedì 26 aprile 12
  22. before you ask... speed is not a problem giovedì 26 aprile 12
  23. Which One? no easy answers...but... giovedì 26 aprile 12
  24. DO NOT LOOK AT BENCHMARKS ...otherwise you will directly go with uWSGI... giovedì 26 aprile 12
  25. Newbie ? gunicorn is the easiest choice giovedì 26 aprile 12
  26. need full apache integration ? mod_wsgi FTW giovedì 26 aprile 12
  27. want a full stack ? uWSGI has no competitors giovedì 26 aprile 12
  28. on the cloud ? gunicorn and uWSGI all over the place giovedì 26 aprile 12
  29. still confused ? gunicorn uWSGI mod_wsgi giovedì 26 aprile 12
  30. other choices ? a lot... Tornado Passenger fapws3 ... giovedì 26 aprile 12
  31. Questions ? giovedì 26 aprile 12

×