Che cosa sono i microservizi?
I microservizi descrivono il processo architetturale di compilazione di un'applicazione distribuita da servizi distribuibili separatamente che eseguono funzioni aziendali specifiche e comunicano tramite interfacce Web. I team DevOps racchiudono singoli componenti di funzionalità nei microservizi e creano sistemi di grandi dimensioni combinando i microservizi come i blocchi predefiniti.
I microservizi applicano un esempio del principio aperto/chiuso:
- Sono aperti per l'estensione (usando le interfacce esposte)
- Vengono chiuse per la modifica (ognuna viene implementata e con controllo delle versioni in modo indipendente)
I microservizi offrono molti vantaggi rispetto alle architetture monolitiche:
- Possono rimuovere singoli punti di errore (SPOFs) assicurandosi che i problemi in un servizio non si arrestino in modo anomalo o influiscano su altre parti di un'applicazione.
- I singoli microservizi possono essere ridimensionati in modo indipendente per offrire disponibilità e capacità aggiuntive.
- I team DevOps possono estendere le funzionalità aggiungendo nuovi microservizi senza influire inutilmente su altre parti dell'applicazione.
L'uso di microservizi può aumentare la velocità del team. Le procedure DevOps, ad esempio l'integrazione continua e il recapito continuo, vengono usate per gestire le distribuzioni di microservizi. I microservizi integrano perfettamente le architetture di applicazioni basate sul cloud consentendo ai team di sviluppo software di sfruttare i vantaggi di scenari come la programmazione guidata dagli eventi e la scalabilità automatica. I componenti del microservizio espongono API (interfacce di programmazione delle applicazioni), in genere tramite protocolli REST, per la comunicazione con altri servizi.
Una pratica sempre più comune consiste nell'usare cluster di contenitori per implementare microservizi. I contenitori consentono l'isolamento, la creazione di pacchetti e la distribuzione di microservizi, mentre l'orchestrazione aumenta il numero di istanze di un gruppo di contenitori in un'applicazione.
Altre informazioni sui microservizi in Azure.