L'orchestrazione del contenitore automatizza provisioning, distribuzione, rete, scala, disponibilità e gestione del ciclo di vita dei contenitori. Oggi Kubernetes è la più popolare piattaforma di orchestrazione del contenitore e la maggior parte dei fornitori di cloud pubblico - tra cui Amazon Web Services (AWS), la piattaforma Google Cloud, IBM Cloud, Microsoft Azure - offre i servizi gestiti di Kubernetes. Altri strumenti di orchestrazione del contenitore includono Docker Swarm e Apache Mesos.
I contenitori sono componenti applicativi leggeri ed eseguibili che combinano il codice sorgente dell'applicazione con tutte le librerie del sistema operativo (OS) e le dipendenze necessarie per eseguire il codice in qualsiasi ambiente.
La capacità di creare contenitori esiste da decenni, ma è diventata ampiamente disponibile nel 2008 quando Linux ha incluso nel proprio kernel la funzione contenitore, e ampiamente utilizzata con l'arrivo della piattaforma di containerizzazione a codice sorgente aperto Docker nel 2013. (Docker è così popolare che "contenitori Docker " e "contenitori" sono termini spesso usati come sinonimi.)
Dato che sono più piccoli, più efficienti in termini di risorse e più portatili delle macchine virtuali (VM), i contenitori - e più precisamente i microservizi containerizzati o le funzioni serverless - sono diventati di fatto le unità di calcolo delle applicazioni cloud-native moderne. (Per ulteriori informazioni sui benefits dei contenitori, vedi la visualizzazione interattiva dei dati qui sotto)
In piccole quantità, i contenitori sono abbastanza facili da distribuire e gestire manualmente. Ma nella maggior parte delle organizzazioni il numero delle applicazioni containerizzate sta crescendo rapidamente e gestirle in scala - soprattutto nell'ambito di un' integrazione continua / fornitura continua (CI/CD) o di una pipeline DevOps - è impossibile senza automazione.
Ecco l'orchestrazione del contenitore, che automatizza le attività delle operazioni distribuendo ed eseguendo applicazioni e servizi containerizzati. Secondo la più recente ricerca IBM (PDF, 1,4 MB), il 70% degli sviluppatori che utilizzano contenitori dichiara di usare una soluzione di orchestrazione del contenitore e il 70% di questi dichiara di usare un servizio di orchestrazione del contenitore completamente gestito (gestito in cloud) nella propria organizzazione.
Sebbene ci siano differenze nelle metodologie e nelle capacità fra strumenti, l'orchestrazione del contenitore è essenzialmente un processo in tre fasi (o ciclo, se nell'ambito di una pipeline agile o DevOps ).
La maggior parte degli strumenti di orchestrazione del contenitore supporta un modello di configurazione dichiarativo : uno sviluppatore scrive un file di configurazione (in YAML o JSON a seconda del tool) che definisce uno stato di configurazione desiderato e lo strumento di orchestrazione esegue il file utilizzando la propria intelligenza per ottenere quello stato. Il file di configurazione tipicamente
Lo strumento di orchestrazione programma la distribuzione dei contenitori (e delle repliche dei contenitori, per resilienza) su un host, scegliendo il migliore host in base alla capacità della CPU disponibile, della memoria o di altri requisiti o vincoli specificati nel file di configurazione.
Una volta che i contenitori sono distribuiti, lo strumento di orchestrazione gestisce il ciclo di vita dell' applicazione containerizzata in base al file delle definizioni del contenitore (molto spesso un Dockerfile). Questo include
È probabilmente chiaro che il principale vantaggio dell'orchestrazione del contenitore è l' automazione - e non solo perché riduce notevolmente lo sforzo e la complessità di gestire un grande parco di applicazioni containerizzate . Automatizzando le operazioni, l'orchestrazione supporta un approccio agile o DevOps che consente ai team di sviluppare e distribuire in cicli rapidi e iterativi e di rilasciare più velocemente nuove funzionalità e capacità.
In aggiunta, l'intelligenza di uno strumento di orchestrazione può migliorare o estendere molti dei benefits intrinseci della containerizzazione. Per 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 elaborazione; il monitoraggio del corretto funzionamento e la riassegnazione dei contenitori aumentano al massimo la disponibilità.
Come abbiamo osservato, Kubernetes è la più popolare piattaforma di orchestrazione del contenitore. Insieme ad altri strumenti nell'ecosistema dei contenitori, Kubernetes consente a un'azienda di consegnare una platform-as-a-service (PaaS) altamente produttiva che affronta molti dei compiti e dei problemi relativi alle infrastrutture e alle operazioni nello sviluppo di applicazioni cloud-native , in modo che i team di sviluppo possano concentrarsi esclusivamente su codifica e 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 i quali:
I contenitori sono ideali per modernizzare le proprie applicazioni e ottimizzare l'infrastruttura IT. I servizi di contenitore da IBM Cloud, creati su tecnologie a codice sorgente aperto come Kubernetes, possono facilitare e accelerare il tuo percorso verso lo sviluppo di applicazioni cloud-native e verso un approccio a un cloud ibrido aperto che integra le migliori caratteristiche e funzioni di cloud privato, cloud pubblico e infrastruttura IT installata in loco.
Entra nella fase successiva:
Per iniziare subito, registrarsi per un account IBM Cloud.
Crea, modernizza e gestisci le applicazioni in modo sicuro su qualsiasi cloud con fiducia
Una strategia di cloud ibrido open source ti consente di creare e gestire i carichi di lavoro da qualsiasi ubicazione, senza vincoli imposti dal fornitore
Sfrutta le soluzioni infrastrutturali on-premises aperte, flessibili e sicure per sbrigliare la tua strategia di cloud ibrido