I container sono pacchetti di software che contengono tutti gli elementi necessari per l'esecuzione in qualsiasi ambiente. In questo modo, i container virtualizzano il sistema operativo e sono eseguibili ovunque, da un data center privato al cloud pubblico o anche sul laptop di uno sviluppatore. Da Gmail a YouTube passando per Ricerca, tutti i prodotti e servizi Google vengono eseguiti in container. La containerizzazione consente ai nostri team di sviluppo di spostarsi velocemente, eseguire il deployment del software in modo efficiente e operare su una scala senza precedenti. Negli ultimi dieci anni abbiamo imparato molto sull'esecuzione dei carichi di lavoro containerizzati e abbiamo condiviso queste conoscenze con la community: dai primi contributi di cgroups al kernel di Linux alla pubblicazione open source delle progettazioni dei nostri strumenti interni come il progetto Kubernetes.
I container sono pacchetti leggeri del codice dell'applicazione e di dipendenze come versioni specifiche di runtime e librerie dei linguaggi di programmazione necessari per eseguire i servizi software.
I container facilitano la condivisione di CPU, memoria, archiviazione e risorse di rete a livello di sistemi operativi e offrono un meccanismo di pacchettizzazione logico in cui le applicazioni possono essere astratte dall'ambiente in cui vengono effettivamente eseguite.
Separazione delle responsabilità
La containerizzazione consente una chiara separazione delle responsabilità, in quanto gli sviluppatori si concentrano sulla logica e sulle dipendenze dell'applicazione, mentre i team delle operazioni IT possono concentrarsi sul deployment e sulla gestione anziché sui dettagli relativi alle applicazioni, come le versioni e le configurazioni specifiche del software.
Portabilità del carico di lavoro
I container sono in grado di funzionare praticamente ovunque, facilitando notevolmente lo sviluppo e il deployment: su sistemi operativi Linux, Windows e Mac, su macchine virtuali o server fisici, sulla macchina di uno sviluppatore o in data center on-premise e, ovviamente, nel cloud pubblico.
Isolamento delle applicazioni
I container virtualizzano le risorse di CPU, memoria, archiviazione e rete a livello di sistema operativo, offrendo agli sviluppatori una visualizzazione del sistema operativo logicamente isolata da altre applicazioni.
Dovresti già avere una certa familiarità con le VM: un sistema operativo guest come Linux o Windows in esecuzione su un sistema operativo host e con accesso all'hardware sottostante. I container vengono spesso paragonati alle macchine virtuali (VM). Come le macchine virtuali, i container consentono di pacchettizzare le applicazioni insieme a librerie e altre dipendenze, garantendo ambienti isolati per l'esecuzione dei servizi software. Tuttavia, come vedrai, le somiglianze finiscono qui, in quanto i container sono unità molto più leggere e offrono una miriade di vantaggi agli sviluppatori e ai team delle operazioni IT.
I container mettono a disposizione un meccanismo di pacchettizzazione logico grazie al quale le applicazioni possono essere astratte dall'ambiente in cui sono effettivamente eseguite. Questo disaccoppiamento consente di eseguire facilmente e in modo coerente il deployment delle applicazioni basate su container, indipendentemente dal fatto che l'ambiente di destinazione sia un data center privato, il cloud pubblico o il laptop di uno sviluppatore.
Sviluppo agile
I container consentono agli sviluppatori di lavorare molto più rapidamente evitando le preoccupazioni relative a dipendenze e ad ambienti.
Operazioni efficienti
I container sono leggeri e consentono di utilizzare solo le risorse di calcolo necessarie, così puoi eseguire le applicazioni in modo più efficiente.
Esecuzione ovunque ti trovi
I container possono essere eseguiti virtualmente ovunque. Ovunque tu voglia eseguire software, puoi utilizzare i container.
Inizia a creare su Google Cloud con 300 $ di crediti gratuiti e oltre 20 prodotti Always Free.