Hai costruito un cloud e ora vogliono anche i container?

Hai creato un cloud privato a spese elevate e, nonostante il costo iniziale, vengono realizzati risparmi reali. E anche se pensavi che il cloud fosse proprio quello che volevano i tuoi team di sviluppo, ora chiedono a gran voce i container. Perché?

In comune con la maggior parte delle aziende, probabilmente hai giustificato l'investimento nel tuo cloud dal punto di vista dell'infrastruttura ponendo l'accento sul crescente utilizzo dell'hardware fisico. L'utilizzo medio prima della virtualizzazione era spesso inferiore al 10% e la virtualizzazione come attivatore del consolidamento del carico di lavoro è stata uno strumento fondamentale per garantire che i soldi spesi per l'hardware non vengano sprecati.

Ma - ed è una grande ma - tipica impresa privata cloud offrono poco oltre il risparmio sui costi e la consegna accelerata (virtuale) della macchina ai team di sviluppo che li consumano. Questi sono certamente preziosi, ma sono piuttosto carenti della piena promessa del cloud.

Ciò che i team di sviluppo stanno davvero cercando è una piattaforma con API che possano utilizzare per collegare direttamente i loro strumenti di ciclo di vita del software automatizzato. Per citare un esempio di sviluppo: "Semplicemente non voglio parlare con l'infrastruttura".

Tuttavia, ciò che l'infrastruttura in genere forniva loro era invece limitato quanto il vecchio mondo fisico: con processi onerosi, automazione del ciclo di vita limitata, gli stessi vecchi problemi con le patch e assolutamente nessuna integrazione degli strumenti.

In breve, i server erano ora virtuali ma esistevano ancora la maggior parte dei vecchi punti deboli per gli sviluppatori - e le funzioni dell'infrastruttura continuavano a essere caratterizzate da un blocco piuttosto che da un fattore di cambiamento nel mondo dello sviluppo.

Inserisci i contenitori.

Cosa sono e perché gli sviluppatori li usano?

Per citare Wikipedia, un contenitore è "qualsiasi dispositivo ... che può essere utilizzato per contenere, archiviare e trasportare oggetti o materiali."Anche se questo vale anche per i cestini di vimini come i contenitori di software, la cosa chiave per l'IT è come i contenitori differiscono dai server virtuali.

I container consentono ai team di sviluppo di impacchettare il loro software, insieme alle dipendenze software risolte, in un singolo artefatto. I contenitori richiedono un sistema operativo host per essere eseguiti, ma è possibile eseguire più contenitori su una singola istanza del sistema operativo pur mantenendo l'isolamento logico l'uno dall'altro (non è più necessaria una licenza del sistema operativo per istanza del componente dell'applicazione per ottenere tale isolamento).

Poiché i container non necessitano ciascuno del proprio sistema operativo, possono essere avviati con la stessa rapidità con cui è possibile avviare il software applicativo (senza attendere l'avvio di un'istanza del sistema operativo) e, poiché includono dipendenze software risolte, la creazione di istanze su un server è semplicemente una questione di copiare il contenitore e avviarlo. La ripetibilità e l'astrazione fornite dai container consente agli sviluppatori di concentrarsi sulla fornitura di software facilmente implementabile e funzionante mentre qualcun altro fornisce una piattaforma gestita per l'esecuzione di tali container.

Il concetto di container non è nuovo. Google utilizza la propria varietà da anni (dicono che tutto in Google funziona in contenitori), Sun ha introdotto una forma di contenitori in Solaris nel 2004/2005 e i contenitori sono stati persino disponibili su Windows attraverso prodotti come Parallels Virtuozzo.

La novità, tuttavia, è il passaggio al pensare ai container come a una tecnologia di sviluppo (piuttosto che all'infrastruttura) e, criticamente, alla nascita di software come Docker, che fornisce un unico formato contenitore che può operare su più tipi di hardware e sistema operativo.

L'entusiasmo nella comunità degli sviluppatori è elevato e l'evoluzione di Docker e gli sforzi di standardizzazione come Open Container Initiative continuano a ritmo, ma gli strumenti di gestione per le distribuzioni di container su larga scala (come Kubernetes) stanno appena iniziando a emergere per uso generale e sicuramente hanno non ha ancora raggiunto il grado di maturità di quello disponibile per la virtualizzazione del server.

Questo significa che i contenitori dovrebbero essere evitati per ora?

No. I contenitori offrono vantaggi sia per l'infrastruttura (ulteriore consolidamento del carico di lavoro, ma potenzialmente con una riduzione del conteggio delle licenze del sistema operativo) sia per lo sviluppo (singolo artefatto distribuibile che funziona ovunque venga posizionato e si avvia all'istante - particolarmente importante per chi sviluppa applicazioni dinamiche con scalabilità orizzontale) . I contenitori sono complementari alla virtualizzazione del server e non lo sostituiranno (e non dovrebbero).

Ciò che le aziende dovrebbero fare, tuttavia, è costruire partenariati tra le infrastrutture e i team di sviluppo per pilotare l'uso di container su solide piattaforme di virtualizzazione. Inizia in piccolo, evolvi insieme la piattaforma di hosting, gli strumenti di gestione e, in modo critico, l'intero processo. Aspettare significa solo che concorrenti più proattivi otterranno innanzitutto vantaggi in termini di produttività, time to market e riduzione dei costi.

Come consulente principale per Chiarezza virtuale, Chris Buckley aiuta organizzazioni grandi e complesse modernizzano il loro approccio all'infrastruttura IT. Lavorando con le organizzazioni IT per identificare i giusti problemi da risolvere dal punto di vista aziendale, Chris guida i clienti attraverso lo sviluppo e l'implementazione della strategia di infrastruttura.

Unisciti alle community di Network World su Facebook e LinkedIn per commentare argomenti che sono importanti.