 Buongiorno a tutti, sono molto contento di essere qui e di poter condividere con voi questa esperienza. Cosa vedremo oggi? Oggi vedremo come scalare un e-commerce con Action Scheduler. Prima di questo mi presento, sono Sebastian Ornoy e sono un po' emozionato, ma va bene così. Bene, lavoro come sviluppatore front-end e back-end, quindi full stack in performance e sono un grande appassionato di marketing e informatica e questo ha reso appunto lo sviluppo e-commerce il lavoro perfetto per me. Cosa ho deciso di condividere con voi oggi? Oggi condividerò con voi Action Scheduler e ritengo che sia uno strumento molto utile quanto se deve scalare un e-commerce. Cosa vedremo nello specifico? Quelle che sono le sfide comuni per nello scalare un e-commerce, Action Scheduler come soluzione e nello specifico, quando la dizeremo da tecniche, ovvero la pianificazione delle attività, la gestione delle priorità e la distribuzione del carico di lavoro. Quali sono le sfide più comuni? Sicuramente quando un e-commerce inizia a ingrandirsi, il primo è il carico di lavoro, perché con più utenti il sito fa più fatica e in correlazione alla seconda attività, appunto gestire attività come ordini, pagamenti, aggiornamento o analisi, perché facciamo anche analisi sulle abitudini dei clienti e di acquisto risultano molto più complessi. Come ha specificato anche Andrea Cardinali, anche la gestione delle prestazioni è molto importante, perché quando un e-commerce cresce e ci sono più utenti, una mancata gestione delle prestazioni porta inevitabilmente a dei tempi di caricamento più lunghi. E come sappiamo? Tutti noi, quando vogliamo comprare qualcosa, vogliamo che sia veloce e che arrivi subito, giusto? Esatto. Quindi vediamo Action Scheduler e come può aiutarci? Partiamo dal dire cos'è Action Scheduler. Action Scheduler è un premore di pianificazione per WordPress e quindi ci permette di pianificare in background tutta una serie di attività che verranno eseguite in una maniera di tutta asincrona. Action Scheduler è sviluppato e manutenuto da automatic e viene ampiamente utilizzato in realtà sia da WordPress che da e-commerce. Avete un sito con ad esempio una membership, ogni volta che una membership viene riattivata, utilizza Action Scheduler. Quindi quali sono i vantaggi di utilizzarlo è che migliora le prestazioni, automatizza processi critici e distribuisce il carico di lavoro. Vediamo la pianificazione delle attività. Action Scheduler ci permette di pianificare delle azioni in background come ho detto prima che verranno eseguite in una maniera di tutta asincrona. Vediamo una pianificazione efficiente ad esempio una delle attività critiche e l'aggiornamento del catalogo con tutti i suoi prodotti. Se noi possiamo pianificare questa attività vuol dire che abbiamo il controllo, se abbiamo il controllo cosa succede? Che io lo pianifico in un momento dove ho meno traffico che potrebbe essere di notte e questo mi permette di avere delle performance migliori perché giustamente se mi partisse questo aggiornamento in un periodo di forte scondistica potrebbe essere un problema. Velocizza le operazioni, quando compriamo un qualsiasi elemento ci aspettiamo un'email che ci dica grazie di aver acquistato. Se noi disaccoppiamo questa operazione quindi non la processiamo più nel processo standard di WordPress, quello che succede è che ogni ordine dura un pochino meno, fatelo con tanti ordini e un e-commerce che sta scalando e un bel miglioramento. La gestione delle priorità in realtà è estretamente correlata alla pianificazione perché la gestione delle priorità ci permette appunto di dire ad action scheduler quelle che sono le attività più importanti. Prendiamo ad esempio due attività che potrebbe essere l'invio di un newsletter e l'aggiornamento del catalogo. Sicuramente avere il catalogo aggiornato è più importante di inviare un newsletter e quindi che succede? Che impostando una priorità action scheduler in un momento di forte carico si ferma, processa prima tutte le attività con una priorità più alta e poi quando ha finito processa la seconda attività con una priorità più bassa. Qual è però la priorità che vince? Vince la priorità più bassa, quindi l'attività pianificata con una priorità più bassa vince su rispetto ad una con una priorità più alta perché si basa sul concetto degli hook. Quindi se voi mettete una priorità di 5 o di 10 ad esempio su l'aggiornamento del catalogo con una priorità di 20 o 25 su quella del newsletter, la newsletter si ferma finché non ha finito di aggiornare il catalogo non va avanti e questo ovviamente impedisceïs impede il sito di bloccarsi di avere ralentamente. La distribuzione del carico di lavoro è un'altra cosa molto importante perché sfrutta il concetto di coda, quanti di voi utilita le action schedule conoscano il concetto di coda? Ok, allora, in sostanza si tratta di fare questo, prendere un'azione di grande dimensioni e ridurre in pezzi più piccoli da eseguire uno per volta, prendiamo quello che ho detto all'inizio per l'acquistamento di l'acquistamento di l'attività, ma magari volete fare un'analisi su quelle che sono le abitutini di acquisto dei vostri clienti. Perfetto, quando avete cominciato, avete avviato questo sito, magari questa attività l'ha gestivata in maniera semplice, ma immaginate un sito che ha un forte scaling. Che succede quando deve analizzare molti più utenti? Possiamo capitare in una situazione pessima dove la nostra funzione va in temaut, non riesce a rendere questa analisi. Come ci aiuta la coda? Noi prendiamo questa grande analisi, la dividiamo in tante code più piccole che verranno eseguite una alla volta, quindi finché non finisco la prima coda, non vado avanti con la seconda. Questo è codice da prova di futuro, perché non importa quanti utenti dovranno processare da qui a dieci anni, io so che, anche se aumentano, faccio tante code e quindi il mio sito non si blocca mai. Ho portato due esempi, che sono due funzionalità prese dal sito official ed ActionScalver, la prima ti permette di pianificare un'azione che verrà eseguita prima possibile, quindi in qualsiasi caso potete pianificare un'azione da eseguiti prima possibile, potete utilizzare questa funzionalità che si chiama AsyncU, AsyncAction e potete utilizzarla come per primo esempio, dove quando il vostro utente fa un ordine l'email e la mandate in maniera asynchronous e quindi riduce del tempo di caricamento. La seconda invece è a schedule RecuringAction che vuole un periodo di tempo perché è un'attività che viene ripetuta nel tempo, quindi se voi sapete che volete aggiornare il vostro catalogo due volte a settimana, tre volte a settimana, tutti i giorni, potete passare un strange di tempo, un strange di tempo, in questo caso io ho passato ogni giorno e quindi ogni giorno io eseguo una qualsiasi azione, anche perché ActionScalver funzionerebbe un classico filtro o un addaction, quindi voi fate un addaction, ActionScalver ogni minuto controlla se c'è un'azione programmata, se c'è la trova, la processa. Bene, io vi auguro un buon lavoro nello scaling dei vostri commerce per donarli per le emozioni, però sono veramente contento di essere qui con voi.