Cos'è il progetto Moby di Docker?

Essendo un ite di Austin , mi è piaciuto avere DockerCon locale e sono stato coautore di una guida per visitare Austin nella speranza che i partecipanti si divertissero anche con DockerCon ad Austin.

Durante il DockerCon 2017, sono stati fatti alcuni importanti annunci, incluso il Moby Project. 

Cos'è il progetto Moby? È un framework per assemblare sistemi di container specializzati senza reinventare la ruota.

Il progetto Moby sta a Docker come Fedora sta a Red Hat Enterprise Linux. - Solomon Hykes, Docker CTO / Fondatore

Diventando il progetto contenitore equivalente al progetto Fedora, il modo in cui è costruito Docker sta cambiando.

Red Hat ha svolto un buon lavoro nei primi giorni della confusione RHEL in quanto ha delineato il progetto dal prodotto; hanno separato Fedora da RHEL. Docker vede questo approccio come un modo per coinvolgere meglio la comunità. I confini tra comunità e prodotti prima erano sfocati. Le persone non potevano necessariamente dire quando contribuiscono al progetto rispetto al prodotto. Questa separazione di codice tra il repository moby / moby e il repository docker / docker chiarisce questa distinzione.

Moby convertirà Docker da un motore monolitico in un toolkit per assemblare i suoi componenti in diverse configurazioni. Il progetto Moby dovrebbe incoraggiare il riutilizzo di ciascuno dei componenti. Docker ha una storia di successo in questo senso e può essere misurato nel loro riutilizzo oltre il loro creatore:

  • Hanno prodotto OCI / runc ed è ora lo standard stabilito per il runtime del contenitore e i formati di immagine.
  • Hanno prodotto containerd e ora è lo standard di fatto del settore per i tempi di esecuzione dei container con il contributo di tutti i principali fornitori di cloud e il 99% della base di installazione (milioni di nodi in tutto il mondo).
  • Notaio è diventato l'implementazione più matura del settore del TUF e un hub di collaborazione per la comunità della sicurezza.
  • La distribuzione Docker è la base open source per una dozzina di prodotti commerciali.

Il team di Docker è fiducioso che, poiché il monolite Docker viene suddiviso in pezzi più piccoli, questi singoli componenti possono diventare blocchi per soluzioni personalizzate. In precedenza risiedeva in docker / docker, il progetto monolitico è stato trasferito a moby / moby.

È sorta una certa confusione sul progetto. Il team Docker ha comunicato bene il progetto ai collaboratori della conferenza e alla maggior parte dei manutentori. Tuttavia, le persone che si interfacciavano più casualmente nella comunità erano sorprese e poco chiare circa il suo scopo e il suo impatto, esprimendo frustrazione nel non capire come i vari pezzi combaciano o cosa fanno le nuove funzionalità (ad esempio, LinuxKit).

Il progetto @moby in poche parole: dentro e fuori. pic.twitter.com/K8Rn9YYtVs

- Solomon Hykes (@solomonstre), 22 aprile 2017

Il progetto Moby consente ai system builder di creare altri progetti in aggiunta agli stessi strumenti. Un costruttore di sistemi potrebbe voler eseguire questi assembly in modo diverso, a seconda che vengano eseguiti su un piccolo dispositivo IoT o se vengono eseguiti su un sistema di grandi dimensioni con GPU.

C'è ancora molto lavoro da fare per suddividere i componenti; tuttavia, l'obiettivo è creare un unico upstream di grandi dimensioni per Docker, ovvero Moby. Docker Inc. vuole che gli strumenti siano più aperti di Docker. Le decisioni di progettazione del prodotto a volte sono in contrasto con un progetto open source basato sul consenso. La separazione delle preoccupazioni consente a Docker Inc. di compilare opinioni sull'esperienza utente nella propria comunità e nelle offerte Docker aziendali. Moby è il progetto. Docker è il prodotto.

Il progetto Moby può essere descritto in quattro livelli:

  1. Tutti i componenti a monte
  2. Moby
  3. Docker CE
  4. Docker EE
David Chung / Docker Inc.

L'organizzazione del progetto in livelli dovrebbe attenuare il contenuto naturale che sorge quando è necessario prendere decisioni tra ciò che funziona per il progetto e il prodotto. Docker come prodotto aggiungerà opinioni informate dai propri utenti (per essere più facile per i propri utenti). Ad esempio, containerd non ha un registro predefinito, mentre Docker avrà l'hub Docker come predefinito o la Docker CLI, fornendo una facile ricerca dei problemi aperti che hai per il tuo progetto nel forum / sistema di supporto Docker. Utenti inalterati. Gli utenti continueranno a interagire con Docker allo stesso modo.

  • Gli sviluppatori di applicazioni che cercano un modo semplice per eseguire le loro applicazioni nei contenitori possono guardare a Docker CE.
  • L'IT aziendale alla  ricerca di una piattaforma container pronta per l'uso e supportata commercialmente può guardare a Docker EE.

Non cambia nulla per questi utenti. La riga di comando rimane la stessa. Docker può ora sfruttare l'ecosistema per innovare più velocemente per loro.

  • I system builder che  cercano di sfruttare i componenti del Moby Project possono innovare senza essere legati a Docker.

Governance del progetto

Il progetto Moby è aperto e sarà un progetto gestito dalla comunità. Docker Inc. ha un'inclinazione generale a donare i singoli componenti di questo progetto ad altri organi di governo ove appropriato. Containerd deve stare da solo dall'org Moby perché è stato donato al CNCF. I singoli progetti a lungo termine dovrebbero eventualmente trasferirsi e andare in altri archivi.

Domande frequenti su Moby Project

  • Ora che Moby sta rompendo il monotlito, verranno incorporate altre lingue oltre a Go?
    • Per LinuxKit — C'è un impegno per Ocaml e Rust. Non esiste un piano generale per cambiare le lingue.
  • REST verrà sostituito con gRPC?
    • Docker Inc generalmente desidera lasciare l'API REST come facciata costante, spostando le comunicazioni interne tra i progetti Moby su gRPC. Un componente può cambiare le lingue e non influire su altri componenti (proprio come i microservizi forniscono la scelta). Il motore ha un'API REST HTTP e tutti i componenti di livello inferiore hanno adottato gRPC. Solomon propone di adottare gRPC come interfaccia standard. I vantaggi includono strumenti più automatizzati.
  • Dove troverai Docker CE (il progetto open source)?
    • TBD: per ora Docker / CLI disporrà delle librerie client e degli SDK. Il packaging e la creazione sono specifici dell'edizione, dato che ci sono molti Docker per XXX.