Cos'è l'orchestrazione dei microservizi?

Due persone che guardano un computer

Autori

Stephanie Susnjara

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

Cos'è l'orchestrazione dei microservizi?

L'orchestrazione dei microservizi è il coordinamento automatico di microservizi distribuiti che funzionano insieme come un sistema di applicazioni coeso. Gestisce le interazioni con i servizi, le dipendenze, la tolleranza agli errori, il ripristino dai guasti e l'implementazione end-to-end.

Immagina il direttore di un'orchestra sinfonica che ordina a ogni musicista di suonare al momento giusto. Allo stesso modo, l'orchestrazione può garantire che ogni microservizio svolga la sua funzione specifica quando necessario per offrire esperienze degli utenti ottimali. Senza questo coordinamento, ci sarebbe il caos: servizi che si chiamano a vicenda in modo casuale, workflow che si interrompono quando i componenti si guastano e nessuna visibilità su ciò che accade nelle diverse infrastrutture IT.

Le organizzazioni necessitano dell'orchestrazione perché le applicazioni moderne sono complesse e composte da centinaia di singoli servizi. L'orchestrazione dei microservizi funge da sistema che trasforma questi servizi indipendenti in applicazioni ben coordinate, mantenendo i benefici di scalabilità e flessibilità di un'architettura distribuita.

Secondo un rapporto di Research Nester, il mercato dell'orchestrazione dei microservizi è stato valutato 4,7 miliardi di dollari nel 2024 e si prevede che raggiunga i 72,3 miliardi di dollari nel 2032. Questa ricerca dimostra un tasso di crescita annuo composto (CAGR) del 23,4% durante il periodo di previsione.1  

A guidare la costante espansione del mercato è la crescita delle applicazioni all'interno di aziende tecnologiche globali come Google e Amazon, insieme alla crescente domanda di e-commerce, fintech e servizi di streaming.

I principali servizi di streaming, come Netflix e Hulu, sono il perfetto esempio di un classico caso d'uso. Si affidano all'orchestrazione per coordinare centinaia di microservizi che gestiscono tutto, dall'autenticazione degli utenti e i consigli sui contenuti al video streaming e la fatturazione. Tutto deve funzionare all'unisono per offrire milioni di esperienze visive personalizzate contemporaneamente.

Le ultime notizie nel campo della tecnologia, supportate dalle analisi degli esperti

Resta al passo con le tendenze più importanti e interessanti del settore relative ad AI, automazione, dati e oltre con la newsletter Think. Leggi l' Informativa sulla privacy IBM.

Grazie per aver effettuato l'iscrizione!

L'abbonamento sarà fornito in lingua inglese. Troverai un link per annullare l'iscrizione in tutte le newsletter. Puoi gestire i tuoi abbonamenti o annullarli qui. Per ulteriori informazioni, consulta l'Informativa sulla privacy IBM.

Che cosa sono i microservizi?

I microservizi sono piccoli componenti software indipendenti e autonomi che lavorano insieme per formare un'applicazione completa. Consentono alle organizzazioni di creare, implementare e scalare le applicazioni in modo più efficiente.

A differenza delle tradizionali applicazioni monolitiche, l'architettura dei microservizi cloud-native suddivide le applicazioni in servizi più piccoli e mirati che gestiscono funzioni aziendali specifiche. Ogni microservizio funziona in modo indipendente, comunica tramite application programming interface (API) e può essere sviluppato, implementato e scalato separatamente.

Prendiamo, ad esempio, un'app di ride-sharing come Uber o Lyft. Quando l'applicazione elabora una richiesta di prenotazione, l'orchestrator chiama il servizio di localizzazione per trovare i driver, avvia l'algoritmo di abbinamento e calcola il prezzo. L'orchestrator invia inoltre notifiche sia al pilota che al driver in una sequenza coordinata.

