Jump to section

Cos'è l'orchestrazione dei container?

Copia URL

Definiamo orchestrazione dei container l'automazione dei processi di deployment, gestione, scalabilità e networking dei container. È una metodologia altamente funzionale per l'enterprise che deve distribuire e gestire centinaia o migliaia di host e container Linux®

L'orchestrazione dei container è applicabile a qualsiasi ambiente in cui si utilizzano i container, e risulta utile per la distribuzione della stessa applicazione su più ambienti, senza doverla riprogettare. Inserendo i microservizi nei container, è possibile gestire con semplicità i servizi, inclusi lo storage, le reti e la sicurezza. 

I container offrono alle applicazioni basate su microservizi un'unità di deployment dell'applicazione ideale e un ambiente di esecuzione autosufficiente. Permettono di eseguire più parti di un'app in modo indipendente nei microservizi, sullo stesso hardware, con un controllo superiore sui singoli componenti e cicli di vita.

Scegliere l'orchestrazione per il ciclo di vita dei container aiuta inoltre i team DevOps a gestire più facilmente i flussi di integrazione e deployment continui (CI/CD). Insieme all'utilizzo delle interfacce di programmazione delle applicazioni (API) e dei team DevOps, i microservizi containerizzati sono alla base delle applicazioni cloud native.

Attraverso l'automazione, l'orchestrazione dei container serve a semplificare la gestione di numerose attività, tra cui:

  • Provisioning e deployment
  • Configurazione e pianificazione 
  • Assegnazione delle risorse
  • Disponibilità dei container 
  • Scalabilità o rimozione dei container in funzione del bilanciamento dei carichi di lavoro dell'infrastruttura
  • Bilanciamento del carico e routing del traffico 
  • Monitoraggio dell'integrità dei container
  • Configurazione delle applicazioni in base al container in cui verranno eseguite
  • Protezione costante delle interazioni tra container

Gli strumenti utilizzati per l'orchestrazione dei container offrono un framework per la gestione delle architetture basate su container e microservizi su larga scala. Numerosi sono gli strumenti disponibili per la gestione del ciclo di vita dei container. Tra i più diffusi ricordiamo Kubernetes, Docker Swarm e Apache Mesos.

Kubernetes è uno strumento open source per l'orchestrazione dei container ideato e sviluppato in origine dagli ingegneri di Google. Nel 2015, Google ha ceduto il controllo del progetto Kubernetes alla Cloud Native Computing Foundation, di recente formazione.

L'orchestrazione di Kubernetes consente di creare servizi applicativi che si estendono su più container, programmare tali container in un cluster, gestirne la scalabilità e l'integrità nel tempo.

Consente di eliminare molti dei processi manuali previsti dal deployment e dalla scalabilità di applicazioni containerizzate, e di gestire con semplicità ed efficienza cluster di host, fisici o macchine virtuali, su cui vengono eseguiti container Linux.

Più in generale, Kubernetes garantisce l'affidabilità necessaria ad adottare un'infrastruttura containerizzata negli ambienti di produzione.

I cluster possono espandersi su più host situati su cloud pubblici, privati o ibridi. Ecco perché Kubernetes è la piattaforma ideale per l'hosting di applicazioni cloud native caratterizzate da un'elevata scalabilità.

Infine, la piattaforma semplifica il bilanciamento e la portabilità dei carichi di lavoro, perché permette di spostare le applicazioni tra diversi ambienti senza doverle riprogettare. 

Componenti principali di Kubernetes:

  • Cluster: un piano di controllo e uno o più sistemi di elaborazione, o nodi.
  • Piano di controllo: raccolta di processi che controllano i nodi Kubernetes. È il punto di origine di tutte le attività assegnate.
  • Kubelet: questo servizio viene eseguito sui nodi, legge i manifest del container e garantisce l'avvio e l'esecuzione dei container definiti.
  • Pod: un gruppo di uno o più container distribuiti su un singolo nodo. Tutti i container presenti in un pod condividono indirizzo IP, IPC, nome host ed altre risorse.

Quando si utilizza uno strumento di orchestrazione dei container come Kubernetes, la configurazione di un'applicazione viene descritta tramite un file YAML o JSON. Questo file indica allo strumento di gestione della configurazione dove trovare le immagini del container, come definire una rete e dove archiviare i registri.

Durante il deployment di un nuovo container, lo strumento di gestione dei container programma automaticamente il deployment in un cluster e individua l'host corretto tenendo conto di ogni requisito o limite indicato. Lo strumento di orchestrazione gestisce quindi il ciclo di vita del container in base alle specifiche determinate nel file Compose.

I modelli Kubernetes possono essere utilizzati per gestire la configurazione, il ciclo di vita e la scalabilità delle applicazioni e dei servizi containerizzati. Sono modelli ripetibili necessari agli sviluppatori Kubernetes per creare sistemi completi.

L'orchestrazione dei container può essere adottata in qualsiasi ambiente in cui vengono eseguiti i container, inclusi i server on-premise e gli ambienti di cloud pubblico o privato.

Le applicazioni di produzione si espandono su più container, che devono essere distribuiti su più host server. È qui che entra in gioco Red Hat® OpenShift®. Red Hat OpenShift è Kubernetes di livello enterprise, ma offre molti altri vantaggi.

Red Hat OpenShift include tutti i componenti aggiuntivi che rendono Kubernetes una soluzione efficiente di livello enterprise, tra cui: registro, reti, telemetria, sicurezza, automazione e servizi.

Con Red Hat OpenShift, gli sviluppatori possono creare nuove app containerizzate, ospitarle e distribuirle nel cloud con la scalabilità, il controllo e l'orchestrazione necessari per commercializzare nuove iniziative, in modo rapido e facile.

Prova, acquista e gestisci software certificato in cloud pubblici, cloud privati e datacenter aziendali. Con Red Hat Marketplace si può. Offre una soluzione semplice per accedere al software che utilizzi già, creare un ambiente unificato basato su Kubernetes e distribuirlo ovunque.

Con Red Hat Marketplace puoi dedicare più tempo allo sviluppo di soluzioni innovative, senza preoccuparti di monitorare licenze, diritti e scadenze.

Keep reading

ARTICOLO

Container e VM

I container Linux e le macchine virtuali (VM) sono entrambi pacchetti di ambienti di elaborazione che combinano vari componenti IT e li isolano dal resto del sistema.

ARTICOLO

Cos'è l'orchestrazione dei container?

Definiamo orchestrazione dei container l'automazione dei processi di deployment, gestione, scalabilità e networking dei container.

ARTICOLO

Cos'è un container Linux?

Un container Linux è un insieme di processi, isolati dal resto del sistema, che esegue un'immagine distinta contenente tutti i file necessari per supportare tali processi.

Scopri di più sui container

Prodotti

Una piattaforma applicativa aziendale che offre servizi verificati per consentire la distribuzione delle app sulle infrastrutture preferite.

Risorse

Checklist

10 considerazioni sui deployment Kubernetes

Checklist

Sei considerazioni per scegliere la piattaforma Kubernetes giusta

Serie Open Answers: Cos'è Red Hat OpenShift?

Formazione

Corso di formazione gratuito

Running Containers with Red Hat Technical Overview

Corso di formazione gratuito

Containers, Kubernetes and Red Hat OpenShift Technical Overview

Corso di formazione gratuito

Developing Cloud-Native Applications with Microservices Architectures