Microservizi: cosa sono e come si usano

Argomenti trattati: ,
Pubblicato il: 9 Dicembre 2020 , Ultimo aggiornamento: 7 Marzo 2021

Cosa sono i (microservizi) micro-services

Siamo nell’ambito delle piattaforme utilizzate dagli sviluppatori, ed i microservizi sono una parte consistente del “patrimonio” disponibile per il developer moderno. Il mondo informatico dietro le cosiddette Microservices Architecture (MA, in acronimo) è orientato allo sviluppo di applicazioni evolute, sfruttando un pattern scalabile e multi-uso in grado di fornire facilità di uso e di riutilizzo delle varie componenti software.

Per fare questo, a livello pratico i microservizi seguono due fasi:

  1. vengono interrogati da remoto (per esempio dammi il cambio valuta tra euro e bitcoin)
  2. forniscono una risposta nel formato HTML, JSON o XML (a seconda dei casi).

Questo approccio di domanda e risposta, se vogliamo, oltre ad essere estremamente semplice nella sua filosofia evita l’approccio basato su RPC (Remote Procedure Call), in modo da evitare di effettuare la chiamata di codice da remoto (cosa che non è il massimo lato sicurezza e si presta a falle informatiche potenziali molto subdole), sfruttando le direttive del server mediante un semplice URL interrogato via POST (ci sono anche microservizi che funzionano solo con le GET o solo con le PUT o DELETE, a seconda dei casi: per un approfondimento su questi termini nello specifico, vedi la nostra guida ai servizi RESTful di WordPress).

L’idea alla base dell’architettura software fondata sui microservices è semplice ed efficace: consentire ai servizi non solo di essere interrogati in autonomia, ma anche (per non dire soprattutto) poter cooperare tra di loro.

Micro-services e architetture SOA

L’introduzione dei microservizi va di pari passo con le cosiddette Service Oriented Architecture o SOA, un ulteriore modello di gestione delle applicazioni che consiste in una collezione di servizi già pronti all’uso, sfruttabili per ottenere e combinare risultati tra loro.

In un modello concettuale più evoluto rispetto alla programmazione classica (in cui le chiamate alle funzioni rispondono solo ad esigenze molto basilari e tutt’altro che specifiche, per esempio i costrutti FOR, i loop, il WHILE, ecc.), le architetture orientate ai servizi scompongono il problema da risolvere da diversi punti di vista, quindi sia a livello di partizionamento logico che dei dati dell’applicazione. Questo facilita un approccio allo sviluppo più ad alto livello, ma richiedono per forza di cose team di sviluppo molto più grandi e risorse scalabili (hosting cloud o SaaS, il più delle volte).

I microservizi, in questo ambito, dovranno essere perfettamente funzionanti ed ogni singolo mattoncino che li compone avrà il compito di fornire il proprio piccolo contributo alla causa dell’applicazione, o delle applicazioni, che saranno create. Il mito del nerd che, da solo nel proprio garage, progetta monoliticamente applicazioni spaziali in perfetta solitudine (magari slogandosi le dita sulla tastiera), sembra quindi essere destinato a tramontare almeno in buona parte e salvo casi eccezionali, alla prova dei fatti.

Vantaggi dei micro-servizi

Quali siano i vantaggi derivanti dall’uso dei microservizi è presto detto: scalabilità, rapidità di sviluppo e possibilità di sfruttare direttamente funzionalità di alto livello.Grazie ai microservizi ci metto di meno a sviluppare software evoluti che, senza di essi, richiederebbero un pesantissimo riscrivere da zero software per le necessità di alto livello, che invece possiamo sfruttare in modo funzionale e funzionante a patto di rispettare le “regole” o la policy, equivalentemente, imposta dagli stessi.

Questo si riflette in modo drastico sia sulla qualità delle applicazioni risultati che, soprattutto, sulla loro possibilità di essere riutilizzate per crearne di nuove, creando così una sorta di circolo virtuoso che velocizza l’evoluzione delle applicazioni stesse.

Verrebbe anche da chiedersi, a questo punto, quale sia la differenza tra un microservice ed un web service, a questo punto: di fatto i microservizi sono più specifici e progettati per lavorare in cooperazione, mentre i web-service tendono ad essere sfruttati per singoli utilizzi più generici e, di solito, indipendenti tra di loro.

Nessun voto disponibile

Che te ne pare?

Grazie per aver letto Microservizi: cosa sono e come si usano di Salvatore Capolupo su Trovalost.it
Microservizi: cosa sono e come si usano (Guide, Assistenza Tecnica, Configurazione Hosting)

Articoli più letti su questi argomenti: