Lagom Framework:  Analisi del framework e implementazione di un progetto di esempio

   page       attach   
Marco Baldassarri
abstract

La grande crescita della complessità nello sviluppo dei prodotti software di qualsiasi natura e fine ha portato ad abbandonare la filosofia “monolite” che prevedeva l’uso di una serie di Client comunicanti con un unico Server in  grado  di  gestire  qualsiasi  richiesta.   Un  approccio  simile  generava  non pochi problemi di gestione delle risorse, ma soprattutto di complessità elevatenello sviluppo del software lato back-end per via della cattiva organizzazione del  codice  e  la  difficoltà  di  gestione  di  progetti  troppo  grandi,  col  rischio prevedibile di generare debito tecnico e di diminuirne la qualità. Nella maggior parte dei contesti odierni si preferisce uno stile architetturale a Microservizi, in grado di sviluppare e distribuire una singola applicazionesu una serie di servizi auspicabilmente di piccole dimensioni, ben distinti in quanto  ruolo  da  svolgere  ma  al  contempo  in  grado  di  comunicare,  quindi distribuiti ma uniti.  Tranne casi particolari,  la modalità di comunicazione è la stessa dell’approccio Client-Server classico, dove non si faceva altro che esporre all’esterno una serie di API (disponibili tramite protocollo HTTP)la cui implementazione interna è nascosta al consumatore. Nel mercato sono disponibili numerosi Framework di supporto alla creazionedei Microservizi, tutti aventi la pretesa di semplificare il più possibile la vitaallo sviluppatore.  Lagom è uno di questi.  Il termine “Lagom” significa in Svedese “Just the right amount”.  Già dal nome si può intuire che i creatoridi Lagom hanno voluto porre l’accento sulla definizione netta dei confini che ogni Microservizio deve avere. Ogni Service dovrebbe essere di piccole dimensioni e svolgere poche e semplici attività.  La difficoltà risiede tuttavia nel capire come delineare la natura di ogni servizio, cosa far fare all’uno e cosa all’altro, e quindi creare un’architettura ben strutturata.  Una buona ingegnerizzazione dei Microservizi porta a raggiungere più facilmente gli obiettivi di  scalabilità  e  resilienza,  ma  anche  di  più  facile  distribuzione  e  gestione. Questo è il goal di Lagom.

outcomes