Realizzare un’infrastruttura cloud scalabile e compatibile con Magento 2.0 per l'e-commerce perdormire.com
Utilizzando i servizi di Amazon AWS abbiamo realizzato l’infrastruttura cloud necessaria a garantire sicurezza, scalabilità ed aggiornamento continuo del nuovo e-commerce B2C realizzato su Magento 2.0 e containerizzato.
Obiettivi
Overview
Materassificio Montalese S.p.a., proprietaria del noto brand Perdormire, è leader a livello nazionale per la vendita di materassi e complementi di arredo per la zona notte. La necessità dell’azienda era quella di realizzare l’infrastruttura cloud su cui ospitare il nuovo e-commerce basato su Magento 2.0. L’azienda ha optato per la scelta dei servizi cloud offerti da Amazon AWS, già noti ed utilizzati in progetti precedenti insieme al nostro team.
Servizi AWS utilizzati
Project
Amazon Web Services delinea nelle sue linee guida alcune best practice di architettura specifiche per Magento 2.0. Abbiamo avviato il progetto di sviluppo basandoci su queste best practice per arrivare a definire schema e servizi necessari alla nostra infrastruttura cloud.
Landing Zone
Per efficientare accesso, sviluppo e deploy, è stata realizzata su AWS una landing zone multi-account completamente automatizzata e con un alto livello di sicurezza.
In questo modo siamo stati in grado di garantire la separazione dei 3 environments di DEV, QA e PROD, assegnare i permessi agli utenti in maniera semplice e permettere al cliente una gestione ottimale dei costi (consolidated billing sull’account centrale, con un dettaglio di costo separato per account/environments).
Infrastruttura sviluppata
La scelta e la configurazione di ogni servizio AWS è stata determinata tenendo bene in mente le elevate esigenze di scalabilità e velocità dell’e-commerce derivante dall’alto impatto delle campagne media in TV ed online svolte dal brand.
Già in partenza del progetto, la società Mediaengine che ha realizzato il commerce, ha rilasciato il lavoro all’interno di un Container così da velocizzare la scalabilità e ottimizzare il consumo di risorse.
Per rispondere alle esigenze evidenziate, abbiamo esteso l’architettura consigliata da AWS. Alla base, una VPC su 3 Availability Zones, ognuna con 3 diverse sottoreti: una pubblica, una privata con NAT, una privata. Le applicazioni all’interno dell’infrastruttura sono protette dal firewall AWS WAF e distribuite tramite la CDN CloudFront che garantisce una latenza minima ed una elevata velocità di trasferimento. L’Application Load Balancer distribuisce automaticamente il traffico in ingresso su più istanze EC2 bilanciando il carico di richieste sulla base di regole da noi determinate.
Per eseguire il Container contenente l’e-commerce, abbiamo utilizzato Amazon ECS in combinazione con AWS Fargate. In questo modo abbiamo sfruttato al massimo le prestazioni, la scalabilità, l’affidabilità e la disponibilità garantiti da AWS.
Per lo storage dei dati, abbiamo scelto Amazon ElastiCache per Redis compatibile con il datastore (Redis) utilizzato da Magento 2.0 per gestire le sessioni e la cache di default e di pagina. Questa scelta ci ha permesso di alimentare le applicazioni online in tempo reale con una latenza inferiore al millisecondo. A questo servizio si è aggiunto l’utilizzo di AWS S3 come object storage.
Il database selezionato per il progetto è Amazon Aurora Serverless, una configurazione di dimensionamento automatico on demand di Amazon Aurora MySQL, capace di ottimizzare la capacità di elaborazione e di memoria secondo le necessità.
Focus on: continuous integration/continuous delivery
Fondamentale per il corretto funzionamento dell’e-commerce era la possibilità di rilasciare aggiornamenti e modifiche con regolarità senza compromettere l’ambiente di produzione. Il problema, già emerso in fase di analisi, è stato affrontato sul campo dopo la valutazione di diverse procedure. La soluzione elaborata è una pipeline di deploy che prevede un sistema di integrazione e distribuzione continua sul modello CI/CD.
L’approccio CI/CD supera le difficoltà legate all’integrazione di nuovo codice, introducendo l’automazione costante e il monitoraggio continuo in tutto il ciclo di vita delle applicazioni, dalle fasi di integrazione e test a quelle di distribuzione e deployment. Alla base c’è una stretta collaborazione tra il nostro team e Mediaengine, responsabile del deploy del Container su Amazon ECR.
Results
Fondamentale per Materassificio Montalese S.p.a era la possibilità di creare un’infrastruttura estremamente scalabile che fosse in grado di supportare carichi di lavoro anche molto elevati. I servizi di Amazon AWS scelti per il progetto hanno risolto tale necessità come desiderato dall’azienda.
Inoltre, con la pipeline di deploy implementata, tutte le modifiche necessarie vengono applicate a una build, testate e preparate per il rilascio in produzione in modo automatico e continuo evitando tempi di inattività o compromissioni della produzione.
Infine, la possibilità di pagare i servizi AWS in base all’effettivo grado di utilizzo delle risorse ha determinato un significativo risparmio ed un controllo dei costi ottimale per l’azienda.
Vuoi condividere con noi le tue idee?
Siamo qui per ascoltarti