Successfully reported this slideshow.
Your SlideShare is downloading. ×

Alessandro Montalti: Gestione di un multi-store internazionale in Magento CE: il caso Arena Water Instinct

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 28 Ad

Alessandro Montalti: Gestione di un multi-store internazionale in Magento CE: il caso Arena Water Instinct

La gestione di un multi-store Magento, composto da decine di store-view e dinamiche differenti, nasconde spesso gestioni complesse e tutt’altro che banali.
In molti conoscono o hanno addirittura affrontato personalmente i limiti di Magento all’aumentare del numero di prodotti gestiti, mentre sono pochi quelli che hanno potuto valutare i side-effect e l’overhead necessari per gestire una gerarchia di store così complessa all’interno della stessa installazione, sia in fatto di performance che di costi di aggiornamento.
Avere a che fare con uno store internazionale costringe inoltre a lavorare su un sistema praticamente sempre “carico” in quanto il carico di utenti e di acquisti, la cui distribuzione è concentrata in alcune ore del giorno, viene però re-distribuita lungo la giornata a causa del differente fuso orario degli store nazionali.
Alessandro Montalti prenderà in esame, a supporto dell’intervento, il caso reale riguardante la progettazione e lo sviluppo del portale Arena Water Instinct: l’eCommerce ufficiale del brand italiano di abbigliamento sportivo, che conta più di 28 store aperti nel mondo (storeview della stessa installazione di Magento) e oltre 5000 prodotti configurabili gestiti.
Verranno quindi affrontati i principali aspetti del sistema realizzato, descrivendo l’architettura sia dal punto di vista sistemistico (server NGIX, Memcache, Varnish) che dal punto di vista di sviluppo (ingegnerizzazione del codice, progettazione dei flussi dati, es. importazione prodotti, prezzi, stock…), con focus particolare sulle ottimizzazioni rese necessarie da questo contesto.

La gestione di un multi-store Magento, composto da decine di store-view e dinamiche differenti, nasconde spesso gestioni complesse e tutt’altro che banali.
In molti conoscono o hanno addirittura affrontato personalmente i limiti di Magento all’aumentare del numero di prodotti gestiti, mentre sono pochi quelli che hanno potuto valutare i side-effect e l’overhead necessari per gestire una gerarchia di store così complessa all’interno della stessa installazione, sia in fatto di performance che di costi di aggiornamento.
Avere a che fare con uno store internazionale costringe inoltre a lavorare su un sistema praticamente sempre “carico” in quanto il carico di utenti e di acquisti, la cui distribuzione è concentrata in alcune ore del giorno, viene però re-distribuita lungo la giornata a causa del differente fuso orario degli store nazionali.
Alessandro Montalti prenderà in esame, a supporto dell’intervento, il caso reale riguardante la progettazione e lo sviluppo del portale Arena Water Instinct: l’eCommerce ufficiale del brand italiano di abbigliamento sportivo, che conta più di 28 store aperti nel mondo (storeview della stessa installazione di Magento) e oltre 5000 prodotti configurabili gestiti.
Verranno quindi affrontati i principali aspetti del sistema realizzato, descrivendo l’architettura sia dal punto di vista sistemistico (server NGIX, Memcache, Varnish) che dal punto di vista di sviluppo (ingegnerizzazione del codice, progettazione dei flussi dati, es. importazione prodotti, prezzi, stock…), con focus particolare sulle ottimizzazioni rese necessarie da questo contesto.

Advertisement
Advertisement

More Related Content

Similar to Alessandro Montalti: Gestione di un multi-store internazionale in Magento CE: il caso Arena Water Instinct (20)

Advertisement

More from Meet Magento Italy (20)

Recently uploaded (20)

Advertisement

