 Grazie intanto che lo venia per l'attesa, grazie intanto per essere qui. Io sono Fabrizio Leo, sono il suo infamber di Flame Networks. Oggi vi porto il caso studio di un nostro cliente che ci ha visti impegnati nelle implementazioni di uno stack tecnologico, per quanto riguarda sistemi di caching avanzati. Questo caso studio cerco di darvi un po' di contesto, quindi è un sito web, ovviamente realizzato con WordPress, ha un'utenza medio alta, picchi di utenti contemporanei piuttosto importanti, i contenuti di questa estanza WordPress non subiscono modifiche di frequente. L'unico contenuto, un elemento che cambia di continuo è la homepage. In questo progetto noi abbiamo dovuto sostanzialmente rispondere a quattro requisiti di natura tecnica, ovvero ridurre il carico di sistema, quindi ridurre l'assorbimento di risorse di sistema, ridurre il TTFB, per chi non lo sapesse il TTFB è l'acronomo di Time to First Bite, ovvero il tempo di risposta che impiega un sistema a fornire il primo byte all'utente che richiede, nel caso specifico, una pagina web. È un elemento misurabile. L'altro requisito, l'altra esigenza era rappresentata dall'incremento di utenza contemporanea, le sessioni simultanei che questo progetto doveva gestire e, in ultimo, l'ottimizzazione in generale delle prestazioni. La scoperta di Goyogurt, poi, dopo, magari, vi spiegherò cosa c'entra Goyogurt, questo è un neboto di cui vi parlerò magari in seguito durante la mia esposizione. Sapiate che sostanzialmente Goyogurt è stata una scoperta casuale, infatti il latte, se è lasciato a contatto con gli altri che cavati dalla telle o da costomo con gli animali, si trammuta naturalmente in Goyogurt e questo consentì all'epoca di conservare, appunto, il latte prima che divenisse malsano, ovvero l'on ingeribile. Ma dopo, ritornerò su questo punto e vi spiegherò il perché. Entriamo all'ottiminarpo nel vivo, parliamo di cache. Molti di voi sapranno cos'è la cache, magari già la usano su diverse istanze WordPress con sistemi più o meno sofisticati. La cache, per definizione, vi ricordo cos'è, è un livello di storage di dati ad alta velocità che memorizza un sottenzio di dati, in genere di natura temporanea, quindi è una memoria volatile. Questa memoria serve per rispondere alle richieste più rapidamente di quando torna serebbe possibile accedendone in volta a quale informazione attraverso il percorso principale nel quale si trovano i dati. Quindi il caching sostanzionmente consente di riutilizzare il modo effecente dei dati che sono già recuperati o già elaborati. La cache bella e cara, ma in realtà può nascondere delle acidie, quindi può rappresentare anche delle criticità. La criticità principale di adottare dei sistemi di caching sono sostanzionate per queste tre. Quindi, fare un oggetto cache non è più valido, cioè quando, traduto, quando una pagina web che è presente all'interno di questa memoria non è più valida, poi perché la mia pagina web non si aggiorna, magari vi sarà capitato di modificare un contenuto all'interno del back-end di WordPress e quella pagina sul front-end, magari non risultava aggiornata, questa è una criticità che spessere introdotta ma anche risolta nell'implementazione dei sistemi di caching. Ma soprattutto, come si fa a rendere il tutto automagico? Vediamolo, parola all'esperto. Allora, in questo caso studio noi abbiamo deciso di implementare tre tecnologie, ovvero HTTP cache, uno stack tecnologico composto da tre elementi, HTTP cache, object cache e un plugin WordPress, quindi nego specifico, varnish, memcached e v3tapalcache. Cosa varnish? Molti di voi probabilmente già conoscono questa tecnologia, varnish cache è sostanzialmente un acceleratore di applicazioni web che comere vers Proxy HTTP, con questa tecnologia, con vani del sito web fino a nove volte, in base all'architettura nella quale varnish cache è stato collocato. Cosa c'è spinto ad utilizzare varnish cache all'interno del nostro caso studio? Quattro elementi, ovvero le levate performance di cui vi parlavo prima, la flessibilità di configurazione, infatti varnish cache è una tecnologia che consente degli altissimi livelli di customizzazione e di configurazione, si adatta in maniera molto molto specifica a tantissimi ambiti di applicazione, sempre legati a contesti HTTP, ma si può modellare rispetto a tantissime esigenze di tantissimi siti web. Varnish cache può essere esteso nelle sue funzionalità anche attraverso i suoi moduli e è l'ultimo fatto che varnish cache sia sostanzialmente una software open source. Cosa è uno cache? Un cache ad oggetti che vengono conservati ad altre prestazioni ovviamente che è destinato per applicazioni web dinamiche con la specificità di alleggerire il carico su una componente database server. Sappiamo tutti che un istanza WordPress orte ad avere il PHP ha anche la componente database server database applicativo dalla quale vengono recuperate le informazioni, quindi con memcached queste informazioni le salviamo all'interno sostanzialmente della memoria di sistema. Le caratteristiche principali che si hanno spinto ad utilizzare memcached all'interno di questo caso studio sono queste, è una memoria volatile a breve termine, non è una storia di persistente, può essere una configurata in architettura class-read ovvero io posso avere per una stessa istanza WordPress più sistemi memcached che lo vorranno insieme, memcached assorbe pochissima memoria, RAM e anche questo è un software open source. Veniamo voi alla parte di integrazione perché le due tecnologie varnish cache e memcached da sole non hanno molto senso in un istanza WordPress perché manca tutto il concetto in livello di integrazione, quindi noi abbiamo scelto per questo progetto specifico vuotletotal cache perché è l'unico framework di ottimizzazione delle prestazioni web per WordPress che è indipendente dall'host e questo plugin che probabilmente molti di voi già usano già è utilizzato da nomani di editori sviluppatori e ostii provider in tutto il mondo da oltre un decennio e questo è stato diciamo un motivo importante che ci ha spinto ad utilizzare questo plugin e non altri come lo siamo vuotletotal cache, vuotletotal cache l'abbiamo integrato affinché interagisca sia con varnish che con meno cached sfruttando le funzionalità native di questo plugin per la ragione di storage quindi di conservazione della cache e cascadenza degli oggetti dalla cache un po' come lo yogurt in questa immagine sono rappresentati due scenari no cache e cache, no scenario no cache e rappresentato il percorso che viene effettuato a macrobocchi ovviamente da una richiesta http quindi il client ovvero l'utente uno di noi che apre un sito web meglio fa una richiesta un sito web e anzi assia prova un web server che è un reverse proxy una una sorta di passacarte passacarte che poi è un'altra richiesta web server di backend vero è proprio su questo web server insiste magari il PHP che elabora le richieste al database server il database server risponde e al ritroso viene restituita la pagina all'utente perché sappiamo che nel browser viene interpretato in un altro che il PHP no non è l'altro che l'HTML PHP il browser non è in grado di elaborarlo ognuno di questi passaggi rappresenta un tempo di elaborazione un tempo di attesa per l'utente immaginate ad esempio un magazziniere ok magazziniere che deve andare a riparire un pacco che si trova su una scaffalatura quindi il magazziniere va deve parlare magari con la resettatria il receptionist il receptionist dice vai a consultare il gestionale il gestionale poi dice parla con il responsabile di magazzino finalmente riesce a capire dove si trova quell'oggetto che deve andare a prendere e deve poi caricare sul furgone affinché può scorrere lo spedisca questo è tutto tempo perso tutto tempo morto qua c'è uno come noi uno come i nostri utenti che aspettano che la pagina vi venga restituita nella scenaria cache invece è vero che noi abbiamo introdotto due livelli di complessità in più che sono varnice memcached ma il processo affronte della richiesta dell'utente va su le vers proxi le vers proxi non va su php non va su web server qui va direttamente su l'acceleratore http acceleratore http che restituisce instantaneamente l'httm all'utente di tempo di attesa qui con zero presso che nullo tempo di attesa tempo di elaborazione al livello di sistema presso che nullo performance al massimo quindi il magazziniere di cui mi parlo prima non deve andare dalla segretaria non deve andare da responsabile di magazzino ma sai esattamente deve andare a caricare quello scato stessa cosa vale per memcached per chi non è momento in cui le elaborazioni del php qui non vado poi su database vado qui se memcached dalle informazioni già salvata se le interrogazioni al database memcached già ce l'ha bella e pronte i risultati vi vengono restiti subito questi sono diciamo concetti fondamentali per l'identazione di un sistema di caching efficiente ora andiamo a terminare un po' più nel vivo il nostro ultimo merelli al di là della parte teorica sono risultati che abbiamo ottenuto con questo progetto allora questo progetto si chiamato conius è un portale web evidentemente realizzato con more press e basa il suo modello di business su in cam da pubblicità in cam da circuiti di affiliate quindi per un portale del genere è assolutamente strategica la parte delle performance questo portale con l'imperimentazione del nostro stack tecnologico ha già determinato sulla carriamaro signore signore qui ok vedo che molti lo amano infatti io mi guardo bene dal ok però vedete che già performance g g qualcosa grade g qualcosa grade già ci dà un a i robot vitals che sono altrettanto importanti sono migliorati tempo di risposta ottimale questa è la prima analisi ok da un analisi empilica molto molto beo c'è molto semplice traffico con l'imperimentazione del nostro stack tecnologico di cash siamo riusciti a garantire al progetto stabilita siamo riusciti a garantirne una una presenza sul mercato questo progetto realizza dai 200.000 ai 400.000 30 mesi le sorgenti di traffico sono principalmente due manche da organic search e una settimana tranquilla questo progetto riesce a gestire anche fino a 100.000 visite giornaliere e anche in termini seo non ci dimentichiamo la nostra croce delizia anche la seo siamo riusciti a determinare sostanzialmente una stabilità ci sono stati cosa vede molto meglio di me ci sono stati diversi app date che hanno che hanno fatto una una una semistraggi dal punto di vista del traffico noi siamo riusciti a mantenerlo in vita con una stabilità sulle keyboard principali fondamentali per il business di questo progetto perché l'implementazione di un sistema di caching per quanto non arrivo possa essere percepito come compesso tecnico noioso un interesse difficile non faccio ne faccio a meno in realtà sono proprio queste metodologie questi tipi di approcci che consentono a un progetto di crescere e di rimanere saldo sul mercato in qualche modo e di poter ma riscalare senza necessariamente investire in ferro cioè in hardware senza dover necessariamente investire in serveroni supermegalattici che poi alla fine vai a vedere che sono il 10% del processore e il 20% della memoria come un sistema di caching di questo tipo noi riusciamo a massimizzare l'utilizzo delle risorse minimo contenendo la spesa dunque io sono arrivato al termine insomma della mia della mia esposizione e rispetto al mio aneddoto iniziale io una domanda vi lascio con una domanda ma il nostro sito web è regolare tutto a posto o forse me ne ha bisogno di un po di yogurt io vi ringrazio e al momento non ho nulla ad aggiungere sotto quelle domande domande alzate la mano così vi raggiungo col microfono chiedevano se si può andare un pochettino più nel dettaglio su come si configurano varnish e memcached anche le parole in più per lo meno su cosa prendere in considerazione magari a che rivolgersi o se qualcosa che si trova nel pannello del proprio server qualche altra domanda così raccogliamo una volta solo poi c'è un microfono questa cosa la domanda dovrebbe essere semplice come viene gestita la cache con gli utenti logati e se hanno fatto ricorso alla fragment cache ne prendiamo ancora un'altra facciamo le due poi eventualmente rifacciamo il gioco così hai tempo di rispondere ok mi sentite ok come ti chiami vincenzo bene allora l'installazione di varnish cache di memcached di per sé è relativamente semplice ok è un servizio di sistema che si installa su un presso che qualsiasi sistema linux sono gratuiti diciamo la cosa complicata gli elementi più complessi sono quelli relativi al setup quindi la configurazione monitoraggio capire se quindi un sistema di caching si comporta esattamente come noi vogliamo che si comporti o meglio che restituisca i contenuti aggiornati che ad esempio non faccia trovare logato all'improvviso un utente che non c'entra niente che che non ha gli accessi al beccand quindi bisogna configurare sostanzialmente è un file di configurazione che ha all'interno varnish che sono delle vcl che chiama così che contengono tutta una serie di direttive che definiscono il comportamento di http della del acceleratore http ok quindi ripeto di per sé l'installazione è relativamente semplice il difficile viene sulla parte di setup sulla parte di fine tuning di varnish memcached invece è più semplice anche lui dei parametri di configurazione così può ottimizzare ma è molto molto più semplice rispetto alla configurazione di varnish poi magari prego un attimo ci stavo arrivando ci stavo arrivando ci stavo posso ci stavo arrivando cercavo diciamo la strada più soft poi se dico devi essere un sistemista è chiaro che bisogna avere competenze sistemistiche per configurare varnish non stiamo parlando di una cosa che può fare la mattina chiunque ci vogliono anni di studio bisogna essere sistemisti bisogna lavorare bisogna buttarci il sangue su questa roba ok lo dico senza mezzi termini poi detto questo ci sono soluzioni gestite che magari ti possono dare varnish già in qualche modo preconfigurato ok ma se lo vuoi fare da solo devi studiare sostanzialmente i sistemi linux devi sapere che cos'è un kernel devi sapere quali su che cosa è un modulo di un kernel devi sapere cos'è un web server come funziona devi sapere quali come come si conferono un virtual host che cos'è un virtual host un web server devi sapere come funziona una locazione di memoria devi sapere come funziona un buffer di memoria devi sapere che cos'è un buffer overflow devi sapere tante cose a livello sistemistico ok perché ne va anche nella parte di sicurezza quando si implementano questi sistemi di caching quindi è un ambito specifico ma è molto complesso da governare non è install plugin e ho fatto li bisogna avere competenze sistemistiche per poter la padronare questa tecnologia padroneggiare perdono questa tecnologia dopo di che bisogna anche avere capacità e doti analitiche perché se il sistema di caching non si comporta come vogliamo dobbiamo poi andare a fare un'analisi analizzare log verificare quali sono gli errori ma li puoi anche non avere degli errori varnish cache dice ok 200 cache hit io ti sto restituendo il dato dalla cache ok ma è quello che veramente voglio quindi vai a capire poi dopo perché varnish cache si sta comportando in un modo che in maniera che è concettamente sbagliato rispetto a quello che sono le tue necessità ma è un lavoro sostanzialmente per sistemisti credo spero di aver risposto alla domanda poi se se ti vane possiamo parlare tranquillamente con molto piacere c'era anche un'altra domanda relativa alle quali chiami Luca ciao alle agli accessi degli utenti come evitare ok ok come dicevo prima varnish a dei file di configurazione all'interno di questi file di configurazione vai a determinare quello che è il suo comportamento quindi si possono escludere a priori sui acceleratori http tutta una serie di percorsi quindi vp admin vp login pui escludere tutto in modo tale da essere competente bypassato dall'acceleratore http ok ma oltre a questo che sicuramente è un livello superiore rispetto poi all'applicazione che si trova sotto poi andare a configurare delle eccezioni specifiche anche sulla guina ed è questo il motivo per il quale abbiamo avendo avuto integrare varnish cache memcached con volto dal cache altrimenti varnish cache se risulterebbe semplicemente un contenitore di oggetti ma non sa dietro di lui che cosa c'è quindi lo si gestisce 이건ne che ci sono delle logiche da apricare ma al livello concettuale tu ripeto pui escludere i pat noti di accesso anche pui escludere ad esempio determinati cochi puoi andare puoi agire anche a livello di sessione quindi da questo punto di vista e lo si può fare diciamo ripeto sempre donna discorso della competenza sistemistica lo si può fare tranquillamente applicando delle regole specifiche c'erano c'erano altre domande se non mi sbaglio per questa domanda prementiamo subito che non siamo sistemisti per cui la domanda è la differenza con il live cache e se si può utilizzare lo stesso plugin o altri usare live speed o questo tipo di plugin e in caso quanto possono essere ben configurati gli hosting che offrono già memcached varnish nel pacchetto senza gestito c'era ancora una seconda domanda io mi fermerei qua perché siamo al limite ciao nome simone allora personalmente non ti so dare una risposta nel merito su quali sono le differenze tra un acceleratore http come varnish e un web server come light speed ok già il fatto che l'ight speed sia sostanzialmente un web server e non un reverse proxy http già questo ti dice che c'è una differenza tecnica sia dal punto di vista del del concetto sia dal punto di vista poi tecnico e tecnologico per quanto riguarda il discorso degli hosting ti posso dire che personalmente non ha molto senso utilizzare delle istanze condivise su progetti che richiedono un ambiente dedicato quindi varnish cache come dicevo prima deve essere gestito in maniera seria necessita di un ambiente con quel dedicato che abbia diciamo uno user space dedicato e che abbia risorse dedicate non è pensabile utilizzare tecnologie di questo tipo sui ambienti condivisi non è assolutamente pensabile una cosa del genere spero spero di averti aiutato qualche nuova e che abbia risposto alla domanda ecco poi quando voi sono a disposizione grazie