Home topics Cos'è l'orchestrazione del contenitore? Cos'è l'orchestrazione di contenitori?
Esplora la soluzione di orchestrazione dei container di IBM Abbonati per ricevere gli aggiornamenti cloud
Illustrazione con collage di pittogrammi di monitor del computer, server, nuvole, punti
Cos'è l'orchestrazione di contenitori?

L'orchestrazione di contenitori automatizza e semplifica il provisioning, l'implementazione e la gestione delle applicazioni containerizzate.

Oggi Kubernetes è la piattaforma di orchestrazione di container più popolare e la maggior parte dei principali provider di cloud pubblico, tra cui Amazon Web Services (AWS), Google Cloud Platform, IBM Cloud e Microsoft Azure, offrono servizi Kubernetes gestiti. Altri strumenti di orchestrazione di container includono Docker Swarm e Apache Mesos.

Scopri tutti i vantaggi dell'hybrid cloud

Connetti e integra i tuoi sistemi al fine di preparare l'infrastruttura per l'AI.

Contenuti correlati

Registrati per ricevere la guida su DaaS

Maggiori informazioni sui contenitori e sul motivo per cui necessitano di orchestrazione

I container sono componenti applicativi leggeri ed eseguibili che combinano il codice sorgente dell'applicazione con tutte le librerie e le dipendenze del sistema operativo (SO) necessarie per eseguire il codice in qualsiasi ambiente. 

La possibilità di creare container esiste da decenni, ma è diventata ampiamente disponibile nel 2008 quando Linux ha incluso la funzionalità dei container nel proprio kernel. Successivamente è stata ampiamente utilizzata con l'arrivo della piattaforma di containerizzazione open source Docker nel 2013. (Docker è così diffuso che "container Docker" e "container" sono spesso usati in modo intercambiabile.) 

Poiché sono più piccoli, più efficienti in termini di risorse e più portabili rispetto alle macchine virtuali (VM), i container - e più specificamente i microservizi containerizzati o le funzioni serverless - sono diventati di fatto le unità di calcolo delle moderne applicazioni cloud-native. (Per ulteriori informazioni sui vantaggi dei contenitori, vedi la visualizzazione interattiva dei dati riportata di seguito)

In piccole quantità, i container sono abbastanza facili da implementare e gestire manualmente. Nella maggior parte delle organizzazioni, però, il numero di applicazioni containerizzate sta crescendo rapidamente e la loro gestione su larga scala, soprattutto nell'ambito di una pipeline di integrazione continua/fornitura continua (CI/CD) o DevOps, è impossibile senza l'automazione.

Qui entra in gioco l'orchestrazione dei container, che automatizza le operazioni di implementazione ed esecuzione di applicazioni e servizi containerizzati. Secondo una recente ricerca IBM, il 70% degli sviluppatori che utilizzano container dichiara di utilizzare una soluzione di orchestrazione dei container e il 70% di questi dichiara di utilizzare un servizio di orchestrazione dei container completamente gestito (gestito nel cloud) nella propria organizzazione.

Scarica il report completo: Containers in the enterprise
Come funziona l'orchestrazione di contenitori

Sebbene vi siano differenze nelle metodologie e nelle capacità tra gli strumenti, l'orchestrazione di contenitori è essenzialmente un processo in tre fasi (o ciclo, quando è parte di una pipeline agile o DevOps).

La maggior parte degli strumenti di orchestrazione dei container supporta un modello di configurazione dichiarativa: uno sviluppatore scrive un file di configurazione (in YAML o JSON a seconda dello strumento) che definisce uno stato di configurazione desiderato. Lo strumento di orchestrazione che esegue il file utilizza la propria intelligenza per raggiungere quello stato. Il file di configurazione  di norma:

  • Definisce quali immagini container compongono l'applicazione e dove si trovano (in quale registro).

  • Fornisce ai container lo storage e altre risorse.

  • Definisce e protegge le connessioni di rete tra container.

  • Specifica il controllo versioni (per rollout a fasi o canary).

Lo strumento di orchestrazione pianifica l'implementazione dei container (e delle repliche dei container, per la resilienza) a un host. Sceglie l'host migliore in base alla capacità CPU disponibile, alla memoria o ad altri requisiti o vincoli specificati nel file di configurazione. 

Una volta che i container sono implementati, lo strumento di orchestrazione gestisce il ciclo di vita dell'applicazione containerizzata in base al file delle definizioni del container (spesso un Dockerfile). Questo include: 

  • Gestione della scalabilità (incrementale e decrementale), bilanciamento del carico e allocazione delle risorse tra i container.

  • Garanzia della disponibilità e delle prestazioni spostando i container su un altro host nel caso di un'interruzione o di una carenza di risorse del sistema.

  • Raccolta e archiviazione dei dati di log e di altre telemetrie utilizzati per monitorare lo stato di integrità e le prestazioni dell'applicazione.

Vantaggi dell'orchestrazione dei contenitori


È probabilmente chiaro che il vantaggio principale dell'orchestrazione di container sia l'automazione - e non solo perché riduce notevolmente lo sforzo e la complessità di gestire un ampio patrimonio di applicazioni containerizzate. Automatizzando le operazioni, l'orchestrazione supporta un approccio Agile o DevOps che consente ai team di sviluppare e implementare in cicli rapidi e iterativi e di rilasciare più velocemente nuove funzioni e funzionalità.