Alessandro Montalti: Gestione di un multi-store internazionale in Magento CE: il caso Arena Water Instinct

  1. 1. ALESSANDRO MONTALTI Web Analyst & Developer Cosmobile Srl. @alemontalti – www.cosmobile.com ALESSANDRO MONTALTI Gestione di un multi-store internazionale … : il caso Arena Water Instinct Meet Magento Italy Milano, 6-7 Marzo 2015 @alemontalti #mm15it
  2. 2. Brand & web ALESSANDRO MONTALTI Gestione di un multi-store internazionale … : il caso Arena Water Instinct Meet Magento Italy Milano, 6-7 Marzo 2015 @alemontalti #mm15it
  3. 3. Brand & web: selling strategies ALESSANDRO MONTALTI Gestione di un multi-store internazionale … : il caso Arena Water Instinct Meet Magento Italy Milano, 6-7 Marzo 2015 @alemontalti #mm15it
  4. 4. Crescita e-commerce: retail sales in USA e EU ALESSANDRO MONTALTI Gestione di un multi-store internazionale … : il caso Arena Water Instinct Meet Magento Italy Milano, 6-7 Marzo 2015 @alemontalti #mm15it
  5. 5. Crescita e-commerce: number of online buyers ALESSANDRO MONTALTI Gestione di un multi-store internazionale … : il caso Arena Water Instinct Meet Magento Italy Milano, 6-7 Marzo 2015 @alemontalti #mm15it source: eMarketer
  6. 6. International stores: scenario iniziale ALESSANDRO MONTALTI Gestione di un multi-store internazionale … : il caso Arena Water Instinct Meet Magento Italy Milano, 6-7 Marzo 2015 @alemontalti #mm15it … head offices e-commerce LOGICHE “FULLY CUSTOM” ma difficile gestione uniforme…
  7. 7. International stores: scenario ottimale ALESSANDRO MONTALTI Gestione di un multi-store internazionale … : il caso Arena Water Instinct Meet Magento Italy Milano, 6-7 Marzo 2015 @alemontalti #mm15it … head offices VANTAGGI:  UNIFORMITA’  GESTIONE  AGGIORNAMENTI  OTTIMIZZAZIONI e-commerce ma nella realtà… COMPROMESSO!
  8. 8. International stores: variabili gestionali/marketing ALESSANDRO MONTALTI Gestione di un multi-store internazionale … : il caso Arena Water Instinct Meet Magento Italy Milano, 6-7 Marzo 2015 @alemontalti #mm15it • CATALOGO PRODOTTI • INFORMAZIONI PRODOTTO • CATEGORIZZAZIONE • VETRINE PRODOTTI • ecc… Escluso ovviamente il CONTENUTO e la LINGUA di default dello store… Possono variare: Conseguentemente, viene modificato il LAYOUT dello store e la UX.
  9. 9. International stores: variabili burocratiche/economiche ALESSANDRO MONTALTI Gestione di un multi-store internazionale … : il caso Arena Water Instinct Meet Magento Italy Milano, 6-7 Marzo 2015 @alemontalti #mm15it Tutte le informazioni dipendenti dal paese in cui si sta vendendo… • TASSAZIONE (VAT) • VALUTA • PRICING • PROMOZIONI e COUPON • METODI PAGAMENTO • METODI SPEDIZIONE
  10. 10. E-commerce & platforms: la scelta di Magento ALESSANDRO MONTALTI Gestione di un multi-store internazionale … : il caso Arena Water Instinct Meet Magento Italy Milano, 6-7 Marzo 2015 @alemontalti #mm15it E’ importante quindi scegliere una piattaforma modulare ed estensibile, capace di adattarsi alle necessità presenti e future.
  11. 11. Scaling Magento ALESSANDRO MONTALTI Gestione di un multi-store internazionale … : il caso Arena Water Instinct Meet Magento Italy Milano, 6-7 Marzo 2015 @alemontalti #mm15it Magento ha una politica di replicazione dei dati (overhead) per coniugare FLESSIBILITA’ e PERFORMANCE • Tabelle ‘flat’ in database • Processi di indicizzazione • Modularità e generalità • ecc… Impiego di grandi risorse computazionali
  12. 12. Scaling Magento ALESSANDRO MONTALTI Gestione di un multi-store internazionale … : il caso Arena Water Instinct Meet Magento Italy Milano, 6-7 Marzo 2015 @alemontalti #mm15it Magento ha una politica di replicazione dei dati (overhead) per coniugare FLESSIBILITA’ e PERFORMANCE  NUMERO DI STORE VIEW  NUMERO DI PRODOTTI  NUMERO DI CATEGORIE  NUMERO DI ATTRIBUTI E TIPO
  13. 13. Scaling Magento ALESSANDRO MONTALTI Gestione di un multi-store internazionale … : il caso Arena Water Instinct Meet Magento Italy Milano, 6-7 Marzo 2015 @alemontalti #mm15it Come gestire la complessità e assicurare buone performance? Magento cache? Varnish? CDN? MySQL optimization? APC? Cloud services? ANALISI e PROGETTAZIONE ad hoc! “Non sempre la somma di buoni strumenti è una soluzione migliore.”
  14. 14. ALESSANDRO MONTALTI Gestione di un multi-store internazionale … : il caso Arena Water Instinct Meet Magento Italy Milano, 6-7 Marzo 2015 @alemontalti #mm15it ARENA WATER INSTINCT www.arenawaterinstinct.com
  15. 15. ALESSANDRO MONTALTI Gestione di un multi-store internazionale … : il caso Arena Water Instinct Meet Magento Italy Milano, 6-7 Marzo 2015 @alemontalti #mm15it ARENA WATER INSTINCT www.arenawaterinstinct.com • Magento CE 1.7.0.2 • Singola installazione • 28 store online • 2 store catalogo (Global e USA) • 10 000 prodotti configurabili • 3 gerarchie di categorizzazione indipendenti • 30 000 pagine indicizzate dai motori di ricerca • 4 flussi di importazione continui • Carico utenti praticamente uniforme lungo la giornata Qualche numero …
  16. 16. Arena Water Instinct: architettura di sistema ALESSANDRO MONTALTI Gestione di un multi-store internazionale … : il caso Arena Water Instinct Meet Magento Italy Milano, 6-7 Marzo 2015 @alemontalti #mm15it Data Manager Gestionale Arena Load-balancer 2 nodi VPS 12 vCore ad alta priorità 32Gb RAM dedicata Dischi SSD su RAID10
  17. 17. Arena Water Instinct: ottimizzazioni – CDN ALESSANDRO MONTALTI Gestione di un multi-store internazionale … : il caso Arena Water Instinct Meet Magento Italy Milano, 6-7 Marzo 2015 @alemontalti #mm15it Caching e replicazione geolocalizzata dei contenuti statici dello store (immagini, video, audio, CSS, JS).
  18. 18. Arena Water Instinct: ottimizzazioni – Varnish ALESSANDRO MONTALTI Gestione di un multi-store internazionale … : il caso Arena Water Instinct Meet Magento Italy Milano, 6-7 Marzo 2015 @alemontalti #mm15it Utilizzo di Varnish per staticizzare le pagine PHP e creare un primo livello di caching molto performante. Molto importante configurare correttamente Turpentine (plugin ufficiale Magento) per escludere le parti della pagina che devono rimanere dinamiche (es. carrello, wishlist, ecc…)
  19. 19. Arena Water Instinct: architettura di sistema (update) ALESSANDRO MONTALTI Gestione di un multi-store internazionale … : il caso Arena Water Instinct Meet Magento Italy Milano, 6-7 Marzo 2015 @alemontalti #mm15it Load-balancer CDN (solo contenuti statici)
  20. 20. Arena Water Instinct: progettazione flussi di importazione ALESSANDRO MONTALTI Gestione di un multi-store internazionale … : il caso Arena Water Instinct Meet Magento Italy Milano, 6-7 Marzo 2015 @alemontalti #mm15it Una volta a regime, quali informazioni devo mantenere aggiornate? Con che scadenza? 4 flussi indipendenti di sincronizzazione tra Data Manager e Magento 1 - PRODOTTI Aggiunta nuove collezioni (1 update / 3 mesi circa) Manutenzione straordinaria (variabile) 2 - PREZZI [come sopra] 3 - STOCK Real-time (quasi, ogni 5 minuti) 4 - ORDINI Real-time (quasi, ogni 5 minuti)
  21. 21. Arena Water Instinct: importazione prodotti ALESSANDRO MONTALTI Gestione di un multi-store internazionale … : il caso Arena Water Instinct Meet Magento Italy Milano, 6-7 Marzo 2015 @alemontalti #mm15it Script shell in PHP, estende la classe Mage_Shell_Abstract e utilizza le API di Magento. Sono stati sviluppati oltre 30 script per effettuare modifiche periodiche o sporadiche sul sistema. Come per Magento, importanti flessibilità e modularità. • Modalità di inserimento o aggiornamento prodotti • Selezione della storeview • Possibilità di modificare un singolo SKU • Possibilità di modificare un singolo attributo • Gestione o meno delle immagini prodotto • Gestione o meno dei prezzi • Modalità di simulazione (con log errori) • Disabilitazione degli indici Principali modalità di lancio: … e molte altre ancora!
  22. 22. Arena Water Instinct: importazione prodotti ALESSANDRO MONTALTI Gestione di un multi-store internazionale … : il caso Arena Water Instinct Meet Magento Italy Milano, 6-7 Marzo 2015 @alemontalti #mm15it Analisi e testing di ogni chiamata per ottimizzare le risorse: • Alternative a $product->save() • Disabilitazione indici • Logging avanzato di tempistiche e dati parziali • Utilizzo di “direct queries“ Criticità forte dal lato dell’utilizzo delle risorse: il lancio di operazioni pesanti su un sistema in produzione può essere CRITICO, fino al crash del sistema!!! Per Arena, un’importazione standard di 5000 prodotti con 3 immagini ciascuno (circa) all’inizio durava fino a qualche ora, per singola storeview. Dopo queste (ed altre) ottimizzazioni, ora circa 10 minuti!
  23. 23. Arena Water Instinct: cronjobs planning ALESSANDRO MONTALTI Gestione di un multi-store internazionale … : il caso Arena Water Instinct Meet Magento Italy Milano, 6-7 Marzo 2015 @alemontalti #mm15it Fondamentale la pianificazione della manutenzione e dell’aggiornamento del sistema… Ma quando? Analisi del carico utenti e della computazione attuale carico utenti (surfing user, bot, landing pages)
  24. 24. Arena Water Instinct: cronjobs planning ALESSANDRO MONTALTI Gestione di un multi-store internazionale … : il caso Arena Water Instinct Meet Magento Italy Milano, 6-7 Marzo 2015 @alemontalti #mm15it Fondamentale la pianificazione della manutenzione e dell’aggiornamento del sistema in esame. analisi del carico utenti e della computazione attuale Ma dopo l’apertura degli store USA (GMT-6 / GMT-10) e Australia (GMT+8 / GMT+11) ?! giallo = idle blu = user Computazione server cronjobs
  25. 25. Arena Water Instinct: sfide future ALESSANDRO MONTALTI Gestione di un multi-store internazionale … : il caso Arena Water Instinct Meet Magento Italy Milano, 6-7 Marzo 2015 @alemontalti #mm15it Molte nuovi orizzonti e implementazioni: • Nuovi stores in apertura (tra gli altri, Australia) • Un nuovo design una nuova UX completamente studiata per Arena • Supporto a nuove informazioni prodotto • Nuove logiche custom per l’importazione prodotti • Integrazione di nuovi strumenti per monitorare e fare analisi di marketing granulari …sicuramente molto altro (che sapremo solo la settimana prima della release)!
  26. 26. Ringraziamo per il supporto ALESSANDRO MONTALTI Gestione di un multi-store internazionale … : il caso Arena Water Instinct Meet Magento Italy Milano, 6-7 Marzo 2015 @alemontalti #mm15it Partner sistemistica e housingStaff tecnico
  27. 27. GRAZIE PER L‘ATTENZIONE ALESSANDRO MONTALTI Gestione di un multi-store internazionale … : il caso Arena Water Instinct Meet Magento Italy Milano, 6-7 Marzo 2015 @alemontalti #mm15it DOMANDE? COMMENTI? a.montalti@cosmobile.com @alemontalti www.cosmobile.com

×