Questo approccio consente alle organizzazioni di creare sistemi più flessibili e scalabili, in grado di adattarsi rapidamente ai mutevoli requisiti aziendali. Aziende tecnologiche come Netflix, Amazon e Uber sono state pioniere dei microservizi per gestire lo sviluppo software rapido e su larga scala. Secondo un sondaggio IBM del 2021, l'85% delle organizzazioni ha adottato o prevede di adottare l'architettura dei microservizi, il che ne evidenzia la crescente importanza.

microservizi

Che cosa sono i microservizi?

In questo video, Dan Bettinger offre un'ampia panoramica dei microservizi. Confrontando l'architettura di un'applicazione di microservizi con l'architettura monolitica di tipo tradizionale in un'applicazione di ticketing a campione, Dan illustra la miriade di vantaggi dei microservizi e le soluzioni che offrono per le sfide che presentano i monoliti.

Come funziona l'orchestrazione dei microservizi?

Un framework di microservizi utilizza un sistema centralizzato di gestione del workflow che distribuisce i processi aziendali tramite chiamate di servizio sincrone. L'orchestrator mantiene le definizioni dei workflow, comprende le dipendenze dei servizi e può garantire che i microservizi siano eseguiti nella corretta sequenza.

Ad esempio, quando una società di e-commerce come Amazon elabora l'ordine di un cliente, l'orchestrator chiama il servizio di inventario per verificare la disponibilità, avvia l'elaborazione dei pagamenti, organizza la spedizione e invia notifiche ai clienti. L'orchestrator esegue tutte queste attività in una sequenza coordinata.

Questo coordinamento si basa su tecnologie chiave come Docker per la containerizzazione delle applicazioni e piattaforme di orchestrazione dei container come Kubernetes per la gestione della distribuzione dei container, della scalabilità e dell'individuazione dei servizi. Questi strumenti consentono ai servizi di comunicare in modo dinamico, ottimizzando al contempo l'allocazione delle risorse nell'infrastruttura. L'orchestrator monitora continuamente ogni fase del flusso del processo così che, in caso di problemi, può riprovare automaticamente le operazioni non riuscite, annullare le modifiche problematiche o avvertire gli amministratori per mantenere l'affidabilità del sistema.

Benefici dell'orchestrazione dei microservizi

L'orchestrazione dei microservizi offre questi benefici principali: 

  • Scalabilità e gestione delle risorse migliorate: le piattaforme di orchestrazione forniscono auto-scaling intelligente e gestione delle risorse per tutti i microservizi, prendendo decisioni di scalabilità a livello di sistema in base ai pattern di domanda.
  • Resilienza del sistema e isolamento dei guasti migliorati: l'orchestrazione centralizzata gestisce automaticamente i guasti riprovando le operazioni, impedendo a un servizio fallito di arrestare l'intera applicazione e mantenendo l'uniformità dei dati in tutti i servizi.
  • Cicli di sviluppo e implementazione più rapidi: il coordinamento automatizzato dei servizi elimina il lavoro di integrazione manuale, consentendo agli sviluppatori di concentrarsi sulla logica aziendale e supportando al contempo implementazioni più sicure attraverso rollout coordinati.
  • Diversità tecnologica e flessibilità migliorate: i team di sviluppo possono scegliere linguaggi, database e framework ottimali per servizi specifici partecipando a workflow coordinati attraverso un'orchestrazione unificata.
  • Supporto per i workload AI/ML: l'orchestrazione gestisce il complesso coordinamento richiesto per le pipeline di machine learning (ML), dalla pre-elaborazione dei dati e l'addestramento dei modelli, alla distribuzione e al monitoraggio. Gestisce inoltre i requisiti di calcolo dei diversi servizi di intelligenza artificiale (AI).

Principali modelli di progettazione e orchestrazione dei microservizi

Un'orchestrazione di successo si basa su modelli di progettazione di microservizi comprovati che affrontano le problematiche comuni dei sistemi distribuiti. Ecco alcuni degli esempi più importanti:

Modello saga

