Condividi tramite


Orchestrazione dei contenitori per microservizi

Servizio Azure Kubernetes (AKS)
Azure Service Fabric
Istanze di Azure Container

Le architetture di microservizi in genere creano un pacchetto e distribuiscono ogni istanza di microservizio all'interno di un singolo contenitore. Molte istanze dei microservizi potrebbero essere in esecuzione, ognuna in un contenitore separato. I contenitori sono leggeri e di breve durata, semplificando la creazione e l'eliminazione, ma difficili da coordinare e comunicare tra loro.

Questo articolo illustra le problematiche dell'esecuzione di un'architettura di microservizi in contenitori su larga scala e del modo in cui l'orchestrazione dei contenitori può essere utile. L'articolo presenta diverse opzioni di orchestrazione dei contenitori di Azure.

Architettura di microservizi in contenitori

In questo semplice cluster del servizio Azure Kubernetes in contenitori:

  • Un'istanza di MicroserviziO è in esecuzione nel nodo 1, un'altra istanza del nodo 2 e una terza istanza del nodo 3.
  • Un'istanza del microservizio B è in esecuzione nel nodo 1 e un'altra istanza nel nodo 3.
  • I server proxy inversi in contenitori vengono eseguiti nei nodi 1 e 2 per distribuire il traffico.

diagramma concettuale di una semplice architettura di microservizi in contenitori.

Per gestire il cluster, un team DevOps deve:

  • Eseguire più istanze di contenitore in ogni nodo.
  • Bilanciare il carico del traffico tra le istanze.
  • Gestire la comunicazione tra istanze dipendenti in nodi separati.
  • Mantenere lo stato del cluster del servizio Azure Kubernetes desiderato.

Con l'orchestrazione dei contenitori, il team DevOps può rappresentare lo stato desiderato del cluster come configurazione. Un motore di orchestrazione dei contenitori applica la configurazione desiderata e automatizza tutte le attività di gestione.

Prendere in considerazione la possibilità di inserire in contenitori una semplice applicazione Web a tre livelli:

  • Un contenitore ospita il componente front-end.
  • Un altro contenitore ospita il livello intermedio o l'API REST.
  • Il livello intermedio comunica con un database distribuito a livello globale.

L'esecuzione di questi contenitori in un singolo computer di sviluppo potrebbe non essere troppo difficile. Tuttavia, l'esecuzione dell'applicazione in modalità a disponibilità elevata su larga scala in un cluster di produzione diventa rapidamente complessa. L'orchestrazione dei contenitori è fondamentale per ambienti di produzione di grandi dimensioni e dinamici.

Vantaggi dell'orchestrazione dei contenitori

L'esempio seguente illustra in che modo l'orchestrazione dei contenitori consente di gestire la distribuzione, la rete e il ridimensionamento del cluster.

Diagramma di un cluster di microservizi di esempio che mostra gli scenari dell'agente di orchestrazione dei contenitori.

Agente di orchestrazione contenitori:

  • Ridimensiona automaticamente il numero di istanze di microservizi, in base al traffico o all'utilizzo delle risorse. Nell'esempio l'agente di orchestrazione aggiunge automaticamente un'altra istanza di Microservice A in risposta a un aumento del traffico.

  • Gestisce i contenitori per riflettere lo stato desiderato configurato. Nell'esempio microserviziO B è configurato per avere due istanze. Un'istanza è diventata non integra, quindi l'agente di orchestrazione mantiene lo stato desiderato creando un'altra istanza.

  • Esegue il wrapping dei contenitori per ogni microservizio in un livello di servizio semplice. Livello di servizio:

    • Astrae complessità come indirizzo IP, porta e numero di istanze.
    • Bilancia il carico del traffico tra istanze di microservizio.
    • Supporta una semplice comunicazione tra istanze di microservizi dipendenti.

Gli agenti di orchestrazione dei contenitori offrono anche flessibilità e controllo del traffico per:

  • Rilasciare nuove versioni o eseguire il rollback alle versioni precedenti di microservizi o set di microservizi, senza tempi di inattività.
  • Abilitare il test side-by-side di versioni di microservizi diverse.

Scegliere un agente di orchestrazione contenitori di Azure

Ecco alcune opzioni per l'implementazione dell'orchestrazione dei contenitori di microservizi in Azure:

  • del servizio Azure Kubernetes è un servizio di orchestrazione dei contenitori completamente gestito Kubernetes in Azure che semplifica la distribuzione e la gestione delle applicazioni in contenitori. Il servizio Azure Kubernetes offre provisioning elastico, distribuzione end-to-end veloce e gestione avanzata delle identità e degli accessi.

  • di Azure Service Fabric è un agente di orchestrazione dei contenitori per la distribuzione e la gestione di microservizi in un cluster di computer. Il runtime leggero di Service Fabric supporta la compilazione di microservizi senza stato e con stato.

    Un fattore chiave di differenziazione di Service Fabric è il supporto affidabile per la creazione di servizi con stato. È possibile usare il modello di programmazione dei servizi con stato predefinito oppure eseguire servizi con stato in contenitori scritti in qualsiasi linguaggio o codice.

  • istanze di Azure Container (ACI) è il modo più rapido e semplice per eseguire un contenitore in Azure. Con ACI non è necessario gestire le macchine virtuali o adattare servizi di livello superiore.

    Per scenari di orchestrazione semplici, è possibile usare Docker Compose per definire ed eseguire un'applicazione multicontenitore in locale. Distribuire quindi i contenitori Docker come gruppo di contenitori ACI in un ambiente Azure serverless gestito. Per scenari di orchestrazione dei contenitori completi, ACI può integrarsi con il servizio Azure Kubernetes per creare nodi virtuali per l'orchestrazione del servizio Azure Kubernetes.

  • di Azure Spring Apps è un servizio completamente gestito e pronto per l'organizzazione per app Spring Boot. Con Spring Apps è possibile concentrarsi sulla creazione e l'esecuzione di app senza dover gestire l'infrastruttura. Spring Apps include la gestione predefinita del ciclo di vita e dell'orchestrazione, la facilità di monitoraggio e l'integrazione completa con Azure.

  • Azure Red Hat OpenShift (ARO) supporta la distribuzione di cluster openshift completamente gestiti in Azure. L'esecuzione di contenitori di produzione Kubernetes richiede l'integrazione con framework e strumenti come registri immagini, gestione dell'archiviazione, monitoraggio e DevOps. ARO estende Kubernetes combinando questi componenti in una singola piattaforma contenitore distribuita come servizio (PaaS).

Contributori

Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai collaboratori seguenti.

Autore principale:

Per visualizzare i profili LinkedIn non pubblici, accedere a LinkedIn.

Passaggi successivi