[ad_1]
La gestione dei container ha fatto molta strada. Per decenni, la gestione degli ambienti containerizzati è stata una faccenda relativamente semplice. L’idea moderna di contenitore per computer è apparsa originariamente negli anni ’70, quando il concetto fu utilizzato per la prima volta per aiutare a definire il codice dell’applicazione sui sistemi Unix.
La moderna tecnologia di containerizzazione ha fatto progressi costanti rispetto a quei primi inizi e, quando le aziende gestiscono i container adesso, ottengono molta più utilità per i loro investimenti. Dalle piccole startup alle grandi aziende affermate, i framework dei contenitori si sono dimostrati estremamente capaci di generare flussi di lavoro stabili con tempi di esecuzione ottimizzati e distribuzione continua.
Cos’è un contenitore?
I contenitori sono unità eseguibili di software in cui il codice dell’applicazione è confezionato con le relative librerie e dipendenze. Sono confezionati in modi standardizzati in modo che il codice possa essere eseguito ovunque, incluso desktop, IT tradizionale o cloud.
Ciò avviene attraverso una forma di virtualizzazione del sistema operativo (OS) in cui le funzionalità del kernel del sistema operativo (ad esempio, spazi dei nomi e cgroup Linux, silos Windows e oggetti lavoro) possono essere sfruttate per isolare processi e controllare la quantità di CPU, memoria e disco a cui tali processi possono accedere.
Contenitori e Docker
La tecnologia dei container è cambiata radicalmente nel 2013 con l’introduzione di Docker e ha continuato senza sosta in questo decennio, guadagnando costantemente popolarità e accettazione da parte degli utenti. Chiaramente, esisteva una domanda di mercato forte ma insoddisfatta per software di containerizzazione di questo tipo, come evidenziato dal rapido successo di Docker e dall’ormai schiacciante superiorità sul mercato.
Un sondaggio IBM del 2021 ha rivelato che il 61% degli intervistati ha indicato di aver utilizzato i container in almeno il 50% delle nuove applicazioni realizzate negli ultimi 2 anni. Un gruppo ancora più ampio di intervistati (64%) ha riferito di aspettarsi di utilizzare contenitori per almeno il 50% delle app che realizzeranno nei prossimi 2 anni.
I contenitori riguardano la distribuzione e la protezione dei dati e l’esecuzione delle app. Pertanto, è perfettamente logico che i settori IT siano i principali utenti del software di containerizzazione, con i seguenti settori che si classificano come i primi tre beneficiari (link esterno a ibm.com):
- Apprendimento automatico
- Sviluppo software
- Intelligenza artificiale (AI)
Docker e Kubernetes
Il mercato delle applicazioni containerizzate è attualmente dominato da due entità:
Docker
La piattaforma di containerizzazione più comunemente utilizzata è Docker. I contenitori Docker sono stati originariamente costruiti attorno al motore Docker nel 2013 e funzionano secondo un’interfaccia di programmazione dell’applicazione (API). Docker è in realtà una piattaforma come servizio (PaaS) e il suo vantaggio principale è la sua flessibilità. Docker può prendere qualsiasi applicazione e le relative dipendenze e trasformarla in un contenitore virtuale, che può quindi essere eseguito su qualsiasi computer Windows, macOS o Linux. Il sistema utilizza immagini Docker, che sono modelli di sola lettura utilizzati per creare contenitori, e Dockerfile, che sono file di testo che accompagnano e spiegano le immagini Docker. Le immagini Docker e altre immagini contenitore richiedono uno spazio in cui essere eseguite. Questo viene gestito dal runtime del contenitore, una soluzione software che interagisce con il sistema operativo per creare lo spazio necessario per eseguire le immagini del contenitore.
Kubernetes
La piattaforma di orchestrazione dei container più popolare è Kubernetes, creata da Google nel 2014 ed è ancora apprezzata per il modo efficace con cui automatizza la distribuzione del software, consente la scalabilità e supporta la gestione dei container. Inoltre, Kubernetes è un sistema open source e incoraggia l’avida partecipazione dei contributori (che ora supervisionano il progetto), con ciascun fornitore di software che dà la propria interpretazione a Kubernetes. Ad esempio, con alcuni servizi, gli utenti possono non solo creare cluster Kubernetes ma anche distribuire app Web scalabili e analizzare i log.
Attualmente Docker e Kubernetes sono di gran lunga gli strumenti più utilizzati per gestire i contenitori informatici. Secondo le recenti proiezioni sulla containerizzazione per il 2024 (link esterno a ibm.com), Dockers ora controlla un massiccio 82,8% di questo mercato, mentre Kubernetes registra una quota di mercato dell’11,52%.
Per saperne di più sulla relazione tra Kubernetes e Docker, consulta “Kubernetes contro Docker: perché non entrambi?“
Casi d’uso dei contenitori
Non mancano i casi d’uso riconoscibili che coinvolgono i contenitori perché stanno diventando sempre più importanti, soprattutto negli ambienti o negli ecosistemi di cloud computing. Molte organizzazioni stanno addirittura prendendo in considerazione i container come sostituto delle macchine virtuali (VM) come scelta di una piattaforma di cloud computing generica per le loro applicazioni e carichi di lavoro. Ma all’interno di questo ambito molto ampio, ci sono casi d’uso chiave in cui i contenitori cloud-native sono particolarmente rilevanti:
- Microservizi: I container sono piccoli, leggeri e portatili, il che li rende la scelta ideale per le architetture di microservizi, dove le applicazioni containerizzate sono costituite da molti servizi più piccoli, liberamente accoppiati e distribuibili in modo indipendente. Un hypervisor viene utilizzato per supervisionare le operazioni dei microservizi quando su un computer viene utilizzata più di una macchina virtuale.
- DevOps: La combinazione di microservizi come architettura e contenitori come piattaforma costituisce un forte abbinamento e una base comune per molti team che adottano DevOps e ambienti di sviluppo come modalità di gestione dello sviluppo software.
- Multicloud ibrido: Poiché è possibile eseguire i container in modo coerente ovunque, su laptop, on-premise e in ambienti cloud, rappresentano un’infrastruttura e un’architettura sottostante ideali per i provider cloud, nonché per qualsiasi scenario di cloud ibrido e di cloud ibrido e multicloud in cui si trovano le organizzazioni. operando su un mix di più cloud pubblici e privati in combinazione con un data center on-premise.
- Senza server: Serverless libera gli sviluppatori nativi del cloud che stanno lavorando alla creazione di app dal dover pensare alle richieste e ai vincoli del server, che vengono mantenuti in background. Uno dei principali vantaggi del metodo serverless è che promuove la necessaria concentrazione mentale di cui uno sviluppatore ha bisogno durante la creazione di app, senza sovraccaricarlo con una miriade di dettagli.
Casi d’uso e soluzioni correlati
I contenitori, la containerizzazione o l’orchestrazione dei contenitori influiscono anche sulle seguenti soluzioni correlate:
- Modernizzazione e migrazione delle applicazioni: Uno degli approcci più comuni alla modernizzazione delle applicazioni consiste innanzitutto nell’ottimizzare e containerizzare le applicazioni in preparazione all’eventuale migrazione a un’architettura cloud. Questo processo dovrebbe avvenire prima della creazione del codice dell’applicazione, ovvero il codice sorgente che contiene tutte le istruzioni per questa applicazione.
- Contenitori separati: I contenitori separati sono diventati di uso comune perché assistono così bene gli utenti dei microservizi. Come indica il nome, i contenitori separati vengono utilizzati principalmente per mantenere i microservizi meglio organizzati consentendo agli utenti di mantenere diversi aspetti di un contenitore “affollato” all’interno di più contenitori partizionati. I contenitori separati sono anche visti come un modo per aumentare l’efficienza delle operazioni rendendo gli aggiornamenti necessari rapidi e facili.
- Multi-locazione: La multi-tenancy è un sistema di architettura propria, strutturato attorno a un sistema di utenti (chiamato inquilini) che utilizzano tutti un’unica applicazione all’interno di un ambiente condiviso. Sebbene alcune opzioni di personalizzazione possano essere disponibili in un sistema multi-tenancy, tali opzioni sono volutamente limitate per mantenere il sistema semplice e facile da utilizzare. I contenitori funzionano bene nella gestione delle distribuzioni multi-tenancy perché è possibile eseguire più app su un singolo host.
Tipi di contenitori
Esistono due tipi base di contenitori e ciascuno serve un diverso gruppo di tecnologie di contenitori:
Contenitori di sistema
Noti anche come “contenitori del sistema operativo”, i contenitori di sistema consentono di eseguire molti processi diversi contemporaneamente. I contenitori di sistema sono ideali per la gestione delle app tradizionali e delle applicazioni monolitiche progettate per eseguire un’unica funzione, espressa tramite un file eseguibile logico. Questi contenitori sono inoltre attrezzati per ospitare l’architettura, le configurazioni e gli strumenti necessari per l’esecuzione delle macchine virtuali. Come misura predefinita, i contenitori di sistema vietano i filesystem a più livelli.
Le tecnologie dei container servite: Jail BSD, Linux VServer, LXC, OpenVZ, zone Solaris
Contenitori di applicazioni
I contenitori di applicazioni non sono così versatili come i contenitori di sistema, che possono eseguire più processi contemporaneamente. I contenitori delle applicazioni portano quel nome anche perché sono destinati a servire un’applicazione eseguendo una ed una sola azione eseguibile. I contenitori di applicazioni esistono per creare pacchetti e gestire un singolo servizio e non supportano file system a più livelli.
Le tecnologie dei container servite: Docker, Razzo
IBM e i contenitori
La containerizzazione richiede sforzi e attrezzature aggiuntivi, ma paga dividendi. Gli strumenti di orchestrazione dei contenitori possono semplificare l’esperienza dei contenitori per i tuoi ambienti di produzione, indipendentemente dalla posizione dei tuoi prodotti nei rispettivi cicli di vita.
Con i servizi container di IBM, basati su tecnologie open source come Kubernetes, puoi facilitare e accelerare il tuo percorso verso il cloud in modo rapido, sicuro e produttivo.
Esplora Container su IBM Cloud Ulteriori informazioni su Red Hat OpenShift on IBM Cloud Esplora IBM Cloud Kubernetes Service
questo articolo è stato utile?
SÌNO
[ad_2]
Source link