Analyse: Docker står til at vinde slaget om containere og fremtidens datacenter

Med massiv opbakning bag frigivelsen af fundamentet for Dockers container-teknologi som en selvstændig standard ser det ud til, at Dockers teknologi er fremtiden.

Der skal i dag vægtige argumenter til for ikke at vælge at virtualisere sine servere. Virtualiseringen har ændret hele landskabet for it-drift og blandt andet banet vejen for skyen, som vi kender den i dag. Men nu ser det ud til, at netop som hypervisorer og vm's er blevet hverdag, så står vi midt i et nyt spring i evolutionen af datacentret og skyen.

Containere er det logiske næste skridt, efter at hypervisoren adskilte styresystemet fra hardwaren. Containeren fjerner størstedelen af det overhead, som opstår, når mange virtuelle maskiner med hvert deres styresystem kører på den samme hypervisor.

Tanken er ikke ny, men nu ser det ud til, at vi er kommet nærmere den form og de-facto-standard, som VMware skabte for servervirtualisering.

Teknologien fra Docker-containerne er nemlig nu blevet skilt ud i et selvstændigt open source-projekt, som er kommet under ledelse af The Linux Foundation. Og den nye Open Container Foundation har både Amazon, Google, Microsoft, IBM, HP, Red Hat, Cisco, CoreOS og Vmware på listen over medlemmer, som bidrager til projektet.

Den eneste, der lige springer i øjnene som fraværende på listen, må være Oracle, men det kan skyldes, at Oracle var i fuld færd med en stor cloud-lancering samtidig med, at Open Container Project blev annonceret. I hvert fald har Docker annonceret kommende understøttelse for Sparc-processorer for RunC-komponenten, som er den centrale infrastruktur for Docker-containerne.

Docker beholder selv selve værktøjerne til at administrere containerne, og det ligner et fornuftigt træk, fordi det er den del, hvor container-teknologien stadig er umoden, og hvor åbningen af den grundlæggende del af teknologien giver mulighed for, at flere kan komme til med deres bud.

Docker har ganske vist hele tiden været baseret på open source, men nu bliver selve kerneteknologien åbnet på en måde, der giver nogle meget centrale spillere mulighed for at give fuld opbakning. Med eksempelvis Microsoft, VMware og CoreOS om bord er der i hvert fald rigelig mulighed for at bruge teknologien på mange forskellige måder.

Læs også: Version2 Insight: Næste bølge til effektivisering af datacenteret - Docker og Mesos

Containere kan både gøre udrulningen af virtualiserede applikationer hurtigere og mindske overhead, men de giver også nye muligheder for at flytte applikationer fra forskellige platforme. Det kan give mulighed for at arbejde med cloud computing på en måde, hvor der er meget mindre behov for at være systemadministrator for styresystemer og hypervisorer og i stedet kunne koncentrere sig om applikationerne.

Containerne har stadig begrænsninger i forhold til de mere modne virtualiseringsteknologier, men hvis Open Container Project får etableret sig som den åbne standard, der er toneangivende, og med den nuværende opbakning, så burde vi se en hurtig modning af eksempelvis orkestreringsværktøjerne.

Udfordringen kan blive, at der måske mangler et stærkt incitament for it-cheferne for at give sig i kast med teknologien. Servervirtualiseringen gav mulighed for at konsolidere sine applikationer på færre fysiske servere og reducere energiforbruget. Cloud computing gav mulighed for at købe sig til lige nøjagtigt den kapacitet, man havde brug for, når man havde brug for den.

Helt så umiddelbart konkrete er fordelene for mange it-chefer ikke ved containere lige nu, men især for dem, der har behov for hyppige udrulninger af mange forskellige applikationer er det værd at kigge nærmere på teknologien.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Følg forløbet
Kommentarer (9)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Martin Kirk

Som en anden bruger herinde tidligere har skrevet, så er måden hvormed et program installere sig i Windows, at det explodere sig selv ud på hele harddisken.
På Mac trækker man en App-mappe ind i en mappe med Apps og så er det installeret (cirka) - afinstallation sker ved at slette app-mappen og Bum, så den skid slået.

Kunne det tænkes at Docker bliver fremtiden for hvordan Programmer, Spil osv bliver distribueret og installeret ?

Det løser i hvert fald alle (eller mange) de problemer man finder i Windows...

Har indtil videre kun set en demo af et ASP.NET MVC6 + .NET-PCL site som blev smidt i Docker, som så kørte på Linux, Mac og Windows - men det er vel muligt at pakke alle slags programmer ind i sådan en wrapper ?

Martin Kofoed

Docker er et fantastisk stykke software. Der er noget næsten magisk over at anvende den eksakt samme container til både udviklingsmiljø, test og produktion uden at skulle installere disse miljøer hver for sig.

Alt sammen lader sig gøre ved de små landvindinger, som er så kendetegnende ved open source software - lige fra bidrag til linux-kernen (cgroups) over libcontainer til det sprog, Docker er udviklet i (Go language).

Det er lige før, man får tårer i øjenkrogen ;)

Jens Kristian Geyti

