Cos'è l'orchestrazione di contenitori?

 22 ottobre 2024

Autori

Ian Smalley

Senior Editorial Strategist

Cos'è l'orchestrazione di contenitori?

L'orchestrazione dei container prevede, implementa, scala e gestisce automaticamente il ciclo di vita delle applicazioni in container. Gli sviluppatori utilizzano l'orchestrazione dei container per semplificare i workflow Agile o DevOps, fornendo la flessibilità e la velocità necessarie per supportare le moderne infrastrutture di multicloud ibrido.

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

Veduta aerea di uno snodo di autostrade

Rimani con la testa nel cloud 


Ricevi la newsletter settimanale Think per una guida esperta sull'ottimizzazione delle impostazioni multicloud nell'era dell'AI.

Perché i container 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 necessarie per eseguire il codice in qualsiasi ambiente. 

La possibilità di creare container esiste da decenni, tuttavia è diventata ampiamente disponibile nel 2008 quando il kernel di Linux ha incluso la funzione container. È diventata ancora più essenziale con l'arrivo della piattaforma di containerizzazione open source Docker nel 2013. (Docker è così diffuso che "container Docker" e "container" vengono spesso utilizzati in modo intercambiabile.) Oggi i container sono compatibili con molti altri sistemi operativi oltre a Linux, incluso Windows.

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 in container o le funzioni serverless sono diventati di fatto le unità di calcolo delle moderne applicazioni cloud-native.

In piccole quantità, i container sono abbastanza facili da implementare e gestire manualmente. Tuttavia, le applicazioni in container e la necessità di gestirle su larga scala sono ormai presenti ovunque nella maggior parte delle organizzazioni di grandi dimensioni.

Ad esempio, una pipeline di integrazione continua/distribuzione continua (CI/CD)DevOps è impossibile senza l'orchestrazione dei container, che automatizza le attività operative relative all'implementazione e all'esecuzione di applicazioni e servizi in container.

In uno studio di IBM, il 70% degli sviluppatori intervistati utilizza soluzioni di orchestrazione dei container e il 70% di coloro che utilizzano una soluzione dichiara di usare un servizio di orchestrazione dei container completamente gestito (in cloud) nella propria organizzazione.

Come funziona l'orchestrazione dei container?

L'architettura dell'orchestrazione dei container consiste nell'esecuzione di cluster di container su più macchine e ambienti. Ogni cluster è in genere costituito da un gruppo di nodi (chiamati anche istanze del server). I nodi di lavoro eseguono i container utilizzando runtime dei container, come ad esempio Docker. Un gruppo di nodi del piano di controllo ha funzione di orchestrare i cluster. Gli utenti possono gestire e monitorare i workload con strumenti dotati di caratteristiche che dispongono di application programming interface (API) e interfacce utente grafiche (GUI).

Sebbene vi siano differenze nelle metodologie e nelle funzionalità tra piattaforme e strumenti, l'orchestrazione dei container è essenzialmente un processo in tre fasi (o ciclo, quando è parte di una pipeline Agile o DevOps):

  1. Provisioning
  2. Distribuzione
  3. Gestisci il ciclo di vita

1. Provisioning

La maggior parte degli strumenti di orchestrazione dei container supporta un modello di configurazione dichiarativo. Uno sviluppatore scrive un file di configurazione (in YAML o JSON, a seconda dello strumento) che definisce lo stato desiderato. Lo strumento di orchestrazione che esegue il file utilizza la propria intelligence per raggiungere quello stato. Solitamente, il file di configurazione:

  • Definisce quali immagini container compongono l'applicazione e dove si trovano (in quale container registry).
  • Fornisce ai container lo storage e altre risorse.
  • Definisce e protegge le connessioni di rete tra i container.
  • Specifica le versioni (per rollout a fasi o canary).

2. Implementazione

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

3. Gestione del ciclo di vita

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

Le attività di gestione del ciclo di vita includono:

  • Gestione della scalabilità (in aumento e in diminuzione), bilanciamento del carico e allocazione delle risorse tra i container.
  • Aiuta a garantire la disponibilità e le prestazioni spostando i container su un altro host in caso di interruzioni o di carenza di risorse del sistema.
  • Raccolta e memorizzazione dei dati di log e di altre telemetrie che monitorano lo stato di salute e le prestazioni dell'applicazione.

Guarda questo video per vedere più da vicino come funziona l'orchestrazione dei container:

