Ge.Fi. – Gestione Fiere S.p.A. – è una società di servizi specializzata nell’organizzazione di fiere ed esposizioni commerciali. Nella sua storia, Ge.Fi. ha ideato, tra le altre iniziative, l’evento L’Artigiano in Fiera, la più grande manifestazione internazionale dedicata all’artigianato, con oltre 3.000 espositori e milioni di visitatori e arrivata oggi alla ventiquattresima edizione.
Dalla ventennale esperienza della fiera è nata Artimondo, una piattaforma e-commerce che consente di acquistare online i prodotti esposti dagli artigiani nel corso della manifestazione. Artimondo è online in tutta Europa, e in particolare in Italia, Germania e Regno Unito. Lo shop online è un canale di vendita unico, concepito per riprodurre l’immensa varietà di articoli esposti nel corso della rassegna, che spaziano dal food all’abbigliamento, dall’arredo alla gioielleria, dall’oggettistica ai prodotti per la cura del corpo.
Ge.Fi. aveva la necessità di far evolvere l’architettura originale di Artimondo in modo che aumentassero contemporaneamente le performance e la robustezza. Gli obiettivi iniziali erano aumentare le performance e supportare il carico stagionale dovuto alla fiera, cercando di contenere i costi e senza stravolgere l’applicazione preesistente.
La soluzione tecnica per l’ottimizzazione delle performance
Gli incontri con il cliente, hanno messo in luce fin da subito i problemi di gestione del carico di traffico nei mesi più caldi per l’organizzazione della fiera.
Da un’analisi all’infrastruttura di Artimondo, è emerso che era sovradimensionata rispetto alle reali esigenze e che il software Magento, sebbene non rispondesse in tempi adeguati, aveva grandi margini di miglioramento.
Lo shop, basato su Magento, era ospitato su un’infrastruttura così composta:
- Layer “Proxy FrontEnd”: Nginx ha il duplice ruolo di effettuare del caching delle risorse statiche prelevate dallo filesystem NFS condiviso e di proxy delle richieste verso Magento, interrogando Apache per eseguire il codice PHP.
- Layer “Web Tier”: è’ il nodo Apache che esporta il filesystem NFS condiviso per le risorse statiche, esegue il codice Magento ed ospita anche la parte admin dello shop.
- Layer “Database BackEnd”: nodo MySQL per i contenuti di Magento e per il blog WordPress aziendale.
Tutto questo funzionava fino a quando non si è presentata l’esigenza di scalare orizzontalmente. La soluzione più ovvia, quindi, è stata quella di aggiungere nodi web per poter soddisfare il picco di richieste che si verifica nel mese di dicembre. Nell’ultimo mese dell’anno, infatti, si tiene l’edizione annuale della fiera dell’artigiano: questa dura due settimane, durante le quali il numero di visitatori su Artimondo raddoppia.
Assistendo ad un aumento costante del traffico mese su mese, con il cliente abbiamo valutato un’espansione graduale della piattaforma server.
Il nuovo diagramma dell’architettura si è così evoluto:
- Layer “Proxy FrontEnd”: abbiamo aggiunto un nuovo ruolo a Nginx, quello di bilanciatore verso le due macchine Apache. Nginx ci ha permesso anche di creare delle regole ad-hoc per alcune specifiche della piattaforma.
- Layer “Web Tier”: in questa parte abbiamo aggiunto un nodo Apache per motivi di ridondanza incrementando il numero di richieste al secondo Layer.
- “Database Backend”: il database MySQL non è stato oggetto di modifiche. Abbiamo aggiunto una nuova macchina per Memcache e Logstash: la prima per condividere le sessioni PHP che non sia quello direttamente a bordo del webserver. Memcache ci permette di condividere in maniera facile, veloce ed efficiente le sessioni PHP esternamente ai webserver.
Lo spostamento dell’applicazione su una nuova infrastruttura basata su Amazon AWS, con un numero di macchine inferiore rispetto alla precedente ma con una forte componente dinamica per garantire lo scaling durante la fiera, ha consentito da subito a Ge.Fi. un risparmio sensibile sui costi fissi legati al mantenimento della stessa senza però rinunciare alla garanzia di funzionamento durante i periodi di grosso carico.
La nuova infrastruttura di Artimondo, più piccola e maggiormente ottimizzata, è basata su Amazon CloudFront come proxy loadbalancer, su frontend Apache che esegue l’applicazione Magento e su Amazon RDS come database. Tali tecnologie ci hanno permesso di creare un’infrastruttura più resistente e di migliorare la struttura del portale per sostenere il carico dovuto al picco di traffico stagionale nel periodo fieristico.
Durante lo svolgimento di tutto il progetto, abbiamo aiutato il cliente a ottimizzare le performance del portale lavorando fianco a fianco con il team di Webgriffe che abbiamo coinvolto, in totale trasparenza, per le competenze necessarie sul fronte Magento.
Per aiutare Webgriffe nelle attività di monitoraggio, error reporting e analisi dei log di Magento, abbiamo introdotto lo strumento ELK.ELK ci ha permesso di semplificare il lavoro del team di sviluppo, fornendo uno strumento grafico per la consultazione, centralizzazione del collecting dei log e gestione del ciclo di vita.
Il nostro lavoro ha permesso al cliente risparmiare sui costi, ottimizzare le performance dell’infrastruttura e soddisfare i picchi di traffico che si verificano nel periodo invernale in occasione della fiera degli artigiani.
Dopo più di un anno di lavoro con Flowing possiamo parlare senza dubbio di un’ottima esperienza di collaborazione. Abbiamo riscontrato una grande professionalità, e specialisti molto aggiornati, con grande capacità in ambito tecnologico. L’approccio di Flowing è molto adeguato alle esigenze del cliente, perché non considera solo i dettagli tecnici, ma anche il “perché delle cose” e il quadro generale della situazione. Questo atteggiamento ci ha aiutato ad avere sempre soluzioni IT adatte per il progetto, fatte su misura in ogni momento.
Bernhard Berger, Advisor E-Commerce & Digital Marketing, Ge.Fi. S.p.A