springBoot

scrivere velocemente dei micro servizi REST

Architettura del sistema

Dovendo costruire un sistema articolato nel suo progetto possiamo prendere in considerazione due opposte soluzioni: una architettura monolitica o una basata su microservizi.

Una architettura monolitica prevede che il sistema sia sviluppato come un unico programma: un sistema di questo tipo ha alcuni vantaggi come la facilità iniziale di sviluppo, la possibilità di ottimizzazione e la semplicità di fare test globali. Ci sono però anche degli svantaggi: quando crescono sono più difficili da mantenere, è difficile cambiare le tecnologie utilizzate e hanno bassa scalabilità.

In una architettura a microservizi non ho a che fare con una entità unica ma con più programmi che offrono singoli servizi, un po' seguendo l'idea "fai una sola cosa e falla bene". Fondamentalmente usando questa architettura gruppi più piccoli si sviluppatori possono lavorare su un singolo servizio che può essere rilasciato molto velocemente, i singoli gruppi sono liberi di scegliere la tecnologia da usare e di cambiarla e oltre questo gli errori che riaguardano un singolo servizio sono più facili da trovare. Ovviamente c'è un rovescio della medaglia, ad esempio: il sistema non ha caratteristiche comuni, ogni volta che si aggiunge un microservizio il gruppo di sviluppo si deve organizzare per suo conto.

diagramma sistema monolitico e microservizi

Cosa è Spring Boot

Spring Boot è una estensione del framework Spring il cui scopo è di mettere facilmente in esecuzione micro servizi web scritti in Java. Si tratta di un framework cioè di un insieme di componenti preconfezionati che facilita lo sviluppo di software, spesso utilizzando specifiche strategie di sviluppo.

Un framework si differenzia da quelle che chiamiamo librerie in alcuni aspetti:

Perché Spring Boot

Non è certo l'unico framework per scrivere applicazioni web ma: