Chi sono

Fabrizio Balliano
@fballiano
PHP dal 1999
Magento dal 2007
magento.com/it admin
Full time Magento dal 2011
CTO di Sevenlike S.r.l.


Cos'è varnish




Web application accelerator
Reverse proxy  HTTP
Cache server

Enorme guadagno di velocità
Minor carico CPU
Minor traffico di rete
Soluzione full RAM

Cos'è varnish per Magento




Full Page Cache
- HTML pre renderizzato

Asset statici
- JS/CSS
- Immagini

esempio di infrastruttura



percorso visitatori
pagina non in cache



percorso visitatori
pagina in cache



Il problema è...




I server web
non sono a conoscenza
di una visita
ad una pagina in cache

Possiamo tracciare i visitatori
in altri modi no?


Molti software di tracciamento moderni
(in realtà servizi)
sono basati su javascript

Qualcuno ha detto Google Analytics?

E se volessimo tracciare un visitatore 
all'interno di MAGENTO?


Personalizzare l'esperienza di browsing
in base al comportamento del visitatore

Report a backend

ad esempio



Un altro esempio



un altro ancora



ma... se i server di frontend

non ricevono le richieste...



queste feature

(e altri tipi di tracciamento)

non possono funzionare

Cookies / localstorage?


Possiamo utilizzarli per ricreare i "recently viewed"?

Sì, ma non è abbastanza in molti casi.
Risolve solo parte del problema.

Torniamo al nostro percorso

Notate qualcosa?



Blocchi dinamici!



Tipi di blocchi dinamici

ESI: Edge Side Includes
  • Invisibili ai client
  • Prima del page load
  • Possono essere in cache
  • tutto il sito/una pagina 
  • un solo utente/tutti
  • NO COOKIES!
  • Pochi dati trasferiti
AJAX
  • Visibili ai client
  • Dopo il page load
  • Can NOT be cached
  • COOKIES!
  • Molti dati trasferiti 

    Reference della configurazione



    Aggiungiamo un nuovo blocco dinamico!?


    Hey, aspetta!

    Ogni chiamata ai server web
    è importante!

    Possiamo raggiungere l'obiettivo

    senza aggiungere un nuovo

    blocco dinamico ESI/AJAX?

    Flash messages!



    PATCH al CORE?

    MAI!

     

    Flash messages:  estendiamoli


    https://github.com/fballiano/magento-turpentine-recently-viewed


    Flash messages:  estendiamoli


    class Fballiano_TurpentineRecentlyViewed_Block_Messages extends Nexcessnet_Turpentine_Block_Core_Messages
    {
        public function _prepareLayout()
        {
            // code to do whatever we want
            return parent::_prepareLayout();
        }
    }

    THANK YOU!


    Made with Slides.com