Docker: così cambia la virtualizzazione dei server

Docker, inizialmente sviluppato per la piattaforma PaaS dotCloud, diverrà presto disponibile su Red Hat Fedora e sulla soluzione enterprise OpenShift.

Docker è il nome di un grande esempio di progetto e di startup che ha stupito il mondo dell’open source e ha attirato l’interesse finanziario e non solo di grandi gruppi del settore come Red Hat.

Per chi non lo conoscesse, Docker è un progetto che automatizza il deployment delle applicazioni fra differenti piattaforme Linux-based. L’obiettivo della piattaforma è quello di consentire la distribuzione e l’esecuzione agevole di un app su differenti tipologie di macchine dotate di differenti sistemi operativi Linux, dai server virtuali, ai cloud server presenti fra le nuvole private e pubbliche fino ai bare metal server, fino alle macchine fisiche.docker logo

Docker è stato inizialmente sviluppato per DotCloud la startup proprietaria di un’infrastruttura PaaS (Platform as a Service) multilingua.

La collaborazione iniziata con Red Hat permetterà di porre rimedio a quelle piccole incompatibilità tecniche che consentiranno l’utilizzo di Docker sulla piattaforma enterprise PaaS OpenShift entro l’inizio del 2014 e comunque non prima che venga reso disponibile anche su Red Hat Fedora per il libero uso nella community.

Docker: ecco come funziona

Questo traguardo importante è stato raggiunto da Docker in quanto l’idea alla base del progetto è geniale e, in poco tempo, ha incontrato l’interesse di tanti sviluppatori indipendenti, ottenendo oltre 6000 raccomandazioni su GitHub (divenendo così il tredicesimo progetto più raccomandato dell’intero repository online di GitHub), 630 progetti fork e oltre 160 contributori.

Il funzionamento di base di Docker è alquanto semplice: il tool è capace di impacchettare un’applicazione e le sue dipendenze in un contenitore virtuale che può essere mandato in esecuzione su qualsiasi versione di Linux.

Il risultato di questo processo è una maggiore flessibilità e portabilità delle applicazioni e l’opportunità di eseguirle ovunque senza alcuna problematica, dal proprio laptop, ai cloud server privati e pubblici, ai server virtuali fino ai server fisici.

Dockers non effettua la portabilità delle macchine virtuali o dei sistemi operativi, ma rende portabile il codice con cui l’applicazione è scritta, permettendo così una maggiore mobilità fra le macchine virtuali, anche nelle infrastrutture di cloud computing.

Dockers estende un formato comune di package già presente in Linux e noto come Linux Containers o LXC e Dockers utilizza il formato LXC, cGroups e le funzionalità kernel di Linux stesso e lascia all’infrastruttura sottostante il compito di provvedere alle funzionalità del sistema operativo.

Docker sembra sposarsi perfettamente con OpenShift, con cui condivide alcuni aspetti tecnologici e architetturali fondamentali, come i namespace del kernel Linux e la gestione delle risorse tramite cGroups. Lo stesso Openshift, infatti, è costruito su Red Hat Enterprise Linux a già offre un sistema di “cartridge” basato sul formato LXC attraverso l’utilizzo delle Red Hat Enterprise Gears, che, dall’integrazione di Dockers, non potranno che valorizzarsi in termini di usabilità e portabilità.