La gestione dei container è il processo organizzato di creazione, distribuzione, ridimensionamento e gestione dei container utilizzando un software di gestione dei container, come Kubernetes o Docker Swarm.
I contenitori consentono agli sviluppatori di creare applicazioni indipendenti confezionate con un sistema operativo che può essere eseguito in qualsiasi ambiente. Riducono i tempi di test e consentono alle operazioni IT di distribuire rapidamente le applicazioni in un ambiente di produzione operativo. La gestione dei contenitori fornisce agli utenti l'interfaccia, i controlli e il meccanismo per creare, aggiungere, distribuire, sostituire, bilanciare il carico e aumentare o diminuire in modo efficiente i contenitori delle applicazioni.
Un contenitore è un piccolo ambiente di runtime isolato che contiene tutto ciò di cui un'applicazione ha bisogno per funzionare, come file, librerie, chiamate e connessioni al kernel del sistema operativo. L'ambiente di sviluppo di un'applicazione può essere molto diverso dall'ambiente di produzione in cui dovrebbe essere eseguita e queste differenze causano errori e comportamenti imprevedibili nelle applicazioni. I contenitori racchiudono il codice e tutte le dipendenze in modo che vengano eseguiti in modo prevedibile e affidabile in qualsiasi ambiente di computer. Un contenitore è isolato anche da un altro contenitore a meno che non disponga di un codice specifico per la connessione.
La caratteristica modulare di un contenitore consente agli sviluppatori di scrivere rapidamente nuovo codice o correggere il codice esistente senza dover ricostruire l'intera applicazione. Le operazioni IT possono distribuire l'aggiornamento con tempi di inattività minimi. Le dimensioni ridotte, di solito nell'ordine delle decine di megabyte, possono talvolta richiedere un gran numero di contenitori per fornire la funzionalità completa di un'applicazione complessa e delle sue numerose funzionalità. Ad esempio, Google gestisce miliardi di container che alimentano i suoi servizi web. Per supervisionare e controllare tutti questi contenitori distribuiti in sistemi distribuiti complessi in modo organizzato ed efficiente è necessaria una gestione dei contenitori.
Senza un sistema di gestione dei contenitori, gli utenti devono creare manualmente e individualmente contenitori per le loro applicazioni, distribuirne di nuovi, sostituire le versioni precedenti, monitorare il loro stato e aumentare o diminuire le applicazioni containerizzate a seconda delle risorse di elaborazione disponibili. La gestione dei contenitori automatizza molti di questi processi. Semplifica la riproduzione, la distribuzione e la pianificazione di un vasto numero di container. Una gestione dei contenitori più specializzata può fornire l'orchestrazione dei contenitori. Fornisce agli utenti controlli di automazione aggiuntivi per la configurazione dei componenti necessari e la distribuzione di cluster di container quando sono necessari in una varietà di ambienti.
I sistemi di gestione dei container offrono agli utenti un mezzo per monitorare lo stato di salute dei container in produzione, sostituire quelli che non funzionano correttamente e riavviare quelli che si sono bloccati. Forniscono inoltre un meccanismo per gestire la rete e i componenti di sicurezza dei contenitori. I sistemi sono diventati uno strumento essenziale, soprattutto per le organizzazioni che utilizzano DevOps. Accelerano il ciclo di vita di un'applicazione, dallo sviluppo alla produzione, riducendo i costi operativi. I sistemi di gestione dei container sono disponibili come software commerciale open source e proprietario.
Alcuni sistemi di gestione dei container sono:
- Kubernetes (i principali servizi cloud come Amazon, Azure e Google offrono versioni di Kubernetes per i loro ambienti)
- Docker Swarm
- IBM RedHat OpenShift
- proprietario di ranch
- Cloud Foundry
- Contenitori integrati VMware vSphere