Cosa è un’architettura a microservizi e quali sono i suoi vantaggi? In che modo le piattaforme di Rapid Application Development possono aiutarci ad implementarne una?

Architettura a microservizi: cos’è?

In pratica, si tratta di un approccio architetturale per lo sviluppo di applicazioni.

Un’architettura a microservizi è costituita da un insieme di servizi autonomi. Ogni servizio, cioè, è indipendente dagli altri e implementa una singola funzionalità di business. [1]

L’architettura a microservizi si contrappone a quella “monolitica”, in cui tutte le funzionalità sono raggruppate in un’unica entità programmatica.

Quali i principali vantaggi dell’architettura a microservizi?

Maggiore resilienza.
Il funzionamento di ogni servizio non influisce sugli altri servizi. Di conseguenza, un eventuale errore in un componente non determinerà il blocco dell’intera applicazione, come avviene con il modello monolitico.

Migliore scalabilità.
All’aumentare del carico su un determinato servizio, esso può essere facilmente distribuito e scalato su più server in base alle esigenze.

Possibilità di combinare le tecnologie più adatte.
Per lo sviluppo di un singolo microservizio è possibile scegliere lo stack tecnologico più adatto in maniera completamente indipendente dal resto dell’architettura.

Per capirci…

In una moderna architettura a microservizi, le applicazioni vengono organizzate come un insieme di piccoli componenti che funzionano in maniera indipendentemente l’uno dall’altro e che implementano le funzioni base, come piccoli mattoncini di un’unica costruzione [2]. L’accessibilità del singolo microservizio è garantita da delle API che fungono da interfaccia e garantiscono l’interoperabilità tra i microservizi e i loro utilizzatori.

Potrebbe sembrare scomodo e macchinoso sviluppare e mantenere N applicazioni diverse invece di un’unica applicazione che implementa tutte le funzionalità (architettura monolitica). In realtà, le architetture a microservizi offrono davvero tanti vantaggi: oltre alla resilienza, alle ottime scalabilità e flessibilità e alla libertà tecnologica di cui abbiamo già parlato, anche una grande capacità di adattamento alla complessità del business, semplicità di distribuzione e riutilizzabilità del codice [3].

Dal punto di vista dello sviluppatore, appare evidente che se un singolo microservizio è di sicuro più facilmente implementabile, manutenibile e gestibile, allora nel calcolo complessivo l’onere implementativo del costruire un’intera architettura seguendo il modello a microservizi di sicuro risulterà sensibilmente mitigato.

Ora, la domanda a cui vogliamo rispondere è la seguente: le piattaforme di Rapid Application Development (RAD) possono aiutarci ad implementare un’architettura a microservizi?

Sia le piattaforme RAD che le architetture a microservizi si pongono l’obiettivo di facilitare lo sviluppo e la manutenzione di un software durante tutto il suo ciclo di vita, a partire dall’implementazione delle funzionalità fino alla messa in produzione. [4]

Un uso combinato di questi due approcci permette gestire il ciclo di vita di ogni singolo microservizio necessario alla nostra applicazione sfruttando le potenzialità della piattaforma RAD, e quindi semplificare l’implementazione dell’intera architettura a microservizi.

WaveMaker e Microservizi: la mia esperienza

A questo riguardo, vi racconto la mia esperienza di sviluppo con piattaforme che seguono il modello del Rapid Application Development. In particolare, la piattaforma di cui vorrei parlarvi è WaveMaker. La utilizziamo molto in azienda ed è venuta spesso in mio aiuto grazie alla sua semplicità di utilizzo e al fatto che mi riduce il lavoro noioso, permettendomi di generare velocemente codice che implementa funzionalità comunemente utilizzate (come ad esempio operazioni CRUD su database). Inoltre, WaveMaker mi permette di implementare altre funzionalità di business sfruttando tecnologie open source largamente utilizzate e conosciute come Spring e Hibernate.

Quindi posso concludere che la piattaforma WaveMaker, per quanto riguarda lo sviluppo di applicazioni secondo l’architettura a microservizi, è assolutamente agevolante perché segue in sé stessa la logica delle API per la comunicazione tra le varie unità e componenti tipica dell’architettura a microservizi.