L’architettura a Microservizi è la prima architettura applicativa nata dopo la rivoluzione DevOps, che si sposa perfettamente con l’adozione del cloud e che sfrutta pienamente le pratiche della Continuous Delivery. I Microservizi nascono come un nuovo stile architetturale per la creazione di servizi autonomi, sempre disponibili e capillarmente monitorati.
Resilienza, scalabilità e monitoraggio in real time ne rappresentano i punti cardine.
In presenza di un progetto ex-novo l’approccio a Microservizi rappresenta il nostro attuale standard e ci permette di fornire applicazioni riutilizzabili, scalabili e il cui monitoraggio risulterà facile e capillare.
Per realizzare un’architettura a Microservizi si può partire dall’analisi dell’esistente per individuare i singoli servizi che possono funzionare in autonomia rispetto al resto del progetto.
I componenti realizzati a Microservizi con caratteristiche di standard nell’ecosistema aziendale (servizio di invio mail, servizio di integrazione con servizi di terze parti …) possono essere facilmente e rapidamente riutilizzati gestendo le evoluzioni e i rilasci in modo centralizzato per tutte le applicazioni.
Adottiamo architetture a Microservizi anche in presenza di applicativi per i quali è necessario un refactoring o un miglioramento di performance. In questi casi individuiamo le componenti “divisibili” o critiche senza stravolgere l’applicativo, ottenendo la possibilità di rendere scalabili le applicazioni nei punti in cui è necessario, in modo “chirurgico”, elastico e automatico.
In generale è molto più semplice ed economico scalare un microservizio rispetto ad un sistema software monolitico di grandi dimensioni. Questo modello consente di poter effettuare provisioning delle parti del sistema software in modo elastico, intelligente ed economico.
Per poter sfruttare a pieno le potenzialità di un applicativo strutturato a microservizi abbiamo bisogno di utilizzare un approccio legato ai container (con annessi orchestratori) .
Tra questi quella di più largo uso è Red Hat Openshift Container Platform sul quale vantiamo (anche in relazione alla nostra partnership con Red Hat) vasta esperienza in ambiti Enterprise con un elevato numero di utenti finali e di servizi gestiti.
Altra opzione è quella di far riferimento a framework che non implicano una rivisitazione infrastrutturale (e quindi un approccio più soft e che non prevede un impatto sulle infrastrutture di gestione) come ad esempio Spring Netflix.
L’adozione di un’architettura a Microservizi e l’adozione di pratiche DevOps (CI/CD) consentono una gestione automatizzata e sicura. In particolare queste pratiche permettono di effettuare rilasci sicuri e “chirurgici” eliminando i disservizi o le lentezze tipicamente presenti durante i rilasci di applicazioni monolitiche.