Microservizi: cosa sono, i pro e i contro

microservizi

L’origine del termine “microservizio” non è facile da rintracciare. Nell’ultimo decennio, tuttavia, la maggioranza delle aziende ha adottato un approccio allo sviluppo e alla gestione delle applicazioni passando da architetture monolitiche ad abbracciare i microservizi.

In breve, “architettura a microservizi” è il termine che descrive la pratica di suddividere un’applicazione in una serie di parti più piccole e specializzate, ciascuna delle quali comunica con le altre attraverso interfacce comuni come API e interfacce REST come HTTP.

In generale ogni microservizio gestisce il proprio database, genera i propri log e gestisce l’autenticazione dell’utente. Questo di solito significa anche che sono coinvolti i container a livello di gestione e operativo.

E’ una pratica in netto contrasto con il vecchio modello monolitico di creare applicazioni come singola entità su un server supportato da un singolo database relazionale.

L’approccio più moderno dei microservizi porta con sé anche un cambio di cultura per i team di sviluppo, con team altamente specializzati che dialogano team di prodotto, con uno spirito di collaborazione che abbraccia devops/agile/continuous delivery.

I pro dei microservizi

L’approccio dei microservizi ha guadagnato trazione nell’era delle applicazioni basate su cloud e web. I suoi esponenti più noti sono aziende nate in questo mondo: Netflix, Spotify, ASOS ed Expedia, per citarne alcune. Anche aziende più tradizionali hanno scelto i microservizi, abbandonando i loro monoliti di codice legacy.

I driver da modificare sono sostanzialmente gli stessi per le aziende: coordinamento delle release tra i team, dipendenze del database, singoli punti di errore, modifiche che influiscono negativamente sugli altri team di prodotto, rendere disponibili le funzionalità ai partner tramite le API.

Consideriamo l’esempio della BBC. La storica emittente radio-televisiva si è rivolta ad Amazon Web Services (AWS) quando ha deciso di spostare in cloud la sua piattaforma video on-demand.

In occasione della conferenza AWS re:Invent del 2017, il responsabile dell’architettura Stephen Goodwin ha spiegato che iPlayer è stato convertito nell’infrastruttura cloud pubblica di AWS nel 2012, e successivamente l’azienda è passata ai microservizi.

In realtà il sistema è composto da 30 microservizi separati, con messaggi che si muovono lungo una catena di servizi per passare attraverso il flusso di lavoro“, ha affermato Goodwin.

Un altro esempio è il sito di comparazione prezzi Comparethemarket.com. Alla conferenza MongoDB World nel 2016, Matt Collinge, associate director of technology and architecture dell’azienda, ha esaminato i pro e i contro dei microservizi, sulla base della propria esperienza.

I grandi servizi possono portare a grandi fallimenti: se una applicazione monolitica non funziona, l’azienda non fa soldi. Nel mondo dei microservizi, se un servizio smette di funzionare non blocca l’intera azienda”, ha dichiarato Collinge. “I microservizi guidano l’innovazione e accorciano il ciclo di costruzione, test, apprendimento. Gli sviluppatori si sentono più propensi a sperimentare e liberi di costruire cose che non devono durare dieci anni“.

Inoltre offre ai team maggiore flessibilità. “Ogni team può avere il proprio backlog di modifica, scalabilità e rilascio indipendente, consentendo all’azienda nel suo complesso di muoversi più velocemente“, ha sottolineato Collinge.

I contro dei microservizi

Questo non vuol dire che i microservizi siano perfetti. La complessa rete di dipendenze creata da un’architettura a microservizi può causare problemi di complessità.

In un post piuttosto critico del 2014, Martin Fowler – che ha contribuito alla definizione del concetto di microservizio – scriveva: “Il problema principale nel cambiare un monolite in microservizi consiste nel cambiare il modello di comunicazione“.

Un altro problema è che se i componenti non sono sviluppati in modo pulito, tutto quello che si sta facendo è spostare la complessità dall’interno di un componente alle connessioni tra i componenti“, proseguiva Fowler. “Non solo questo distribuisce la complessità, ma la sposta dove è meno esplicita e più difficile da controllare“.

Le cose sono andate avanti da allora, ma ciò non significa che i microservizi siano la scelta giusta per ogni azienda.

“Bisogna investire tempo nella progettazione: limitarsi a spezzare un’applicazione monolitica in microservizi non basta a migliorarla”, ha sottolineato Collinge di Comparethemarket.com. “Se i pezzi sono strettamente accoppiati, si ottengono semplicemente microservizi accoppiati, ovvero un monolite distribuito, che è situazione meno auspicabile“.

Segment, startup specializzata in gestione dati, ha dichiarato a Computerworld che il passaggio ai microservizi ha creato nuovi tipi di code di eventi, che si sono formate per ogni singola destinazione e servizio dell’API partner. Questo significa che gli sviluppatori si sono presto trovati sommersi dalla complessità.

La manutenzione è diventata un grosso problema per gli sviluppatori: la modifica di ciascuno di questi servizi richiedeva più sviluppatori dedicati e più giorni di lavoro per i test e la distribuzione”, ha spiegato Alex Noonan, ingegnere del software che ha guidato il progetto di Segment. “Era diventato un onere enorme, quindi abbiamo deciso di non apportare modifiche che non fossero strettamente necessarie“.

Alla fine Segment è tornata a un’architettura monolitica, facendo confluire tutti i microservizi nel progetto Centrifuge, un unico sistema di consegna di eventi che la società stava sviluppando.

VIAScott Carey
SOURCEComputerworld UK
CIO
Con informazioni, approfondimenti ed eventi ad hoc, CIO Italia è una risorsa preziosa per tutti i leader delle strutture IT e i decisori delle strategie tecnologiche aziendali.

WHITEPAPER GRATUITI

  • Computerworld Speciale Industria 4.0
    white paper

    Computerworld Italia – Speciale Industria 4.0

    Un PDF da scaricare per leggerlo comodamente su pc o tablet e avere sotto mano e in un unica soluzione le notizie, le analisi e gli approfondimenti sulla trasformazione in atto nel settore manifatturiero, da più parti definita "quarta rivoluzione industriale".
  • white paper

    Computerworld Italia – Speciale GDPR

    Un PDF da sfogliare online o scaricare per leggerlo comodamente su pc o tablet, per avere sotto mano e in un unica soluzione le notizie, le analisi e gli approfondimenti su come le aziende devono affrontare l'arrivo del GDPR.
  • white paper

    Computerworld Italia – Speciale Data Center

    Un PDF da sfogliare o scaricare su pc o tablet per avere sotto mano le notizie, le analisi e gli approfondimenti sulle principali tendenze dei Data Center: integrazione con il Cloud, approccio software-defined, ottimizzazione delle prestazioni energetiche e molto altro