Man kan simplificere en del, og påstå at de fleste operativsystemer idag arbejder med en model hvor alle ressourcer altid er tilgængelige til alle apps, men beskyttet af et sikkerhedslag der kun giver adgang hvor brugeren tillader det (tænk filer på filsystemet fx). Apps kan altså slå op i et katalog, se hvilke muligheder der er, og spørge brugeren om adgang til dem.

Containerisation går i højere grad ud på kun at dele de nødvendige ressourcer med en container. App'en i containeren kan se de ressourcer, og kun de ressourcer. Det kræver så til gengæld at brugeren explicit, på forhånd (!) vælger hvilke ressourcer containeren skal kunne se. Til gengæld kan vi klare os med et tyndere sikkerhedslag, da apps ikke har mulighed for overhovedet at forsøge at snage i andres ressourcer (igen, tænk filer fx).

Det er alt sammen problemer der er til at løse, men det er et fundamentalt skifte fra hvordan ressourcer håndteres nu. Og vi vil sandsynligvis ende ud i en model, hvor alle containere får mulighed for at slå op i et globalt katalog, for at se hvilke ressourcer der er tilgængelige, som de kan spørge efter - men så bevæger vi os lige så stille tilbage mod den oprindelige model alligevel, hvor programmer ikke rigtigt er isolerede.

Containere af forskellig art har (og har altid haft) deres stor forte indenfor deployment og ressourceenkapsulering, og med dockers mulighed for let at dele containere er det nu pludselig også et stærkt udviklingsværktøj. I docker's nuværende form, tror jeg imidlertid ikke det er et fornuftigt bud på hvordan vi bør "bundle" 3-parts programmer.

Udover den mere konceptuelle udfordring, er der en hel række praktiske grunde til at Docker ikke kan bruges til "apps" lige foreløbig. Det binder sig hårdt op på linux-kernen pt. (det er faktisk en overraskende tynd wrapper - Docker står virkelig på skuldrene af giganter), hvilket gør det svært at udvide til Windows og OSX. Et lagdelt filsystem er genialt, og betyder at to containere kan dele en stor "ubuntu" base, og kun selv være få MB store. Til gengæld betyder det at lag er read-only, og hvis du vil opdatere, må du enten opdatere de samme dependencies i begge containere, ELLER helt bygge dine lag op fra ny. Docker har pt. heller ingen god adgang til skrivebordsmiljøet, og kan derfor ikke bruges til GUI-apps. Etc. etc. Der er rigtig, rigtig god grund til at Docker pt. henvender sig til "programmers, development teams and operations engineers", og ikke slutbrugere, for der er stadig en del gotcha's der kan bide dig i røven.

torben dalum

Martin Kirk det er noget vrøvl du skriver der, om et program er lavet til windows eller OSX har ikke noget at gøre med om det ligger et eller flere steder, det kommer an på hvor avanceret et program er. Det findes masser af windows programmer der bare er til at smide ind i program files og så er det det og hvis du sletter dem der, så er de helt væk.
Har du mere avancerede programmer der skal snakke sammen med andre programmer skal der jo være et eller andet fælles sted de registrer sig, i windows bliver det gjort i registrerings databasen og i OSX bliver det gjort i forskellige Library foldere.
Har du feks. photoshop til OSX kan du jo heller bare trække den ind i Applications og så kører det, nej det installeres med en installer og skal fjernes med en uninstaller, for at fjerne alt. Photoshop kan have flere GB til at ligge uden for Applications folderen alt efter man har installeret.
Hvis du være sikker på at slette alt på OSX uden at bruge et uninstall program, skulle du ind og se om programmet havde noget følgende 13 steder

/Applications/[Application]
~/Applications/[Application]
~/Library/Application Support/[Application]
~/Library/Preferences/[Application]
~/Library/Caches/[Application]
~/Library/Containers/Application]
~/Library/LaunchAgents/Application]
~/Library/PreferencePanes/[Application]
~/Library/Saved\ Application\ State/[Application]
~/Downloads/[Application]
/System/Library/LaunchDaemons/[Application]
/System/Library/LaunchAgents/[Application]
og i din /usr folder

Hvis et program kun kunne ligge som et afskærmet program, i Applications folderen, i OSX ville du have været meget ked af det, da der så ville have været mage til der ikke kunne have ladet sig gøre i OSX programmer.

Brian Hansen

Det findes masser af windows programmer der bare er til at smide ind i program files og så er det det og hvis du sletter dem der, så er de helt væk.

Jeg bruger i så vidt omfang det er muligt kun portable udgaver. De kan så ligge på mit onedrive, i tilfælde af at man bliver tvunget ud i en ominstallation eller lignende.
Og så er der selvfølgelig det herre praktiske i at sætte softwaren op én gang på én PC, og så virker det på alle de andre :)

Michael Zedeler

Hvis du være sikker på at slette alt på OSX uden at bruge et uninstall program, skulle du ind og se om programmet havde noget følgende 13 steder

Man kan da håbe at der kommer nogle lidt mere gennemtænkte standarder for installation af desktop-software som trækker på nogle af erfaringerne fra docker. Jeg kan i hvert fald sige at jeg installerer meget få værktøjer udenfor docker efterhånden.

Shameless plug: jeg bruger docker shell til det meste.

Log ind eller Opret konto for at kommentere