Wat is Moby en hoe verhoudt het zich tot Docker?

0
155

Docker's Moby Project demonteert de fundamentele componenten van Docker Engine in een modulaire toolkit die andere op containers gebaseerde systemen kunnen hergebruiken. Moby is in 2017 voortgekomen uit de toen monolithische Docker-codebase. Het is ontwikkeld tot een uitgebreide bibliotheek van container-backendcomponenten die kunnen worden gecombineerd om volledige containeroplossingen te creëren, zoals Docker zelf.

Als Docker-eindgebruiker heb je geen directe interactie met het Moby-project. Het is gericht op mensen die containerisatieplatforms bouwen, niet op ontwikkelaars die containerimages bouwen en uitvoeren. U kunt Moby echter tegenkomen in de documentatie van Docker of bij het indienen van bugrapporten en functieverzoeken.

Docker voor Moby

Docker was oorspronkelijk ontwikkeld in één codebase die alles bevatte wat het project nodig had. Dit varieerde van de containerruntime en imagebuilders tot opslagproviders, netwerkbeheer en de CLI.

Toen de adoptie van Docker halverwege het afgelopen decennium toenam, bleek deze alles-in-één-benadering het bredere ecosysteem tegen te houden. Complementaire tools konden niet voortbouwen op specifieke delen van Docker omdat er niets was gecomponeerd. Externe leveranciers moesten het hele uitgestrekte platform van Docker binnenhalen.

Kernfunctionele eenheden zoals containerd werden snel opgesplitst in zelfstandige modules. De community zou nu nieuwe containersystemen kunnen maken zonder de runtime opnieuw uit te vinden die met de kernel bemiddelt om containerinstanties te starten. Andere componenten zoals runc en HyperKit volgden, die werden gescheiden van het Docker-project en vervolgens weer in de Docker Engine-releases werden opgenomen als modulaire afhankelijkheden.

Advertentie

Moby bracht deze aanpak naar een hoger niveau door nog meer componenten uit te draaien van Docker. De voormalige docker/docker GitHub-repository werd moby/moby; het bevat de open-source delen van de Docker Engine-code op een voor de gemeenschap toegankelijke locatie, onafhankelijk van de gesloten-source Docker CE- en EE-productrepository's.

Het montagepatroon

Met Moby kan iedereen delen van Docker's technologie mixen en matchen zonder gedwongen te worden de hele boel erbij te halen. Het biedt implementaties van alle belangrijke subsystemen die deel uitmaken van een containerisatieplatform. Je kunt je eigen versie van Docker samenstellen en onderdelen verwisselen om alternatieve projecten in specifieke functionele gebieden te gebruiken.

De aanpak van Moby is gemodelleerd naar het gebruik van gedeelde platforms door de auto-industrie. Marques bouwt hele modelfamilies uit een enkel chassis en motorgamma. Het toevoegen van een nieuwe optie aan de line-up wordt bereikt door het gedeelde platform te nemen en het aan te passen aan de ontwerpvereisten van het nieuwe voertuig. Het platform zal niet noodzakelijkerwijs worden gebruikt zoals het is: een model dat wordt aangeboden als prestatiekeuze kan motoropties en chassisaanpassingen hebben die niet beschikbaar zijn op andere modellen die het platform gebruiken.

< p>Moby biedt iets dat lijkt op containersysteemontwikkelaars. U kunt beginnen met kant-en-klare componentassemblages die bewezen compatibiliteit bieden. Dit is het standaard gedeelde autoplatform. Naarmate uw systeem evolueert, vervangt u afzonderlijke modules door nieuwe implementaties om een ​​krachtiger hulpmiddel te creëren. Een voorbeeld zou kunnen zijn om de BuildKit-afbeeldingsbuilder te vervangen door een alternatief met hogere prestaties. Dit is vergelijkbaar met de autofabrikant die de standaard kleine motor van zijn platform vervangt door een alternatief met een hogere capaciteit.

De ontwikkelaarservaring van Moby is er dan ook een van montage en uitbreiding. Elk op Moby gebaseerd project zal een andere set onderdelen verbruiken om een ​​uniek doel te bereiken. Vóór Moby hadden ontwikkelaars geen toegankelijk startpunt bij het innoveren in specifieke gebieden van het containerecosysteem. Nu kunnen de ontwikkelingen meer gericht zijn naarmate Moby de lege plekken opvult.