Un modello saga gestisce le transazioni distribuite suddividendole in fasi reversibili. Se qualche passaggio fallisce, la saga esegue azioni di compensazione per annullare le operazioni precedenti e mantenere la coerenza dei dati tra i servizi.

Ad esempio, su un sito di e-commerce, se un pagamento non va a buon fine durante il checkout, la saga annulla il blocco dell'inventario e ripristina il carrello.

Modello circuit breaker

Un circuit breaker impedisce ai guasti di diffondersi, monitorando le chiamate ai servizi a valle e interrompendo le richieste quando vengono rilevati dei guasti.

Ad esempio, quando un servizio di raccomandazione del prodotto inizia a non funzionare, il circuit breaker blocca automaticamente le richieste e mostra invece le raccomandazioni precedentemente memorizzate nella cache.

Modello di riprova e timeout

Un modello di riprova e timeout gestisce automaticamente i guasti temporanei del servizio, attendendo e riprovando le richieste non riuscite con tempistiche intelligenti.

Ad esempio, se un servizio di pagamento è temporaneamente non disponibile, il sistema attende e riprova.

Orchestrazione dei microservizi e coreografia a confronto

Nella creazione di sistemi distribuiti, i team e gli sviluppatori DevOps devono decidere se i servizi debbano essere coordinati centralmente o coordinarsi da soli. Questa decisione determina il modo in cui i microservizi comunicano, così come il modo in cui i team gestiscono la complessità e il modo in cui i sistemi scalano nel tempo.

  • L'orchestrazione dei microservizi utilizza un coordinatore centralizzato che gestisce tutte le interazioni con i servizi. Come un project manager, l'orchestrator conosce l'intero workflow e dice a ciascun servizio quando agire. Questo metodo fornisce una chiara visibilità dei processi complessi e semplifica l'implementazione delle regole aziendali e il mantenimento degli audit trail.
  • La coreografia dei microservizi adotta l'approccio opposto, ovvero i servizi si coordinano attraverso eventi senza un controllo centrale. Quando un servizio completa il lavoro, pubblica un evento che attiva l'azione di altri servizi. Le piattaforme di event streaming come Kafka spesso alimentano queste interazioni distribuendo in modo affidabile messaggi tra servizi su larga scala.

I team scelgono l'orchestrazione quando necessitano di controllo esplicito del workflow, governance centralizzata e rigorosa coerenza dei dati. È particolarmente utile nel settori finanziario, sanitario e logistico, dove la conformità normativa e la verificabilità sono essenziali.

I team scelgono la coreografia quando scalabilità, resilienza e autonomia del servizio sono delle priorità. Funziona bene per le architetture basate su eventi, i sistemi in tempo reale e l'elaborazione di grandi volumi, come ad esempio piattaforme di contenuti e sistemi Internet of Things (IoT).

Le architetture di microservizi di maggior successo adottano un approccio ibrido. Questo approccio può tradursi nell'orchestrazione dei workflow critici che richiedono un controllo rigoroso e la coreografia per interazioni vagamente accoppiate che traggono beneficio dall'elaborazione indipendente.

I migliori strumenti di orchestrazione dei microservizi

L'orchestrazione moderna si basa su diverse categorie di strumenti che interagiscono per gestire i cicli di vita dei microservizi, dalla distribuzione e scalabilità alla comunicazione e al monitoraggio. Ogni categoria presentata di seguito svolge un ruolo specifico nel consentire un'efficace orchestrazione dei microservizi:

  • Piattaforme di orchestrazione dei container
  • Mesh di servizi
  • Piattaforme serverless
  • API gateway
  • Strumenti di individuazione dei servizi
  • Motori di workflow e orchestrazione

Piattaforme di orchestrazione dei container

Le piattaforme di orchestrazione dei container automatizzano la distribuzione, il ridimensionamento e la gestione delle applicazioni basate su container. Forniscono il livello fondamentale per l'orchestrazione dei microservizi, gestendo il rilevamento dei servizi, il bilanciamento del carico, l'auto-scaling e la distribuzione.

