Kom dine applikationer i en container og spar tid og plads

Container-teknologier som open source-projektet Docker kan gøre arbejdet lettere for udviklerne, men containere er også en byggesten, der gør private og hybride skyer mulige.

Virtuelle servere har gjort det lettere at få eksempelvis en Linux-server op at køre på kort tid, men hvis det i virkeligheden blot handler om at få en bestemt applikation til at køre, så er den virtuelle maskine ikke den mest effektive model. Derfor er både udviklere og de store it-giganter begyndt at interessere sig for containere.

En container kan sammenlignes med applikationsvirtualisering, men containeren indeholder mere end blot en konfigureret applikation. Samtidig er containeren bedre forberedt til at blive flyttet fra et driftsmiljø til et andet, så man kan bruge den samme container i sit lokale testmiljø og til udrulning i skyen.

Et af de container-projekter, som lige nu har mest medvind, er open source-projektet Docker.

»Docker har på kort tid været i stand til at opbygge et community, hvor selv de store spillere er med,« siger lektor Anders Lehmann fra Aarhus Universitet til Version2 Insight.

Han ser især muligheder i, at der med Docker er skabt en platform, som andre kan bygge videre på.

»Det kommer ud af open source og skal være en platform, som folk kan være innovative på. Det grundlæggende er kompliceret, men den måde, Docker har samlet det på, virker som en platform, man selv kan bygge videre på,« siger Anders Lehmann.

Et eksempel er et projekt, hvor en udvikler har kombineret Docker med Bittorrent, så man kan hente de dele af et container-image, man har brug for, ned via peer-to-peer-protokollen.

Docker er en platform, hvor applikationerne deler en række fælles komponenter, men ellers kører i hver deres virtuelle indelukke med hver deres lille område, hvor de kan skrive til. Det betyder, at flere applikationer eksempelvis kan dele den samme Linux-kerne og C-biblioteker, men uden at køre på den samme virtuelle maskine.

Dermed bliver hvert Docker-image mindre, end hvis det skulle indeholde alt, hvad der skal bruges til at køre applikationen, når først Docker-platformen er etableret. Samtidig er der mindre, der skal op at køre, hvis man har brug for en frisk udgave af applikationen. Derfor er der mange udviklere, som har fået kig på Docker.

»En af fordelene er, at jeg ikke skal jonglere rundt med virtuelle maskininstanser på mere end 10 gigabyte. Et Docker-image fylder måske en lille gigabyte,« siger lead developer Rune Andersen fra TV 2 til Version2 Insight.

Efter nogle udviklere hos TV 2 selv havde eksperimenteret med Docker, så er Docker nu blevet et alternativ til en dedikeret webserver til udviklermiljøet med oprettelsen af et Docker-bibliotek, som udviklerne kan hente images fra.

»Jeg er mere til at arbejde med et lokalt miljø, hvor jeg kan arbejde mere afkoblet og ikke behøver være på firmanetværket. Med et Docker-image af webserveren kræver det ikke, at jeg har en webserver på min maskine,« siger Rune Andersen.

Opsætningen i TV 2’s udviklingsafdeling omfatter et bibliotek, hvorfra udviklerne kan hente Docker-images, samt en server, hvorfra udviklerne kan hente data til test. Netop test er lettere med Docker, fordi det er hurtigt at starte fra en frisk.

»Med Docker gemmer man ikke noget som helst, så med test kan jeg starte fra scratch. Det tager få sekunder at få en ren instans,« forklarer Rune Andersen.

Det er imidlertid ikke kun udviklere, som har opdaget container-teknologierne og især Docker. De samme fordele, som Docker giver den enkelte udvikler, kan nemlig overføres til stor skala, når man som cloud-udbyder tilbyder drift af applikationer i skyen.

»Det passer fantastisk ind i private-public-hybrid-cloud-tanken,« siger teknisk evangelist Rasmus Hald fra Microsoft til Version2 Insight.

Microsoft er én af flere cloud-udbydere, som i løbet af kort tid har taget Docker til sig, blandt andet fordi det er forholdsvis enkelt at flytte en Docker-container fra et lokalt driftsmiljø til skyen. Microsoft har således også gjort det muligt at lave Windows-applikationer, som kan pakkes ind i en Docker-container.

»Microsoft har ikke et lignende produkt. I stakken har vi Hyper-V og applikationsvirtualisering, som er lidt hen ad det samme, men strategien er også at give kunderne et valg. Der er mange, der sværger til vores platform, så vi vil give dem et fleksibelt valg mellem at implementere Docker til Windows eller Linux,« siger Rasmus Hald.

Man skal dog være opmærksom på, at selvom man kan flytte en container mellem to Docker-miljøer, så kan man ikke skifte platform. En Windows-applikation kan således ikke flyttes til Linux blot ved at pakke den ind i en Docker-container. Til gengæld ser Microsoft potentiale i containere i forhold til at gøre det lettere at tilbyde hybridskyer til kunderne, hvor de kan arbejde med både drift i deres eget datacenter og i Microsofts sky ved eksempelvis at bruge Microsofts Azure Pack, som gør det muligt at lave en lokal udgave af mange af Microsofts skytjenester.

Selvom Microsoft understøtter Docker, så er det dog ikke en teknologi, selskabet ser som moden for alle kunder til alle formål.

»Docker er stadig ungt. Som det er implementeret i dag, skal vi ind og eftersikre, fordi Docker eksempelvis ikke kan beskytte for adgang til root. Det er et tegn på, at det skal modnes,« siger Rasmus Hald.

Tilsvarende er der stadig en del arbejde med opsætningen, som betyder, at det mest er interessant, hvis man kan hive den indsats hjem igen, hvilket som regel forudsætter drift på en vis skala.

Denne artikel stammer fra Version2 Insight: Datacenter-

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Følg forløbet
Kommentarer (4)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Lars Tørnes Hansen

Jeg vil lige bemærke at der er LXC Linux Containers: https://linuxcontainers.org/lxc/introduction/ og så LXD, der er en overbygning på LXC: https://linuxcontainers.org/lxd/introduction/

Ubuntu snappy pakker findes til en server udgave af Ubuntu, og snappy pakker kommer også senere kommer til Ubuntus desktop, mobile, og tablet. Desktop vil stadig komme med det traditionelle apt pakke system der bruger *.deb pakke filer.

Mere information om Ubuntu snappy pakker:

Steen Thomassen

Intet ondt om det her nye hippe Docker, men prøv at erstatte Docker med Java.
Så kunne artiklen godt ha været sand i 1995.


Jeg ved ikke hvorfor du sammenligner med Java. Docker er system med et virtuel maskiner, hvor hver maskine er et selvstædig operativsystem. Men en maskine kan dele en fælles image, som er tilpasset opgaven og docker holder styr ændringer i forhold til den.

Log ind eller Opret konto for at kommentere