Wat omvat Moby?

Moby heeft drie verschillende functionele aanbiedingen:

  • Een bibliotheek met backend-componentendie algemene containerfuncties implementeren, zoals het bouwen van afbeeldingen, opslagbeheer en het verzamelen van logbestanden.
  • Een raamwerk met ondersteunende tooling dat u helpt bij het combineren, bouwen en testen van assemblages van componenten binnen uw eigen systeem. De toolchain produceert uitvoerbare artefacten voor alle moderne architecturen, besturingssystemen en cloudomgevingen.
  • Voorbeelden van het gebruik van het framework, inclusief een referentieassemblage.Deze referentieassemblage is de open-sourcekern waarop het Docker-product is gebouwd. Je kunt het gebruiken om beter te begrijpen hoe Moby-componenten worden samengevoegd tot een samenhangend systeem.

Deze onderdelen geven systeembouwers alle ingrediënten om hun eigen containerisatieplatform te creëren. Ze faciliteren innovatie zonder projecten te koppelen aan Docker en zijn gesloten ecosysteem. Het model wordt beschreven als “batterijen inbegrepen, maar verwisselbaar.”

Advertentie

Moby is volledig open source en wordt geleid door de gemeenschap. Docker draagt ​​zijn open source componenten bij aan het project en ook externe partijen kunnen stukken toevoegen. Docker is ook vastbesloten om Moby te blijven gebruiken als zijn upstream; dit betekent dat wijzigingen die in Moby zijn aangebracht, zichtbaar zullen zijn wanneer u Docker installeert.

Moby is eigenlijk niet het einde van de regel in de afhankelijkheidsboom van Docker. Sommige componenten, zoals de Containerd-runtime, zijn gedoneerd aan de CNCF en worden daarom apart van Moby onderhouden. Moby gebruikt Containerd als zijn standaard containerruntime, maar het is opgenomen als een upstream-afhankelijkheid, geen lid van het project.

From Moby to Docker< /h2>

Hoewel Moby alle basisprincipes van een containersysteem omvat, betekent de focus op systeemontwikkelaars dat het installeren van de referentieassemblage u niet de beste ervaring zal geven. Hier voegen downstreamprojecten zoals Docker waarde toe. Ze bouwen voort op Moby om een ​​platform te creëren dat functioneert op een manier die nuttig is voor eindgebruikers die met containers en afbeeldingen werken.

Het installeren van Docker en het uitvoeren van docker pull ubuntu:latest is bijvoorbeeld mogelijk zonder handmatige configuratie. Dit komt omdat Docker vooraf is geconfigureerd om ongekwalificeerde afbeeldingsreferenties uit Docker Hub te halen. Dit zou niet werken met de Moby-referentieassemblage; hoewel het in staat is om afbeeldingen op te halen, heeft het geen standaard register, dus het zou de tag niet kunnen oplossen.

Downstream-platforms voegen meningen toe aan de objectieve reeks functies die door Moby worden aangeboden. Hoewel ontwikkelaars van containersystemen geen voorgeconfigureerde register-URL willen, is het wel een leuk extraatje voor imagebuilders. Vóór de introductie van Moby hadden platformontwikkelaars geen manier om de productgebaseerde beslissingen van Docker eruit te filteren.

Samenvatting

Moby is een modulair toolkit van backend containercomponenten. Het bevindt zich stroomopwaarts van platforms die zijn gericht op eindgebruikers die containerimages bouwen en uitvoeren. Moby is voor mensen die systemen zoals Docker maken, maar de standaardinstellingen, meningen en banden met Docker Inc niet willen erven.

Advertentie

Moby faciliteert een productiever container-ecosysteem dat&#8217 ;s niet langer gedomineerd door de Docker-monoliet. De meeste Docker-gebruikers zullen de verandering niet hebben opgemerkt, aangezien de introductie van Moby voornamelijk de ontwikkeling van tools zoals Kubernetes, Podman en andere containeromgevingen heeft gestroomlijnd. Die projecten profiteren van het delen van belangrijke componenten die zijn gedestilleerd tot hun kale functionele elementen.