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

Garantire elevata sicurezza, affidabilità e scalabilità dell’e-commerce B2C
Ottimizzare i costi dell’infrastruttura cloud
Individuare i servizi cloud compatibili con Magento 2.0
Porre le basi per il deployment continuo di aggiornamenti e modifiche

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.

Cliente: Materassificio Montalese S.p.a.
Settore: Retail B2C
Practice utilizzate:
AWS Well-Architected Review
Cloud Migration on AWS
DevOps on AWS
Serverless on AWS

Servizi AWS utilizzati

AWS WAF
CloudFront
Elastic Load Balance
Amazon ECS
AWS Fargate Serverless
Amazon Aurora Serverless
Amazon ElastiCache for Redis
AWS EFS
AWS S3
AWS SES
CloudWatch
Amazon ECR

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.

Infrastruttura scalabile
Carichi di lavoro elevati
Deploy automatico
Controllo dei costi

Vuoi condividere con noi le tue idee?
Siamo qui per ascoltarti