Vantaggi dell'orchestrazione dei contenitori

I principali benefici dell'orchestrazione dei container includono:

  • Automation
  • Resilienza
  • Utilizzo e prestazioni delle risorse migliorati
  • Convenienza
  • Velocità e agilità
  • Maggiore protezione
  • Aumento della produttività

Automazione

Il beneficio principale dell'orchestrazione dei container è l'automazione, che riduce notevolmente le attività manuali e la complessità della gestione di un'elevata quantità di applicazioni in container.

Resilienza

Le soluzioni di orchestrazione dei container migliorano la resilienza riavviando o ridimensionando i container in caso di guasti. Questa funzionalità contribuisce a garantire la disponibilità e a incrementare il tempo di attività delle applicazioni.

Utilizzo e prestazioni delle risorse migliorati

La selezione automatizzata dell'host e l'allocazione delle risorse possono massimizzare l'uso efficiente delle risorse informatiche. Ad esempio, una soluzione di orchestrazione dei container può regolare la memoria e lo storage della CPU in base a un singolo container, il che impedisce l'overprovisioning e migliora le prestazioni complessive.

Convenienza

L'orchestrazione dei container elimina la necessità di interventi manuali, riducendo i costi operativi. Inoltre, i container richiedono meno risorse rispetto alle VM, il che può ridurre le esigenze e i costi generali a livello di infrastruttura IT.

Velocità e agilità

Gli strumenti di orchestrazione dei container aiutano a velocizzare lo sviluppo e l'implementazione delle app, fornendo un supporto critico per i processi cloud-native moderni.

Maggiore protezione

I container migliorano la sicurezza isolando le applicazioni dal sistema host e tra di loro, riducendo le superfici di attacco. Molte piattaforme contengono scansioni automatizzate per rilevare le vulnerabilità e proteggere i registri delle immagini, migliorando quindi la protezione complessiva.

Aumento della produttività

Automatizzando le operazioni, l'orchestrazione dei container supporta un approccio Agile o DevOps. Consente ai team di sviluppare e implementare in cicli rapidi e iterativi e di rilasciare più velocemente nuove caratteristiche e funzionalità.

AI Academy

Prepararsi all'AI con l'hybrid cloud

Condotto dai migliori leader di pensiero di IBM, il programma di studi è stato progettato per aiutare i dirigenti aziendali ad acquisire le conoscenze necessarie per dare priorità agli investimenti in AI che possono favorire la crescita.

Vantaggi dell'utilizzo di Kubernetes

Sviluppato da Google e rilasciato nel 2014, Kubernetes è diventato uno dei progetti a più rapida crescita nella storia del software open source. Kubernetes è attualmente gestito dalla Cloud Native Computing Foundation (CNCF). Da quando Kubernetes è entrato a far parte del CNCF nel 2016, il numero di collaboratori è cresciuto da 731 a 8.012.1

Insieme ad altri strumenti nell'ecosistema dei container, Kubernetes consente alle aziende di offrire soluzioni Platform as a Service (PaaS) altamente produttive. Questo modello di cloud computing risolve molte attività e problemi relativi all'infrastruttura e alle operazioni, in relazione allo sviluppo di applicazioni cloud-native, affinché i team di sviluppo possano concentrarsi esclusivamente sulla codifica e sull'innovazione.

I vantaggi di Kubernetes rispetto ad altre soluzioni di orchestrazione sono principalmente dovuti alle sue funzioni più complete e sofisticate in diversi settori:

  • Distribuzione dei container
  • Rollout
  • Rilevamento dei servizi
  • Provisioning dello storage
  • Bilanciamento del carico e scalabilità
  • Ingegneria della piattaforma per l'alta disponibilità
  • Supporto e portabilità tra più provider di servizi cloud
  • Ecosistema open source

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 agli sviluppatori di avviare, sospendere, riprendere o annullare i rollout.

Rilevamento dei servizi

Kubernetes può esporre automaticamente un container a internet o ad altri container, utilizzando un nome Domain Name System (DNS) o un indirizzo IP per rilevare i servizi.

Provisioning dello storage

Gli sviluppatori possono impostare Kubernetes in modo da fornire uno storage permanente, locale o su cloud, ai propri 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 automatico per distribuire il traffico nella rete e contribuire ad assicurare stabilità e prestazioni. Questa funzionalità risparmia anche agli sviluppatori il lavoro di impostare un programma di bilanciamento del carico.

