Dag 2 på NDC er dagen for 8-bits og 80-talls mimring. Denne gangen var det også dagen for Docker på Windows.

Deploying Docker Containers on Windows Server 2016 - Ben Hall

Docker har på mange måter revolusjonert måten Linux-applikasjoner blir pakket og rullet ut på. I 2015 fant Microsoft ut at konteinerteknologi var så spennende at de inngikk partnerskap med Docker. Nå, i 2016, begynner vi endelig å se resultater av dette samarbeidet. Når Windows Server 2016 blir sluppet kan vi endelig høste en skikkelig saftig frukt: Windows-baserte konteinere.

Windows Server 2016

Windows Server 2016 kommer med standard støtte for Windows Containers, samt en ekstra feature kalt Windows Hyper-V konteinere. Med Hyper-V støttede konteinere bringer Microsoft ekstra sikkerhet til kjøremiljøet. Docker benytter seg av namespacing og cgroups delt rett på kjernen. Selv om en konteiner oppfører seg som en selvstendig sandkasse helt isolert fra andre konteinere og hosten i seg selv, kan en kompromittert konteiner være skadelig for selve Windows-kjernen på hosten. Ved å benytte Hyper-V containere vil det spinnes opp en egen VM som kjører den aktuelle containeren. På denne måten blir kjøremiljøet helt isolert fra hosten. Men vil ikke oppstart av en VM føre til ekstra overhead? Microsoft lover et tillegg på 200 ms som burde være spiselig for de fleste.

Baseimages

Windows Containers vil basere seg på Nano Server eller Windows Server Core. Server Core kan sammenlignes med Ubuntu eller CentOS på Linux-siden: Du får tilgang til det aller meste du trenger fra Windows Server. Nano Server ligner mere på Alpine Linux. Dette vil være et minimum med kun det aller mest nødvendige som trengs for å tilby et server-OS applikasjonen kan bruke. Dette baseimaget vil passe perfekt for ASP.NET Core applikasjoner.

Til nå er det laget images for blant annet IIS, Nginx, MySQL, Redis osv. Etter hvert som RTM nærmer seg vil det garantert dukke opp flere.

Powershell støttet fullt ut

Microsoft tilbyr installasjonsskript for å enkelt installere Windows konteinerstøtte og Docker. I tillegg jobbes det med egne Powershell moduler som skal gjøre administrering av konteinerere sømløst for driftspersonell som benytter Powershell til daglig.

Hva med utviklerne?

Støtte for Windows Containers er allerede kommet i siste bygg av Windows 10 for de med Insider-abonnement. Det er da støtte for alle de samme features som finnes på serversiden. Det vil også dukke opp støtte i Visual Studio for “Build as Docker Container”, med tilhørende deploy via Docker Machine.

Konklusjon

Docker for Windows og Windows Containers kommer til å bli en skikkelig gamechanger for hvordan vi utvikler og ruller ut programvare på i framtiden. Det blir nå mulig å implementere et skikkelig disposable pattern på Windows-siden, som vil støtte opp under skikkelig immutabel infrastruktur. Vi gleder oss!