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.
Connetti e integra i tuoi sistemi al fine di preparare l'infrastruttura per l'AI.
Registrati per ricevere la guida su DaaS
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.
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:
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:
È 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à.
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:
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à.
Con IBM Cloud Satellite puoi avviare servizi cloud coerenti ovunque, in ambienti on-premise, sull'edge e in ambienti di cloud pubblico.
Esegui immagini di container, processi batch o codice sorgente come workload serverless, senza necessità di dimensionamento, implementazione, rete o scalabilità.
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.
Una nuova ricerca IBM documenta il crescente slancio dell’adozione di container e Kubernetes.
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.
Docker è una piattaforma open source per la creazione, l'implementazione e e la gestione di applicazioni containerizzate.