Ingegneria della piattaforma per l'alta disponibilità

Quando un container non funziona, Kubernetes lo può riavviare o sostituire automaticamente. Può anche disattivare i container che non soddisfano i requisiti di verifica dello stato di salute di un'organizzazione.

Supporto e portabilità tra più provider di servizi cloud

Kubernetes si avvale di un ampio supporto offerto da tutti i principali provider di servizi cloud. Questa funzionalità è essenziale per le organizzazioni che implementano applicazioni su un hybrid cloud (la combinazione di cloud pubblicocloud privato e infrastruttura on-premise) o multicloud (l'uso di servizi cloud di più provider di cloud).

Ecosistema open source

Kubernetes dispone inoltre di una quantità di strumenti di usabilità e rete in continua espansione per migliorare le proprie funzionalità attraverso l'API Kubernetes. Tra questi figurano Istio, che consente ai container di essere eseguiti come workload senza server, e Knative, un service mesh open source.

Che cosa sono i Container as a Service (CaaS)?

Container as a Service (CaaS) è un servizio gestito che consente agli sviluppatori di gestire e distribuire applicazioni in container, fornendo alle aziende l'accesso a soluzioni cloud portatili e facilmente scalabili. Nel 2022, il mercato globale CaaS è stato valutato quasi 2 miliardi di dollari.2 I ricercatori prevedono che il mercato avrà un valore di oltre 7 miliardi di dollari entro il 2027, con un CAGR del 30,2% durante tale periodo. 3

I fornitori di CaaS offrono alle aziende molti benefici, tra cui container, livelli di orchestrazione, gestione dello storage e integrazione con altri servizi. Importanti provider pubblici offrono servizi gestiti di orchestrazione dei container, molti dei quali utilizzano Kubernetes come tecnologia di base.

I principali fornitori di soluzioni CaaS includono:

  • Amazon Elastic Container Service (Amazon ECS) di AWS
  • Google Kubernetes Engine (GKE) di Google Cloud
  • IBM Cloud Kubernetes Service
  • Microsoft Azure Container Instances (ACI)
  • Red Hat OpenShift

Orchestrazione dei container e AI

Le piattaforme di orchestrazione in container come Kubernetes possono automatizzare parti dell'intelligenza artificiale (AI) e del machine learning (ML), come i workflow di manutenzione predittiva (inclusi controlli in tempo reale dello stato di salute e della pianificazione delle risorse).

Il machine learning si basa su modelli linguistici di grandi dimensioni (LLM) per eseguire l'elaborazione del linguaggio naturale (NLP) di alto livello, come la classificazione del testo, l'analisi del sentimento e la traduzione automatica. L'orchestrazione dei container aiuta a velocizzare l'implementazione di modelli linguistici di grandi dimensioni (LLM) per automatizzare il processo NLP. Inoltre, le organizzazioni utilizzano l'orchestrazione dei container per eseguire e scalare i modelli di AI generativa, ottenendo un elevato livello di disponibilità e tolleranza ai guasti.

Soluzioni correlate
IBM Red Hat OpenShift

Red Hat OpenShift on IBM Cloud è una OpenShift Container Platform (OCP) completamente gestita.

Esplora Red Hat OpenShift
Soluzioni container

Le soluzioni basate su container eseguono e scalano workload containerizzati con sicurezza, innovazione open source e implementazione rapida.

Esplora i container
Servizi di consulenza cloud 

Sblocca nuove funzionalità e promuovi l'agilità aziendale con i servizi di consulenza cloud di IBM. Scopri come creare insieme soluzioni, accelerare la trasformazione digitale e ottimizzare le prestazioni attraverso strategie di hybrid cloud e partnership di esperti.

Servizi cloud
Fai il passo successivo

Modernizza la tua infrastruttura con le soluzioni container di IBM. Esegui, scala e gestisci i workload basati su container in tutti gli ambienti con flessibilità, sicurezza ed efficienza utilizzando la piattaforma container completa di IBM.

Esplora le soluzioni container Crea un account IBM Cloud gratuito
Note a piè di pagina

Kubernetes Project Journey Report, Cloud Native Computing Foundation, 8 giugno 2023.

Containers as a Service Market worth USD 5.6 billion by 2027 - Exclusive Study by MarketsandMarkets, Cision, 30 novembre 2022.

3 Container as a Service Global Market Report 2023, Yahoo Finance, 1 giugno 2023.