Flocker raggruppa contenitori e dati Docker per un facile trasporto

Man mano che i container Docker diventano più diffusi, anche i loro difetti diventano più chiari. In che modo, ad esempio, esegui la migrazione di un container in esecuzione insieme ai suoi dati su un altro server e ne preservi i dati durante il processo? Di solito non lo fai.

ClusterHQ, una startup fondata in parte dai principali contributori al motore di rete Python Twisted, ha una soluzione proposta. Flocker, un gestore di volumi di dati open source (Apache) per applicazioni Dockerizzate che è ora nella sua versione 1.0, consente di associare volumi di dati (ovvero set di dati) ai contenitori e di spostarli con essi.

Tenere tutto insieme

Flocker raggruppa contenitori e set di dati, assicurandosi che si spostino insieme ogni volta che un'applicazione Dockerizzata viene spostata tra gli host su un dato cluster. L'unica limitazione è che l'archiviazione dei dati deve essere fornita da un back-end di archiviazione condiviso accessibile a tutti i nodi del cluster.

Al momento sono supportati solo pochi tipi di back-end di archiviazione, per lo più orientati al cloud: Amazon EBS, Rackspace Cloud Block Storage ed EMC ScaleIO. Anche l'archiviazione basata su ZFS è supportata, anche se solo tramite un back-end attualmente sperimentale.

"Qualsiasi cosa per cui utilizzi VMware vMotion", ha affermato Mark Davis, CEO di ClusterHQ, "sono gli stessi motivi per cui potresti voler spostare un container. E se un container contiene dati, hai bisogno di qualcosa come Flocker".

Detto questo, una caratteristica decantata di vMotion, la migrazione in tempo reale delle app in esecuzione, non è ancora del tutto disponibile in Flocker. Le sue migrazioni sono "tempi di inattività minimi", anziché zero tempi di inattività, il che significa che c'è una piccola finestra di indisponibilità durante il processo di migrazione. Luke Marsden, CTO e co-fondatore di ClusterHQ, ha dichiarato in una telefonata che il tempo di inattività "dipende dalla velocità con cui il back-end può avere un volume staccato da una VM e collegato a un'altra VM. Ma siamo molto interessati a riducendo al minimo i tempi di inattività. "

ClusterHQ ha già funzionalità sperimentali in lavorazione per accelerare il processo tramite snapshot di volume, sebbene il back-end debba supportare gli snapshot per essere fattibile.

Pezzi mancanti di Docker

Docker ha tradizionalmente lavorato con i dati tramite volumi di dati, ma hanno i propri limiti. Copiare manualmente i dati tra i contenitori non è ancora semplice (presumibilmente risolto in Docker 1.7), ma il muro più grande rimane il cattivo stato di gestione dei dati condivisi dai contenitori Docker in esecuzione in posizioni diverse.

Una proposta attuale per Docker prevede la messa a disposizione di un nuovo tipo di archiviazione per i container, in cui terze parti possono fornire driver di dispositivo per i propri tipi di archiviazione. Se una tale funzionalità fosse implementata, non sarebbe difficile per ClusterHQ rielaborare il suo supporto attraverso la sua architettura plug-in back-end del set di dati e mantenere un passo avanti rispetto a qualsiasi funzionalità si inserisca nel core di Docker nel tempo.