Il networking dei container è un meccanismo emergente di sandboxing per le applicazioni utilizzato nei desktop domestici e nelle soluzioni di networking aziendale di livello web che sono concettualmente simili a una macchina virtuale. Un ambiente Linux completo è isolato dall'host e da tutti gli altri container, con utenti, file system, processi e stack di rete specifici. A tutte le applicazioni all'interno del container è consentito accedere o modificare i file o le risorse disponibili solo all'interno del container.
È possibile eseguire più container simultaneamente, ognuno con le proprie installazioni e dipendenze. Ciò è particolarmente utile nei casi in cui le versioni più recenti di un'applicazione possono richiedere l'upgrade di una dipendenza che può causare conflitti con altre dipendenze dell'applicazione in esecuzione sul server. A differenza delle macchine virtuali, i container condividono le risorse dell'host anziché simulare completamente tutto l'hardware sul computer. Di conseguenza, i container sono più piccoli e più rapidi delle macchine virtuali e riducono le spese generali. In particolare, nell'ambito delle applicazioni su scala web, i container sono stati progettati per sostituire le VM come piattaforma di deployment per le architetture di microservizi.
I container si caratterizzano inoltre per la portabilità, come Docker ad esempio, un motore di container che consente agli sviluppatori di pacchettizzare un container e tutte le sue dipendenze. Il pacchetto di container può quindi essere reso disponibile per il download. Una volta scaricato, il container può essere eseguito immediatamente su un host.
Una rete di container è una forma di virtualizzazione concettualmente simile alle macchine virtuali (VM), ma con differenze specifiche. Innanzitutto, il metodo dei container è una forma di virtualizzazione del sistema operativo, mentre le VM sono una forma di virtualizzazione dell'hardware.
Ogni macchina virtuale in esecuzione su un hypervisor ha il proprio sistema operativo, le proprie applicazioni e le proprie librerie ed è in grado di incapsulare dati persistenti, installare un nuovo sistema operativo, utilizzare un file system diverso da quello dell'host o una versione del kernel diversa.
Per contro, i container sono "istanze in esecuzione" di un'immagine, una virtualizzazione effimera del sistema operativo attivata per eseguire alcune attività e che viene poi eliminata e dimenticata. A causa della natura effimera dei container, gli utenti del sistema eseguono molte più istanze di container rispetto a quelle di macchine virtuali, che richiedono uno spazio di indirizzamento più ampio.
Per creare l'isolamento, un container si basa su due funzionalità del kernel Linux: spazio dei nomi e cgroup. Per dare al container la propria vista del sistema isolandolo dalle altre risorse, viene creato uno spazio dei nomi per ciascuna delle risorse che non è condivisa dal sistema rimanente. Vengono quindi utilizzati i gruppi di controllo (cgroup) per monitorare e limitare risorse di sistema quali CPU, memoria, I/O del disco, rete, ecc.
La rapida adozione dei container sta sostituendo le VM come piattaforma per i microservizi.
I container offrono diversi vantaggi chiave:
I container vengono distribuiti come parte dell'architettura dei microservizi negli ambienti aziendali per aiutare a incapsulare singole attività comuni per applicazioni web di grandi dimensioni. Ogni attività può avere il proprio container: i container rivolti all'esterno (come API e GUI) sono aperti alla rete Internet pubblica, mentre gli altri risiedono sulla rete privata.
Il modello dei microservizi offre diversi vantaggi:
Oggi si ricorre a cinque tipi di networking dei container, le cui caratteristiche sono incentrate su modelli IP per container e IP per pod e sul requisito della Network Address Translation (NAT) rispetto alla mancata necessità di conversione.
Immagini e file binari firmati con supporto aziendale completo per Project Antrea
Connetti e proteggi le applicazioni e i microservizi containerizzati.
Porta l'esperienza del public cloud nel data center con Virtual Cloud Network