La necessità di gestire applicazioni sempre più complesse e con il minor spreco di risorse ha accelerato l’affermazione dei container nel mondo IT. Tra le grandi realtà che sfruttano al meglio questa tecnologia compare, come era preventivabile, Google, che negli anni ha sviluppato una forte containerizzazione nel suo approccio operativo. Questo ha portato enormi vantaggi, tanto da rendere il colosso di Mountain View un caso scuola da cui prendere spunto.
Google e i container
Negli ambienti di Google tutto è containerizzato, come ribadito dallo stesso team di Big G nell’apposita sezione dedicata. Gmail, Youtube, Ricerca e molto altro: non c’è un’applicazione di Google che non sia containerizzata. Questa scelta si è resa necessaria negli anni per meglio distribuire i carichi di lavoro. Ad oggi l’azienda afferma di eseguire “diversi miliardi di container” alla settimana, un’attività che le permette di operare con la massima efficienza su scala mondiale.
Cosa sono i container?
Nell’immaginario comune, e strettamente legato al mondo della logistica, i container sono dei blocchi autonomi, contenenti merci e prodotti, che possono essere facilmente spostati da un mezzo all’altro, a seconda delle esigenze e della destinazione. Il concetto informatico di web container ricalca quest’idea. Per web container infatti si intende un ambiente software che può essere isolato dal suo ambiente host ma può comunque eseguire un processo o un insieme di processi. Il tutto all’interno di uno spazio esterno rispetto al sistema operativo ospitante.
La containerizzazione è molto sfruttata nell’ambito delle applicazioni. Grazie a questa tecnologia oggi è possibile impacchettare delle applicazioni e inserirle in un contenitore (il container, appunto) che è dotato di tutte le componenti utili per garantire il funzionamento delle applicazioni stesse. Ciò significa che al suo interno si trovano le librerie, le dipendenze, il codice binario, il runtime, gli strumenti di sistema, i file eseguibili e i file di configurazione.
Perché scegliere i container?
La forza dei container è quella di essere virtualizzati a livello del sistema operativo e non a livello hardware, come succede per le virtual machine. Questa caratteristica consente di offrire molti vantaggi, tra cui maggiore leggerezza e la possibilità di essere avviati molto più rapidamente. Analizziamo i principali benefici nel dettaglio:
- Maggiore coerenza: grazie ai container è possibile creare ambienti isolati dalle altre applicazioni ma comunque prevedibili e, soprattutto, dotati di tutte le dipendenze utili per far funzionare l’applicazione. Questo si traduce in una maggiore coerenza, in qualsiasi ambiente l’applicazione venga eseguita.
- Portabilità: i container possono realmente funzionare in modo ottimale in qualsiasi ambiente: sui sistemi operativi principali (Windows, Mac, Linux), su macchine virtuali e macchine fisiche, on premise o nel cloud pubblico. Questa caratteristica favorisce sensibilmente lo sviluppo e la distribuzione delle applicazioni, come nel caso di Google.
- Isolamento: virtualizzando CPU, memoria, archiviazione e rete a livello di sistema operativo è possibile creare ambienti di prova (sandbox) completamente isolati dalle altre applicazioni.
- Leggerezza: le dimensioni dei container sono molto più leggere rispetto alle virtual machine. Se quest’ultime occupano uno spazio di molti gigabyte, i container invece possono pesare anche solo pochi kilobyte. Il che li rende anche molto più veloci da avviare.
- Granularità: quando viene containerizzata un’applicazione, a catena è possibile containerizzare anche ogni sua componente. Una sorta di suddivisione in micro-risorse che ne aumenta la controllabilità e l’efficienza.
Kubernetes: la soluzione per container open source di Google
Come già accennato, Google ha fatto della tecnologia dei container un vero e proprio marchio di fabbrica. Per questo motivo ha deciso di rendere disponibile a tutti la piattaforma Kubernetes, una soluzione open source per governare in modo automatico i container. Kubernetes altro non è che il naturale successore di Borg, la piattaforma interna di Google precedentemente utilizzata per orchestrare l’intera gestione dei container (che, ricordiamo, è la tecnologia unica su cui sono fondati tutti i servizi cloud di Google). Grazie all’esperienza maturata con Borg oggi Google può offrire a tutti gli utenti una soluzione open source di alto profilo, sicura e adatta a diverse tipologie di ambiente.
Le funzioni di Kubernetes sono veramente infinite e permettono agli sviluppatori di semplificare l’intera gestione delle applicazioni e del deployment. Il punto di forza di questa piattaforma è quella di garantire la gestione di deployement di qualsiasi tipologia, siano essi on-premise o appoggiati sul cloud pubblico e/o ibrido. Grazie alla sua implementazione le aziende possono raggiungere gli utenti desiderati ovunque e, allo stesso tempo, garantire una maggiore disponibilità delle applicazioni. I fattori chiave che rendono Kubernetes una soluzione di alto profilo sono: l’esecuzione automatica di implementazioni e rollback, il monitoraggio costante dell’integrità dei servizi e la scalabilità dei servizi in base all’utilizzo.
Il consiglio di Google per le aziende che dovessero decidere di seguire questa strada è quello di affidarsi al supporto di una piattaforma cloud di Google, nel dettaglio Google Kubernetes Engine. Tale soluzione è gestita dai migliori conoscitori del mondo container di Google, è sempre aggiornata e integrabile con tutti i servizi GCP. Caratteristiche che permettono agli sviluppatori di configurare con estrema velocità un ambiente già pronto per la produzione.
Comments are closed.