Che cosa sono gli agente di orchestrazione?
La struttura disaccoppiata dei microservizi, unita all'atomicità dei contenitori, permette di ridimensionare le app in risposta a un aumento della domanda, distribuendo più istanze di contenitore. Quando la domanda diminuisce, è possibile tornare al numero originale di istanze. Nelle soluzioni complesse il processo di distribuzione, aggiornamento, monitoraggio e rimozione dei contenitori comporta diverse problematiche.
Gestione contenitori
La gestione dei contenitori è il processo di organizzazione, aggiunta, rimozione o aggiornamento di un numero significativo di contenitori.
Il sito Web di dell'azienda di attrezzature outdoor Contoso è costituito da vari microservizi responsabili di attività come la memorizzazione nella cache, l'elaborazione dati e un carrello acquisti. Ognuno di questi servizi è ospitato in un contenitore e può essere distribuito, aggiornato e ridimensionato in modo indipendente.
Se si aumenta il numero di istanze di Container del carrello acquisti ed è necessario distribuire una nuova versione, si deve aggiornare ogni singola istanza di tale contenitore.
La gestione del contenitore agevola queste attività.
Orchestrazione dei contenitori
Un agente di orchestrazione dei contenitori è un sistema che distribuisce e gestisce automaticamente le app inserite in contenitori. Ad esempio, l'agente di orchestrazione può rispondere dinamicamente alle modifiche nell'ambiente per aumentare o diminuire le istanze distribuite dell'app gestita. Può anche garantire che tutte le istanze di contenitore distribuite vengano aggiornate quando viene rilasciata una nuova versione di un servizio.
Kubernetes
Kubernetes è una piattaforma open source portabile ed estendibile per la gestione e l'orchestrazione dei carichi di lavoro in contenitori. Kubernetes elimina la complessità delle attività di gestione dei contenitori e offre una configurazione dichiarativa per orchestrare i contenitori in ambienti di calcolo diversi. Questa piattaforma di orchestrazione offre la stessa facilità d'uso e la stessa flessibilità, probabilmente già note, delle offerte di piattaforme distribuite come Platform-as-a-Service (PaaS) o Infrastructure-as-a-Service (IaaS).
Vantaggi
I vantaggi dell'uso di Kubernetes sono basati sull'astrazione delle attività.
Queste attività includono:
- Riparazione automatica dei contenitori. Ad esempio, il riavvio dei contenitori non eseguiti o la sostituzione dei contenitori.
- Ridimensionamento dinamico del numero di contenitori distribuiti in base alle esigenze.
- Aggiornamenti in sequenza automatici e ripristino dello stato precedente dei contenitori.
- Gestione dell'archiviazione.
- Gestione del traffico di rete.
- Archiviazione e gestione delle informazioni sensibili, ad esempio nomi utente e password.
Poiché Kubernetes è uno strumento per orchestrare i carichi di lavoro in contenitori ed è possibile distribuire i microservizi .NET in contenitori, è possibile usare Kubernetes per orchestrare i microservizi .NET. Questo è ciò che verrà descritto nel resto di questo modulo.