8 svantaggi dell'architettura a microservizi

Tue 28 June 2022

L'architettura a microservizi rappresenta il futuro per le applicazioni web moderne. Le sue peculiarità sono la scalabilità, resilienza, ed accessibilità come descritto nell'articolo 10 vantaggi dell'architettura a microservizi.

In questo articolo vedrai quali sono gli svantaggi dell'architettura a microservizi. Si può facilmente immaginare che i tanti vantaggi che si hanno realizzando sistemi informativi a microservizi abbiano dei costi in termini di installazione, configurazione, e gestione dell'intera architettura.

Ecco quindi evidenziati gli 8 svantaggi dell'architettura a microservizi.

Gestione Dipendenze

Ogni microservizio è isolato rispetto agli altri presenti nel sistema informativo. L'isolamento e l'indipendenza sono anche applicative, in quanto ogni microservizio può essere sviluppato usando tecnologie diverse. Tuttavia i microservizi hanno dipendenze tra loro al fine di completare le esigenze funzionali. Per tale motivo è opportuno considerare tali dipendenze all'atto della compilazione di un microservizio. E' necessario prevedere delle versioni nel caso vogliano essere rivisti o aggiornati nella loro struttura al fine di consentire il corretto funzionamento dei microservizi collegati garantendo anche la retrocompatibilità

Test

I test sono fondamentali nella realizzazione del software e quindi anche nella realizzazione dei microservizi. Considerando le dipendenze che possono esserci tra microservizi per espletare una particolare operazione, i test di integrazione diventano fondamentali. Tuttavia tali test non sono sempre di semplice implementazione e ciò implica una maggiore capacità di sviluppo da parte del team per poter verificare il corretto funzionamento.

Gestione Versioni

Come detto precedentemente, nel paragrafo delle dipendenze, i microservizi devono prevedere delle versioni al fine di garantire la retrocompatibilità. Un microservizio fa riferimento ad una specifica versione sapendo che la chiamata non sarà in alcun modo cambiata nel tempo.

Deployment

Il deployment dei singoli microservizi è semplificato rispetto ad un sistema monolitico in termini di: installazione di librerie terze parti ed aggiornamento del database. La fase di deployment si complica nell'ottica dell'integrazione dell'intera architettura. Per tale motivo è opportuno rilasciare i microservizi utilizzando strumenti automatici che consentono, a fronte di uno sforzo iniziale di conoscenza, di rendere l'attività non problematica.

Registrazione

I microservizi possono diventare in numero elevato all'interno di un'applicazione di medio-grandi dimensioni. Risulta opportuno censire e ritrovare i servizi esposti dall'applicazione all'interno di un registro centralizzato. I responsabili di progetto dovranno quindi creare e mantenere tale registro sempre aggiornato per consentire una corretta gestione del catalogo servizi.

Monitoraggio

I microservizi devono essere monitorati dai team operativi e pertanto la fase di censimento e ricerca diventa un aspetto fondamentale.

Debugging

Il debug è un'attività fondamentale per conoscere le radici di un malfunzionamento e porvi rimedio. Tuttavia, data la natura dei microservizi, il debug sugli stessi da remoto è impraticabile e questo rende più complessa l'operazione e la conseguente risoluzione dell'errore.

Connettività

Occorre selezionare quale metodo di rilevamento scegliere al fine di monitorare la connettività dei vari microservizi.

Conclusioni

L'architettura a microservizi presenta molti vantaggi ma in questo articolo si è voluto sottolineare quali possono essere gli svantaggi legate alla gestione di progetti implementati con questa architettura.