 Sarò bravissimo che siamo tiratissimi con i tempi, Matteo ha iniziato a partecipare a community warpers proprio a Torino nel 2019 e da allora ha girato un po' tutto il mondo facendo lo speaker in vari war camp anche gli Stati Uniti quindi diamo il benvenuto a Matteo Enna che ci spiegherà come velocizzare warpers usando varnish Ciao a tutti, gli argomenti di oggi riguardano principalmente le prestazioni quindi partiremo con un piccolo ripassino di reti, parliamo di prestazioni di varnish che è l'argomento principale di oggi proxy a reverse proxy che riguardano la parte di ripasso come funziona e i due linguaggi su cui si basa io sono Matteo Enna, sono un backhand developer e mi piace lavorare comunque con ICMS open source quindi adesso parliamo un po' della parte un po' più noioso, un piccolo ripassino di reti la cosa succede è quando andiamo su un sito internet quindi digitiamo sul nostro browser torino.warcamp.org il nostro browser fa una richiesta get alloasting, riceve tutti i nostri dati e poi tocca al nostro hosting rispondere detto in prole pobre questo è il protocollo HTTP una volta che loasting riceve tutto questo ci sarà un web server, apache o nginx dirotteranno la richiesta a linguaggio di programmazione il PHP e poi ci saranno diverse query che il nostro CMS farà una volta successo questo poi ci sarà un sistema di render che crea l'HTML della nostra pagina ci saranno i vari file multimediali da caricare quindi GIS, CSS, le immagini e poi ho scritto 2023 però già da 5 anni c'è l'Iax che a sua volta farà le sue richieste al nostro hosting facciamo un esempio, immaginiamo la nostra on page di HuCommerce rendiamola un po' più critica magari durante il Black Friday quindi cosa abbiamo? Abbiamo una lunghissima pagina, magari dei banner in cui ci sono le promozioni quindi tutti i nostri articoli che sono in promozione liste di prodotti in evidenza, ovviamente i nostri CSS GIS l'atto tecnico con cui ci saranno dei cicli for che scorreranno tutte le promozioni dentro queste ci saranno dei cicli for che ci faranno vedere tutti i nostri prodotti e magari dentro ogni prodotto ci saranno dei cicli che magari espongono alcuni attributi e infine ci saranno tantissimi utenti che faranno quindi tante accessi, tantissimi clienti quindi questi utenti comunque scriveranno sul nostro database perché comunque faccio l'ordine, faccio il carrello, viene salvato i carrelli poi si trasformano anche in ordini quindi bisogna essere pronti per questa correnza quindi cosa facciamo di solito? Tutte le immagini ovviamente le abbiamo già ottimizzate il CSS GIS sono già minificati, abbiamo un hosting all'altezza usiamo il cdn dove il browser può casciare, facciamo utilizzare la cache ovviamente cerchiamo anche di utilizzare una cache lato backend perché farle stessi query mille volte è tutto quello che comunque possiamo rendere statico, cerchiamo di rendere lo statico così carichiamo il meno possibile il nostro sito però comunque tanti utenti, tanti clienti, carrelli e ordini quindi comunque c'è anche un'operazione di scrittura comunque abbastanza impegnativa poi bisogna anche pensare che lavoriamo anche con l'IJAX quindi comunque c'è tantissime chiamate HTTP quindi il carico nel nostro web server comunque è abbastanza eccessivo dopo 13 slide iniziamo a parlare comunque e nominare almeno varnish allora varnish cache è un web accelerator ed è rilasciato con una licenza comunque libera forse il reverse cache è un termine sbagliato è un reverse proxy, altro ripassino diretti il proxy è un livello intermediario quello che di solito noi conosciamo lavora a livello di macchina di computer, volevo dire si mette un ostrato che c'è subito dopo il nostro browser e quindi che filtra, gestice alcune chiamate il reverse proxy è al contrario, è un ostrato che c'è prima del nostro hosting qui un piccolo esempio quindi l'utente cerca di connettersi è un proxy normale, blocca, filtra e gestisce prende il reverse proxy invece è alla fine quindi l'utente va, si connette a internet, cerca di andare una pagina internet c'è il reverse proxy che può bloccare, filtra a registire quello che stiamo vedendo il reverse proxy serve comunque per tante cose essendo all'imprima delle macchine, può bilanciare il carico se abbiamo un sito distribuito su N macchine ha diverse tecnologie che possono dire il 5% del carico va su questa macchina, il 15 su un'altra e così via, la privacy migliorata essendo un livello che c'è intermedio comunque puoi strutturare il reverse proxy in modo tale che certi dati di due utenti non ti arrivino puoi utilizzare anche i più certificati SSL e poi può funzionare anche come cache è una cache a quel livello comunque molto utile perché essendo prima dell'webserver l'webserver non viene chiamato in causa quindi non elabora il PHP comunque le queri che sono cache non vengono anche fatte riusciamo a ottimizzare moltissimo il nostro lavoro come funziona? la prima volta che noi accediamo su un sito internet ovviamente la richiesta arriva a varnish varnish dice ok questa pagina ce l'ho in cache ottimo te la restituisco se non ce l'ho in memoria passo la palla al nostro web server per fare tutte le sue queri, fari i suoi calcoli etc e restituisce la pagina restituendo la pagina varnish si salva una copia quindi questo permette di non avere elaborazioni né nella pagina principale né nel potenziali chiamate dei various on quindi tutte le chiamate sop rest possono essere lavorate direttamente a livello di varnish questo però può far capire che abbiamo una scarsa dinamicità per esempio durante il black friday che ultimamente dura una settimana di promozioni magari abbiamo un team della nostra azienda e magari quotidianamente cambia banner poi andare l'atto andare sul terminale, svuotare la cache diventa un po pesante magari ci sono delle recensioni che vengono caricate quindi l'utente diventa scrittore e anche quello comunque va casciato elementi nel carrello anche quelli comunque non possiamo staticizzare con la pagina non possiamo comunque neanche abusare tantissimo di aiax in alcune pagine comunque non è necessario comunque utilizzare le chiamate rest quindi varnish dentro di sé ha un linguaggio di programmazione che permette tramite dei blocchi di dire in una stessa pagina questo pezzettino salvamolo in cache questo pezzettino invece rielabbralo ogni volta immaginiamo per esempio il carrello il carrello comunque il contenuto non c'è bisogno che venga caricato il contenuto c'è bisogno che venga caricato ogni volta però abbiamo comunque un idr, abbiamo comunque un menu abbiamo comunque un footer che magari li concine ecc. quindi è carico in più che non ci serve sono chiamate HTTP che non ci servono alcune le elaborerà la nostra cdn, ma alcune no esi come ho detto prima sono dei tag quindi dentro questi tag ci sono per dichiarare ok questo funziona tramite cache questo nel funzionamento classico del nostro web server qua ho messo alcuni esempi questo per esempio come lavora la bash con la HTML questo è un linguaggio di programmazione che ci indica a seconda della pagina cosa devi fare questo ultimo pezzo è un linguaggio che si chiama la WCL la WCL è la penultima slide in cui noi creiamo le nostre funzioni per dire comportati in questo modo questa pagina invece in quest'altra pagina in quest'altro modo un altro esempio col purge e il ban, quindi tu votami la cache e in alcuni casi restituicimo un altro tipo di contenuto come linguaggio di programmazione è fatto a hook e sabratin quindi appena che c'è un determinato evento viene triggerato quella funzione qua ci sono alcune funzioni chiave inoltre un'altra cosa importante che ho citato prima è load balancing quindi viene a seconda del il carico viene diviso su più macchine quindi il carico di lavoro è diviso utilizza i sistemi più classici round robin etc prima di salutarvi vi ricordo che utilizza una licenza completamente col free software, quindi liberissima se volete fare di approfondimenti con la scelta degli incutili grazie a tutti grazie