Denis Darii   (denis.darii@gmail.com)          presentaDJANGO FAGUNGIS
¿ FAGUNGIS ?       Significato?È unaltra parola africana?                              Denis Darii
FA+GU+NGI+S             è un acronimoFAbric + GUnicorn + NGInx + Supervisor                                Denis Darii
FABRICUna libreria Python che semplifica luso di SSH per il deploy             di applicazioni o compiti di sistema.      ...
GUNICORNGreen Unicorn è un server WSGI/HTTP Python per UNIX.                                            Denis Darii
NGINXè un web server / proxy inverso leggero ad alte prestazioni                                               Denis Darii
SUPERVISORUn sistema client/server che permette agli utenti di monitorare    e controllare diversi processi su piattaforme...
Ok!Ma cosè FAGUNGIS?                     Denis Darii
FAGUNGIS  Un insieme di “task” FABRIC che hanno ilcompito di installare e configurare un interoambiente per il vostro prog...
FAGUNGIS  Quindi, vi darà la possibilità, direttamente dalcomputer locale, di configurare e mettere inproduzione il proget...
FAGUNGISPerché lho creato?                      Denis Darii
perché ho creato                             FAGUNGISDiversi motivi mi hanno spinto: ●   DRY – non ripetere la stessa proc...
installiamoFAGUNGIS               Denis Darii
FAGUNGISBasta un semplice:$ pip install django-fagungis* o consultate la documentazione per vie alternative               ...
configuriamoFAGUNGIS               Denis Darii
configuriamo                                        FAGUNGISCreiamo un file chiamato fabfile.py dove settare tutti I param...
configuriamo                        FAGUNGISApriamo il file appena creato e apportiamo delle modifiche in base allenostre ...
configuriamo                    FAGUNGISSalvare il file e la configurazione di FAGUNGIS è finità!           Ora siamo pron...
usare                        FAGUNGISPer avviare il setup, basta lanciare un semplice:$ fab djangoday setupPer prima cosa,...
usare                        FAGUNGISSe il test della configurazione è passato, osserverete sul monitor unelenco contenent...
usare                        FAGUNGISAlla fine dellesecuzione:...djangoday correctly started![13:48:44] Setup finished in ...
usare                   FAGUNGISDa adesso in poi, per portare in produzione le modifiche alvostro progetto, basterà un sem...
usare                 FAGUNGISOra aprire un browser e accedere a http://djangoday.it       A questo punto, il nostro sito ...
capireFAGUNGIS   Si, bello!Ma cosha fatto?                   Denis Darii
capire                        FAGUNGISSETUP ha fatto per noi: ●   installato le dipendenze di sistema(pacchetti Debian/Ubu...
capire                         FAGUNGISDEPLOY fa per noi: ●   aggiorna il codice del progetto ●   installa le dipendenze (...
capire          FAGUNGISRecapitolando cosa abbiamo adesso?                             Denis Darii
capireFAGUNGIS      visitatore http://djangoday.it                       Denis Darii
capireFAGUNGIS      visitatore http://djangoday.it       Porta 80      Risponde        NGINX                       Denis D...
capire        FAGUNGIS              visitatore         http://djangoday.it               Porta 80                    ^/med...
capire        FAGUNGIS              visitatore         http://djangoday.it               Porta 80                    ^/med...
capire        FAGUNGIS              visitatore         http://djangoday.it               Porta 80                    ^/med...
capire                    FAGUNGIS                               visitatore                          http://djangoday.it  ...
capire                         FAGUNGIS                                    visitatore                               http:/...
FAGUNGISTestare tutto!                 Denis Darii
testare           FAGUNGIS        Fagungis Testprojecthttps://bitbucket.org/DNX/django_fagungis_testproject      Un seplic...
FAGUNGIS TESTPROJECT$ hg clone https://bitbucket.org/DNX/django_fagungis_testproject$ cd django_fagungis_testproject# fabf...
FAGUNGIS                      Futuri Sviluppi●   Supporto https (SSL NGINX)●   Configurare sottodomini●   Scaricare i log ...
FAGUNGISPer rimanere in contatto,seguiteci su:https://bitbucket.org/DNX/django-fagungis/ohttps://github.com/DNX/django-fag...
FAGUNGIS    Vorrei ringraziare in modo particolare:Massimiliano Ravelli e Marco Cellarosi                                 ...
E un ringraziamento davvero speciale...                                   Denis Darii
Marco Beri Grazie!             Denis Darii
Grazie a tutti!              Denis Darii
Upcoming SlideShare
Loading in …5
×

Fagungis

1,008 views

Published on

by Denis Darii

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,008
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Fagungis

  1. 1. Denis Darii (denis.darii@gmail.com) presentaDJANGO FAGUNGIS
  2. 2. ¿ FAGUNGIS ? Significato?È unaltra parola africana? Denis Darii
  3. 3. FA+GU+NGI+S è un acronimoFAbric + GUnicorn + NGInx + Supervisor Denis Darii
  4. 4. FABRICUna libreria Python che semplifica luso di SSH per il deploy di applicazioni o compiti di sistema. Denis Darii
  5. 5. GUNICORNGreen Unicorn è un server WSGI/HTTP Python per UNIX. Denis Darii
  6. 6. NGINXè un web server / proxy inverso leggero ad alte prestazioni Denis Darii
  7. 7. SUPERVISORUn sistema client/server che permette agli utenti di monitorare e controllare diversi processi su piattaforme UNIX-like Denis Darii
  8. 8. Ok!Ma cosè FAGUNGIS? Denis Darii
  9. 9. FAGUNGIS Un insieme di “task” FABRIC che hanno ilcompito di installare e configurare un interoambiente per il vostro progetto DJANGO. Denis Darii
  10. 10. FAGUNGIS Quindi, vi darà la possibilità, direttamente dalcomputer locale, di configurare e mettere inproduzione il progetto, pronto a ricevere visitatorisul vostro dominio. Il tutto con un paio di semplicicomandi. Denis Darii
  11. 11. FAGUNGISPerché lho creato? Denis Darii
  12. 12. perché ho creato FAGUNGISDiversi motivi mi hanno spinto: ● DRY – non ripetere la stessa procedura per ogni sito ● Portabilità del progetto su altri server con un impegno minimo ● Evitare il login diretto sul server con root o alto utente privilegiato ● Dopo il setup, aggiornare in produzione con un solo comando ● Velocità! ( update → syncdb → migrate → collectstatic → riavvio ) ● Test automatici della configurazione, SEMPRE, ad ogni comando ● Modularità e flessibilità Denis Darii
  13. 13. installiamoFAGUNGIS Denis Darii
  14. 14. FAGUNGISBasta un semplice:$ pip install django-fagungis* o consultate la documentazione per vie alternative Denis Darii
  15. 15. configuriamoFAGUNGIS Denis Darii
  16. 16. configuriamo FAGUNGISCreiamo un file chiamato fabfile.py dove settare tutti I parametri delnostro progetto.$ touch fabfile.pyMeglio ancora! Copiare il file example_fabfile.py collocato nellacartella “fagungis” dentro al PYTHONPATH:$ cp /path/to/fagungis/example_fabfile.py fabfile.pyOppure direttamente dal repository di FAGUNGIS:$ wget -O fabfile.py https://bitbucket.org/DNX/django-fagungis/raw/tip/fagungis/example_fabfile.py fabfile.pyQuesto file è meglio tenerlo nella root del vostro progetto django, sotto controllo versione,in quanto le modifiche a questo andranno a rispecchiare le modifiche al vostro progetto. Denis Darii
  17. 17. configuriamo FAGUNGISApriamo il file appena creato e apportiamo delle modifiche in base allenostre esigenze.Ogni parametro è anticipato da una o più righe di commento chespiegano lo scopo di questo.Si possono tenere i valori di default, cambiando solo: ● Nome del progetto, esempio “djangoday” ● Repository ● Host del server ● Dominio, esempio “djangoday.it” Denis Darii
  18. 18. configuriamo FAGUNGISSalvare il file e la configurazione di FAGUNGIS è finità! Ora siamo pronti a lanciare il primo SETUP. Denis Darii
  19. 19. usare FAGUNGISPer avviare il setup, basta lanciare un semplice:$ fab djangoday setupPer prima cosa, in un qualsiasi task FAGUNGIS, viene testata la vostraconfigurazione. In caso di errori, FAGUNGIS si ferma e li mostra avideo. Denis Darii
  20. 20. usare FAGUNGISSe il test della configurazione è passato, osserverete sul monitor unelenco contenente i nomi dei parametri e i rispettivi valori.Verificate e confermate di voler andare avanti con una “Y” e INVIO.A questo punto sul monitor si vedranno scorrere tutti i comandi cheFAGUNGIS lancia sul server remoto e il loro output. Denis Darii
  21. 21. usare FAGUNGISAlla fine dellesecuzione:...djangoday correctly started![13:48:44] Setup finished in 188 secondsDone. Denis Darii
  22. 22. usare FAGUNGISDa adesso in poi, per portare in produzione le modifiche alvostro progetto, basterà un semplice:$ fab djangoday deploy Denis Darii
  23. 23. usare FAGUNGISOra aprire un browser e accedere a http://djangoday.it A questo punto, il nostro sito è on line! Denis Darii
  24. 24. capireFAGUNGIS Si, bello!Ma cosha fatto? Denis Darii
  25. 25. capire FAGUNGISSETUP ha fatto per noi: ● installato le dipendenze di sistema(pacchetti Debian/Ubuntu) ● creato lutente django ● creato la struttura delle cartelle(/opt/django/, logs/ scripts/ ...) ● clonato il repository del progetto ● creato il virtualenv ● installato Gunicorn ● installato le dipendenze del progetto(con pip -r requirements.txt) ● caricato le configurazioni per nginx e supervisor ● caricato lo script per far partire gunicorn Denis Darii
  26. 26. capire FAGUNGISDEPLOY fa per noi: ● aggiorna il codice del progetto ● installa le dipendenze (con pip -r requirements.txt) ● carica le configurazioni per nginx e supervisor ● carica lo script per far partire gunicorn ● prepara il progetto django (syncdb, migrate, collectstatic) ● prepara la cartella media (la crea e verifica i permessi) ● riavvia supervisor Denis Darii
  27. 27. capire FAGUNGISRecapitolando cosa abbiamo adesso? Denis Darii
  28. 28. capireFAGUNGIS visitatore http://djangoday.it Denis Darii
  29. 29. capireFAGUNGIS visitatore http://djangoday.it Porta 80 Risponde NGINX Denis Darii
  30. 30. capire FAGUNGIS visitatore http://djangoday.it Porta 80 ^/media/non ^/static/ Risponde mediamedia favicon.ico NGINX Denis Darii
  31. 31. capire FAGUNGIS visitatore http://djangoday.it Porta 80 ^/media/non ^/static/ Risponde mediamedia favicon.ico NGINX progetto djangoday Denis Darii
  32. 32. capire FAGUNGIS visitatore http://djangoday.it Porta 80 ^/media/non ^/static/ Risponde mediamedia favicon.ico NGINX progetto djangoday Denis Darii
  33. 33. capire FAGUNGIS visitatore http://djangoday.it Porta 80 ^/media/ non ^/static/ Risponde media media favicon.ico NGINX proxy_passForward della richiesta porta 8100 GUNICORN progetto workers djangoday Denis Darii
  34. 34. capire FAGUNGIS visitatore http://djangoday.it Porta 80 ^/media/ non ^/static/ Risponde media media favicon.ico NGINX proxy_pass Forward della richiestaSUPERVISOR porta 8100 GUNICORN progetto workers djangoday Denis Darii
  35. 35. FAGUNGISTestare tutto! Denis Darii
  36. 36. testare FAGUNGIS Fagungis Testprojecthttps://bitbucket.org/DNX/django_fagungis_testproject Un seplice progetto Pinax Denis Darii
  37. 37. FAGUNGIS TESTPROJECT$ hg clone https://bitbucket.org/DNX/django_fagungis_testproject$ cd django_fagungis_testproject# fabfile.py presente$ virtualenv /tmp/testenv$ source /tmp/testenv/bin/activate(testenv)$ pip install -r requirements/project.txt# cambiare env.nginx_server_name# oppure aggiungere in /etc/hosts <server-ip> fagungis.test$ fab fagungis_test setupOra aprite il vostro browser e navigate fino a http://fagungis.test Denis Darii
  38. 38. FAGUNGIS Futuri Sviluppi● Supporto https (SSL NGINX)● Configurare sottodomini● Scaricare i log + visualizzazione● Monitoraggio remoto(real time, status, meminfo...)● Migliorare il feedback● Consigli su come risolvere eventuali errori● Configurare il numero di worker_connections per gunicorn● Supporto per Git-SVN-bzr● Caricamento diretto dal vostro workspace (senza hg)● Molto altro ancora... Denis Darii
  39. 39. FAGUNGISPer rimanere in contatto,seguiteci su:https://bitbucket.org/DNX/django-fagungis/ohttps://github.com/DNX/django-fagungis/Il vostro contributo sarà sempre gradito! Denis Darii
  40. 40. FAGUNGIS Vorrei ringraziare in modo particolare:Massimiliano Ravelli e Marco Cellarosi Denis Darii
  41. 41. E un ringraziamento davvero speciale... Denis Darii
  42. 42. Marco Beri Grazie! Denis Darii
  43. 43. Grazie a tutti! Denis Darii

×