I microservizi sono segmenti più piccoli di un'applicazione che vengono eseguiti in modo indipendente, e possono essere distribuiti in svariati modi. Un microservizio serverless viene distribuito all'interno di un'architettura omologa.
Dopo aver letto questo articolo sarai in grado di:
Argomenti correlati
Function as a Service (FaaS)
Che significa serverless?
Perché impiegare la modalità serverless?
Edge computing
Platform as a Service (PaaS)
Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.
Copia link dell'articolo
Immaginiamo di prendere un'applicazione, scomporla in più parti ed eseguirla come un insieme di componenti più piccoli invece di un blocco monolitico. Questa, in modo succinto, è un'architettura di microservizi. Ciascuna componente dell'applicazione è chiamato 'microservizio' ed esegue una sola funzione, opera in modo indipendente dalle altre parti dell'applicazione, agisce nel proprio ambiente e memorizza i propri dati. Nonostante il nome, i microservizi non devono necessariamente essere piccoli. Ciò che li rende “micro” è il fatto che gestiscono un solo servizio e che fanno parte di un'applicazione più grande.
Immaginiamo un'applicazione composta da microservizi come una squadra di calcio, in cui ogni giocatore svolge un ruolo distinto, ma i giocatori insieme formano una squadra (l'intera applicazione) che, collettivamente, raggiunge un obiettivo. Oppure, pensiamo ai microservizi come ai diversi apparati del corpo umano (circolatorio, respiratorio, ecc.) e all'applicazione come l'intero corpo.
Dal punto di vista dell'utente, un'applicazione creata con microservizi presenta un'unica interfaccia e funziona allo stesso modo di un'applicazione progettata come un unico stack. Tuttavia, dietro le quinte, ciascun microservizio dispone di un proprio database e viene eseguito separatamente dal resto dell'applicazione. Inoltre, i microservizi all'interno della medesima applicazione possono essere scritti in linguaggi diversi e utilizzare librerie differenti.
I microservizi vengono spesso messi in contrapposizione all'architettura monolitica, che è il metodo classico per costruire un'applicazione. Un'applicazione monolitica è uno stack singolo, con l'interfaccia utente in alto, la logica di business al centro e il database in basso. Di solito, un'applicazione monolitica è ospitata su un server specifico o su un insieme di server. Uno degli svantaggi presentati dal creare un'applicazione in questa maniera è che una qualsiasi piccola modifica apportata all'applicazione comporta necessariamente l'aggiornamento dell'intero stack. Un altro svantaggio è che, se una parte dell'applicazione va fuori uso, l'intera applicazione potrebbe bloccarsi.
I microservizi possono essere distribuiti in vari modi: possono far parte di un'architettura serverless, essere ospitati in container, essere sviluppati tramite PaaS oppure, in teoria, essere usati per creare un'applicazione ospitata in locale. Tuttavia, i vantaggi della creazione di un'applicazione basata su microservizi sono forse più evidenti quando l'applicazione è ospitata nel cloud, tramite container o in un'architettura serverless.
I microservizi serverless vengono distribuiti all'interno dell'infrastruttura di un fornitore serverless, e vengono eseguiti solo quando sono necessari all'applicazione. A seconda delle dimensioni di un microservizio, esso può anche essere suddiviso in funzioni ancora più piccole. Per ulteriori informazioni sul funzionamento dell'elaborazione serverless, consulta Cosa si intende per "serverless computing"?
Questa distinzione è ancora in fase di definizione da parte della comunità tech, ma, in genere, un microservizio è più grande e può fare più cose rispetto a una funzione. Una funzione è una porzione di codice relativamente piccola che esegue una sola azione in risposta a un dato evento. A seconda di come gli sviluppatori hanno suddiviso un'applicazione, un microservizio può essere equivalente a una funzione (ovvero, esegue una sola azione) oppure può essere composto da più funzioni.
Estendendo la metafora del calcio, pensiamo a tutti i compiti di un regista: gestire la palla, creare gioco, fare assist al centravanti e così via. Se il regista è come un microservizio all'interno della squadra (fornendo il servizio di "regia"), allora ciascuna di queste attività più piccole è una funzione. Tuttavia, il confine tra un microservizio e una funzione può talvolta essere sfocato, proprio come ci sono alcuni giocatori in una squadra di football americano che eseguono una sola azione, come il portiere.
I Cloudflare Workers sono frammenti di codice JavaScript ospitati all'interno della rete perimetrale di Cloudflare, e vengono eseguiti in risposta a richieste HTTP. I Workers si comportano più come funzioni, ma offrono la flessibilità di operare anche come microservizi. Cloudflare non pone limiti alle dimensioni o al tipo di Workers che gli sviluppatori possono creare e distribuire.