Le microservices architecture sono una proposta innovativa nel panorama mondiale. Gran parte del patrimonio software delle aziende italiane, tuttavia, è ancora affidato a grandi applicazioni di tipo monolitico. Le esigenze di sviluppo erano molto diverse nelle precedenti ondate informatiche, quando i dati erano pochi e gli utenti erano i pochissimi ammessi nel backoffice.

Oggi lo sviluppo è inteso in termine modulare, dove piccole componenti software dette microservizi vengono realizzate e mantenute con gli innovativi principi di un modello integrato. Questo approccio è sintetizzato nella filosofia DevOps, dove le operazioni sull’infrastruttura e lo sviluppo operano nello stesso ciclo di vita e su software suddiviso in piccoli blocchi.

Un nuovo paradigma modulare e ottimizzato

Oggi lo sviluppo di applicazioni può sfruttare una gestione dell’hardware modulata via software. Grazie a questa versatilità, lo sviluppo di software può essere liberato dalla complessità di gestione di ciò che lo circonda, mettendo lo sviluppatore a contatto diretto con istanze vecchie (piattaforma, networking, sicurezza) e nuove (Artificial Intelligence – AI, Internet of Things – IoT), in modo da espandere nel tempo la propria competenza in termini di skills sia hard, sia soft.

Microservizi, un meccanismo chiaro

Microservizi, FaaS (Function-as-a-Service) e serverless sono spesso usati in maniera intercambiabile. “Serverless” è un termine improprio. Letteralmente vuol dire “privo di server”, mentre ovviamente i server continuano a esserci, ma non vengono gestiti da chi scrive l’applicazione. È quindi più un aggettivo, da usare con un sostantivo, ad esempio “serverless software development”. Comunque sia, con questo termine si indica un insieme di tecniche e tecnologie che si astraggono completamente dall’hardware sottostante.

Un microservizio è composto da una o più funzioni (eseguibili direttamente, as a service), che vengono consumate tramite un’API (Application Programming Interface) di tipo REST (Representational State Transfer) e oggi anche tramite bus di messaggi (con tecnologie quali Kafka, SQS e altre.).

Inoltre, il termine serverless viene spesso associato a prodotti di specifici fornitori, che portano con sé vantaggi e svantaggi: in particolare, oggi si fa attenzione a evitare il lock-in e migliorare la flessibilità.

I cinque punti qualificanti della microservices architecture

1. I microservizi creano valore

Qualsiasi punto che ha a che fare con l’adozione della microservices architecture porta ad un vantaggio economico.

In alcuni casi, diminuiscono direttamente i costi, in altri a ridursi sono i tempi, sempre in un’ottica di riduzione dei vincoli della vecchia ICT. In molte circostanze, inoltre, c’è una riduzione del rischio complessivo, sia di problemi nell’esecuzione del software che nella capacità dell’attività di durare a lungo: è un po’ come convertire un rischio di crollo e conseguente recovery plan in una serie di verifiche e di piccoli aggiustamenti periodici.

2. Consegna continua, massima velocità, miglioramento dello staff

Consegna continua

I microservizi forniscono l’architettura ideale per la CI/CD (continuous innovation, continuous delivery) nello sviluppo. La loro adozione, basata sullo scambio di competenze, permette anche di migliorare, ampliare e approfondire hard e soft skills dei programmatori. Si tratta del ciclo unico di sviluppo secondo l’approccio DevOps.

Velocità massima

La microservices architecture consente di massimizzare la velocità di distribuzione e l’affidabilità dell’applicazione. Per sua struttura, un’applicazione a microservizi che funziona in fase di sviluppo, funzionerà anche per il cliente. Ciò accelera il time to market e riduce gli interventi di manutenzione.

Sviluppatori migliori

I microservizi forniscono gli strumenti necessari agli sviluppatori per creare prodotti software di qualità superiore. Con una microservices architecture, ogni componente di un’applicazione vive in un suo container e può essere gestito e aggiornato in modo indipendente dagli altri. Ciò significa, tra l’altro, che gli sviluppatori possono programmare ciascun servizio nel linguaggio più adatto, invece di dover scegliere un unico linguaggio tutt’altro che ideale da utilizzare per tutto.

3.  Debug e manutenzione più semplici

I microservizi facilitano anche il debug ed il test delle applicazioni. Con moduli più piccoli sottoposti ad un processo di consegna e test continuo, la capacità di fornire applicazioni prive di errori è notevolmente migliorata.

4. Libertà e rapidità d’innovazione

La richiesta essenziale per mappare l’ICT sul business è oggi la rapidità di adattamento alle mutevoli condizioni di mercato, gestendo le tecnologie senza rischiare il lock-in su uno specifico vendor.

I microservizi operano in questa direzione, grazie al loro approccio veloce al testing, alla manutenzione e all’aggiornamento del software.

Nell’innovazione, poi, il vantaggio sui sistemi monolitici è enorme. Eventuali modifiche di qualsiasi tipo possono essere sperimentate sulla singola applicazione, senza toccare nessuna altra parte del sistema.

5. Costi strutturati e ridotti

Le scelte architetturali hanno grande impatto sui costi di infrastruttura. Su un’architettura monolitica qualsiasi modifica può essere costosa, perché ogni parte del monolite interagisce con altre parti in modo non sempre conosciuto né prevedibile. Questa imprevedibilità si traduce in molto più lavoro per sviluppatori e sistemisti, un costo che cresce al passare del tempo di attività dell’azienda.

La stessa semplicità di verificare nuove possibilità di business grazie alla libertà nei tool di sviluppo permette di erogare rapidamente servizi su nuove ed interessanti aree. In questo modo, verificare la redditività di una nuova area è un processo immediato.

Conclusioni

I microservizi sono fondamentali per aiutare le aziende a raggiungere gli obiettivi di business grazie a sviluppo più rapido, continuo miglioramento dello staff, riduzione dei costi e facilità di esplorazione di nuovi filoni di revenue.

Ideale per qualsiasi nuova attività, per attività già esistenti la scelta migliore resta la conversione in una architettura di microservizi: si tratta di tempo e denaro ben investito.