I principali provider di cloud offrono servizi di orchestrazione gestiti, tra cui Amazon ECS ed EKS di AWS, Google GKE, Microsoft AKS e IBM Cloud Kubernetes Service.

Mesh di servizi

I mesh di servizi gestiscono la comunicazione, la sicurezza e l' osservabilità da servizio a servizio, senza richiedere modifiche al codice dell'applicazione. Offrono bilanciamento automatico del carico, interruzione del circuito, timeout e telemetria completa sulle interazioni con i microservizi.

Istio, un mesh di servizi open source configurabile, si integra in modo trasparente nelle applicazioni esistenti con funzionalità avanzate di gestione del traffico e di applicazione delle policy. Funziona bene con Kubernetes e con molte altre tecnologie adiacenti ai mesh di servizi.

Linkerd, anch'esso open source, si concentra sulla semplicità e sulle prestazioni, offrendo le funzionalità essenziali di un mesh di servizi, con costi operativi minimi.

Piattaforme serverless

Le piattaforme serverless supportano microservizi basati sugli eventi che si scalano automaticamente in base alla domanda. Offrono un ridimensionamento automatico da zero a migliaia di istanze e una gestione del traffico integrata per implementazioni sicure.

Knative è eseguito su Kubernetes per fornire funzionalità serverless per workload containerizzati e supporta il ridimensionamento automatico e la distribuzione semplificata.

API gateway

Gli API gateway forniscono un punto di ingresso unificato per i microservizi, gestendo l'autenticazione, la limitazione della velocità, la trasformazione e il logging completo. Sono essenziali per orchestrare le interazioni tra i clienti esterni e i servizi interni.

Sono disponibili numerose soluzioni API gateway, dalle opzioni open source come Kong ai servizi gestiti nel cloud di provider importanti.

Strumenti di discovery dei servizi

Gli strumenti di discovery dei servizi consentono ai microservizi di trovarsi e comunicare tra loro in modo dinamico, eliminando le dipendenze codificate. Si occupano della registrazione dei servizi, del controllo dello stato di salute e del coordinamento del bilanciamento del carico.

Le soluzioni più note includono etcd per ambienti Kubernetes e opzioni cloud-native come Amazon Web Services (AWS) cloud Map.

Motori di workflow e orchestrazione

I motori di workflow e orchestrazione coordinano nel tempo processi complessi in più fasi su più microservizi. Queste piattaforme forniscono una definizione visiva del workflow, una gestione automatica degli errori e una logica di riprova integrata per la gestione dei processi aziendali distribuiti.

Netflix Conductor gestisce l'orchestrazione del workflow appositamente progettata per gli ambienti di microservizi. Camunda Zeebe fornisce un'orchestrazione dei processi di livello aziendale utilizzando Business Process Model and Notation (BPMN) per la definizione del workflow e la gestione completa dei processi. 

Soluzioni correlate
IBM Red Hat OpenShift

Red Hat OpenShift on IBM Cloud è una OpenShift Container Platform (OCP) completamente gestita.

Esplora Red Hat OpenShift
Soluzioni DevOps

Utilizza il software e gli strumenti DevOps per creare, distribuire e gestire app cloud-native su più dispositivi e ambienti.

Esplora le soluzioni DevOps
Servizi di consulenza cloud 

Sblocca nuove funzionalità e promuovi l'agilità aziendale con i servizi di consulenza cloud di IBM. Scopri come creare insieme soluzioni, accelerare la trasformazione digitale e ottimizzare le prestazioni attraverso strategie di hybrid cloud e partnership di esperti.

Servizi cloud
Fasi successive

Sblocca nuove funzionalità e promuovi l'agilità aziendale con i servizi di consulenza IBM Cloud.

Scopri i servizi di consulenza IBM Cloud Crea un account IBM Cloud gratuito
Note a piè di pagina

1. Microservices Global Market Size and Share, Research Nester, 2024