In aggiunta, l'intelligenza di uno strumento di orchestrazione può migliorare o estendere molti dei vantaggi intrinseci della containerizzazione. Ad esempio, l'automazione della selezione dell'host e dell'allocazione delle risorse, basata sulla configurazione dichiarativa aumenta al massimo l'uso efficiente delle risorse di calcolo; il monitoraggio dello stato di integrità e la riassegnazione dei container aumentano al massimo la disponibilità.

Kubernetes

Come abbiamo osservato, Kubernetes è la più diffusa piattaforma di orchestrazione dei container. Insieme ad altri strumenti nell'ecosistema dei container, Kubernetes consente a un'azienda di fornire una platform-as-a-service (PaaS) altamente produttiva Permette anche di affrontare molte delle attività e dei problemi relativi all'infrastruttura e alle operazioni relative allo sviluppo di applicazioni cloud-native in modo che i team di sviluppo possano concentrarsi esclusivamente sulla codifica e sull'innovazione.

I vantaggi di Kubernetes rispetto ad altre soluzioni di orchestrazione sono in gran parte un risultato della sua funzione più completa e sofisticata in diversi settori, tra cui:

  • Implementazione dei container. Kubernetes implementa un numero specifico di container su un host specifico e li mantiene in esecuzione in uno stato desiderato.

  • Rollout. Un rollout è una modifica a un'implementazione. Kubernetes consente di iniziare, sospendere, riprendere o eseguire il ripristino dello stato precedente dei rollout.

  • Rilevamento dei servizi. Kubernetes può automaticamente esporre un container su Internet o su altri container utilizzando un nome DNS o un indirizzo IP.

  • Provisioning dello storage. Gli sviluppatori possono impostare Kubernetes in modo da fornire storage permanente, locale o in cloud, ai tuoi container, in base alle necessità.

  • Bilanciamento del carico e scalabilità. In caso di picco di traffico su un container, Kubernetes può eseguire il bilanciamento del carico ed eseguire la scalabilità per distribuire il traffico nella rete, in modo da assicurare stabilità e prestazioni. (Inoltre evita agli sviluppatori il lavoro di impostare un programma di bilanciamento del carico).

  • Correzione automatica per l'alta disponibilità. Quando un contenitore non funziona, Kubernetes lo può riavviare o sostituire automaticamente. Può anche disattivare i container che non soddisfano i tuoi requisiti di controllo dello stato di integrità.

     
  • Supporto e portabilità tra più provider di servizi cloud. Come osservato in precedenza, Kubernetes si avvale di un ampio supporto offerto da tutti i principali provider di servizi cloud. Questo è particolarmente importante per le organizzazioni che implementano applicazioni in un ambientecloud ibrido o multicloud ibrido.

  • Un crescente ecosistema di strumenti open source . Kubernetes dispone inoltre di un parco strumenti di usabilità e rete in continua espansione per migliorare le proprie funzionalità attraverso l'API di Kubernetes. Questi includono Knative, che consente l'esecuzione dei container come workload serverless; e Istio, una mesh di servizi open source. 

Ulteriori informazioni su Kubernetes

Soluzioni correlate
Red Hat OpenShift on IBM Cloud

Red Hat OpenShift on IBM Cloud si avvale di OpenShift in ambienti pubblici e ibridi per una maggiore velocità, reattività al mercato, scalabilità e affidabilità.

Scopri Red Hat OpenShift su IBM Cloud
IBM Cloud Satellite

Con IBM Cloud Satellite puoi avviare servizi cloud coerenti ovunque, in ambienti on-premise, sull'edge e in ambienti di cloud pubblico.

Esplora IBM cloud satellite
IBM Cloud Code Engine

Esegui immagini di container, processi batch o codice sorgente come workload serverless, senza necessità di dimensionamento,  implementazione, rete o scalabilità. 

Esplora IBM cloud code engine
Ottimizza Kubernetes con IBM Turbonomic

Determina automaticamente le corrette azioni di allocazione delle risorse e il momento giusto per effettuarle, al fine di garantire che gli ambienti Kubernetes e le applicazioni mission-critical ottengano esattamente quanto necessario per soddisfare gli SLO.

Esplora IBM Turbonomic
Risorse Containers in the enterprise

Una nuova ricerca IBM documenta il crescente slancio dell’adozione di container e Kubernetes.

Combina le migliori caratteristiche del cloud e dell'IT tradizionale

L'orchestrazione di contenitori è un componente chiave di una strategia di cloud ibrido aperto che consente di creare e gestire i carichi di lavoro ovunque ti trovi.

Cos'è Docker?

Docker è una piattaforma open source per la creazione, l'implementazione e e la gestione di applicazioni containerizzate.

Fai il passo successivo

Red Hat OpenShift on IBM Cloud offre agli sviluppatori un modo rapido e sicuro per containerizzare e implementare i carichi di lavoro aziendali nei cluster Kubernetes. Delega attività noiose e ripetitive che coinvolgono la gestione della sicurezza, la gestione della conformità, la gestione dell'implementazione e la gestione continua del ciclo di vita.

Scopri Red Hat OpenShift su IBM Cloud Inizia gratuitamente