Maven AWS Infrastructure

Implementazione della piattaforma Apache Maven per la realizzazione del portale "I miei corsi online".

In sintesi

Devmy si è occupata della migrazione della piattaforma Apache Maven da VPS ad Amazon AWS per renderla più efficiente e scalabile.

Anno2020

TipoDevOps

AmbitoFormazione

CommittenteSilvio Porcellana

TecnologieAWS / Cloud

Silvio Porcellana, per chi non lo conoscesse realizza (da veramente tanti anni, anche se sembra un giovincello) prodotti digitali in ambiti molto diversi, dai chatbot per Facebook Messenger a sistemi di realizzazione siti mobile first e piattaforme per l’e-learning molto sofisticate.

Quando Silvio ci ha contattato aveva la necessità di implementare la piattaforma Apache Maven per la realizzazione del portale “I miei corsi online”.

Per questo progetto, ambizioso e coinvolgente, il nostro team si è occupato di migrare da VPS a Amazon AWS la piattaforma Apache Maven. Questa modifica strutturale ha permesso di migliorare l’efficienza e la scalabilità della piattaforma.

E per dirlo con le parole di Silvio: “la visione strategica e la competenze approfondite che avete saputo mettere in campo ci permettono di "vivere di rendita" per molti anni, potendo contare su un sistema che si evolve e cresce con facilità e convenienza. Gli utenti hanno a disposizione uno strumento che sanno essere allo stato dell'arte in qualsiasi momento, e quindi possono fidarsi ciecamente e affidarci il loro business online”.

Perché AWS

Utilizzare AWS ha consentito alla piattaforma di garantire maggiore affidabilità ai suoi investitori (immaginate che la sicurezza offerte dall'infrastruttura di calcolo globale è la stessa sulla quale si fonda il colosso Amazon.com) e soprattutto scalabilità (grazie alla solida infrastruttura di AWS, infatti, è possibile calibrare le risorse di calcolo e di storage in base alle esigenze dell’applicazione).

Il problema da risolvere

Il problema principale da risolvere era legato alla scalabilità della piattaforma. Vale a dire la capacità di adattarsi rapidamente senza ridurre le prestazioni ad un aumento repentino della domanda o del carico di lavoro. In altre parole, il sistema deve essere in grado di reagire con efficienza al costante aumento di traffico oltre che deve permettere la creazione di infrastrutture differenziate in funzione delle region e delle necessità del cliente. Viene da sé la scelta dell’utilizzo della piattaforma AWS e del sistema SaaS.

Come?

In termini pratici abbiamo utilizzato ECS Fargate per distribuire su AWS la piattaforma Maven Apache esistente. Trattandosi di un applicativo già esistente e non studiato per il cloud, le sfide da superare sono state molte, e alla fine abbiamo anche definito quali sono i pro e contro di distribuire Apache su AWS.

Il risultato

l risultato è stato raggiunto e ha il nome di "I Miei Corsi Online". Una piattaforma che intende presentarsi al mercato come l'opportunità per migliaia di utenti di monetizzare le proprie competenze in maniera facile e davvero concreta.

A dirlo meglio di noi sono le parole di Silvio: “Sinceramente, la combinazione di competenze profondissime, umanità schietta e etica del lavoro sono qualcosa che è virtualmente impossibile trovare altrove. Bisogna solo essere fortunati a beccarli liberi, ma se si riesce lavorare con Devmy è senza dubbio il miglior investimento tecnologico che aziende come la mia possano fare”.

 

screenshot-mieicorsionline.jpg

Punti di forza

Rispetto al sistema usato precedentemente, abbiano migliorato la scalabilità, la gestione dei crash (l'applicativo e in grado di riavviarsi in autonomia) e anche una migliore gestione dei deploy.

Sono migliorare le prestazioni complessive e nonostante il carico di utenti connessi sulla piattaforma la risposta è sempre rapida in totale sicurezza.

Roba da Nerd

L’aspetto più intrigante di questa sfida è stata quella di superare i limiti di un applicativo, come AWS, già esistente e non studiato per il cloud ha dimostrato di avere.

Li abbiamo raccontati nel dettaglio nel nostro articolo del blog. Ma in estrema sintesi:

  • Abbiamo trasformato Maven Apache da stateful a stateless. Per ottenerlo abbiamo rimosso la gestione dei virtualhost ad Apache delegando tutto al Load Balancer (insieme alla gestione dei certificati SSL), virtualhost ad Apache, delegando la gestione dei domini e dei loro certificati SSL al Load Balancer.

  • Abbiamo affrontato il problema della gestione di più listeners su diversi Load Balancer automatizzando il più possibile ogni deploy dell’applicativo.

  • Blue/Green Deployment è stata la nostra scelta strategica per il CI e per sopperire ad un limite tecnico di CodeDeploy abbiamo implementato una lambda (scritta in Go) che ci permettesse di gestire più Load Balancer in simultanea e aggiornare più listeners.

Sembrava impossibile, ma ce l'abbiamo fatta

Questo progetto è stato una bella sfida, perché abbiamo affrontato diverse problematiche dettate dall’esigenza di adattare un applicativo esistente ad un piattaforma con varietà di servizi e funzionalità senza ridurre le performance complessive.

Ci è piaciuto moltissimo perché è stato un modo per mettersi in gioco in un campo non del tutto esplorato, impegnandoci per trovare soluzioni alternative valide che garantissero scalabilità, affidabilità e sicurezza.

E poi alla fine abbiamo anche portato l'antico vaso in salvo.

Contattaci

Hai in mente un progetto e vorresti realizzarlo?
Hai bisogno di un partner dall'elevata competenza che supporti il tuo team o ti aiuti per progetti in outsourcing?

Vuoi maggiori informazioni o vuoi realizzare insieme a noi un progetto?
Compila il form e ti ricontatteremo a brevissimo.

Questo sito è protetto da reCAPTCHA e si applicano le Norme sulla privacy e i Termini di servizio di Google.