Di questi tempi, in Internet, si parla molto di Microservice, un nuovo approccio alla progettazione di applicazioni. Si tratta essenzialmente di un modo di strutturare un software in senso non monolitico, ossia come un progetto unitario cui vanno collegate le librerie da cui dipende, ma scindendo ogni funzionalità significativa in un servizio a sé stante, anche di piccole dimensioni, un microservice appunto.
Le applicazioni avrebbero così dimensioni più ridotte ma potrebbero comunque sfruttare le funzionalità messe a disposizione dai microservizi instaurando con essi un dialogo di rete, eventualmente svolto anche in locale.
La rivoluzione concettuale insita nei microservizi consiste nel concepire l'interazione remota non come una pratica cui rivolgersi solo se non vi sono alternative, ma da utilizzare con disinvolutura per connettere tra loro varie parti di un'applicazione.
I vantaggi sarebbero notevoli. A fronte di un dialogo di rete non particolarmente complicato - attuato anche tramite classiche API in stile REST - si avrebbe un software modulare, più facilmente manutenibile e scalabile. I contro che vengono ravvisati riguardano soprattutto la possibilità di svolgere test completi su un'applicazione alla cui logica di business collaborano servizi che sono componenti a sé stanti, sviluppate, quindi, in progetti estranei.
Si parla di microservizi come di un pattern rivoluzionario, una nuova tendenza. C'è chi vede in essi una grande opportunità di business e vi sarebbero delle aziende che già basano le proprie soluzioni su questa architettura.
La diffusione dei microservizi nella cultura informatica globale ha ricevuto una delle maggiori spinte grazie alla fiducia accordata loro da Martin Fowler, un vero e proprio "mostro sacro" dell'ingegneria del software nonché grande esperto di programmazione a oggetti, co-autore del Manifesto Agile e padre, tra le numerose altre opere, del famosissimo "UML Distilled".
Non possiamo ancora dire se stia iniziando davvero l'era dei Microservice, ma sicuramente questi ultimi rappresentano un argomento particolarmente interessante ed il futuro non sarà avaro di sviluppi in questo settore.
Per approfondimenti: "Microservices" di Martin Fowler