Docker på Windows Server hvordan fungerer det?
NyheterDa Microsoft og Docker først annonserte at den neste versjonen av Windows Server ville støtte den stadig mer populære containeriseringsteknologien, var det ikke mye teknisk detalj om hva det ville ta for å gjøre det arbeidet, med spørsmål om hvordan innfødt Docker virkelig kunne være.
"Docker-motoren for Windows Server vil ha effektiv funksjonalitet med Linux-siden," fortalte Docker-visepresident David Messsina oss. "Det vil ikke være noen forskjell i å bruke en container, annet enn OS inne i beholderen. APIene og alt annet programutviklere trenger å stole på, vil være det samme."
Men på Linux bruker Docker-motoren (som kjører containerne og er adskilt fra Docker-klienten du bruker til å administrere dem), kjernekunksjoner som navneområder og C-grupper. Vil Windows Server ha det, sammen med et register, service hosting og Access Control Lists for hver container?
"Vi vil gjøre alt det," Azure CTO Mark Russinovich bekreftet TechRadar Pro på TechEd Europe, "det ville ikke vært mye poeng hvis vi ikke gjorde det." Det mer interessante spørsmålet er hvordan dette passer inn med Windows Server-applikasjonsmodellen, og hvordan det kan utnytte noen typer virtualisering, har Microsoft allerede satt inn i operativsystemet for bakoverkompatibilitet.
Ulike tilnærming
Dockerbeholdere tar en helt annen tilnærming fra å sette et helt OS og ett eller flere applikasjoner i en virtuell maskin, og kjører det som et enkelt system som kanskje eller kanskje ikke kommuniserer med andre virtuelle maskiner over et virtuelt nettverk.
Docker handler om å bygge en arbeidsbelastning fra microservices, med en tjeneste per container. "Disse beholderne kan distribueres," forklarer Messina, "det kan være flere kopier av hver av disse tjenestene fordelt på miljøet." Docker handler om å dele opp ting i beholdere og deretter koble dem sammen som Lego-blokker for å gjøre systemet du trenger.
Men hvordan passer det med Windows Server? "En av de viktigste spørsmålene er hvor langt vi kan ta app kompatibilitet med dette," Russinovich påpekt. "Når du ser på Windows App-økosystemet, er det veldig komplekst, og applikasjonene er svært komplekse når det gjelder deres avhengigheter og de forskjellige tjenestene serveren gjør tilgjengelig for dem. Vi finner ut hvilke tjenester som kan virtualiseres og som må være virtualisert slik at vi kan presentere det per containervisning av tjenester. De enkleste appene som skal håndteres, er fullt isolerte, slik at de ikke utnytter Windows Service Control Manager-tjenester. "
Hver til seg selv
Hver container skal også ha sin egen registret, slik at applikasjoner kan skrive inn i det, men det er noe som har vært i Windows i flere år, som en del av flyttingen for å stoppe at brukere må logge inn som administratorer for å installere stasjonære applikasjoner.
"Det vi gjør der er mer sofistikert, men vi utnytter filsystemvirtualisering og registreringsvirtualisering vi har gjort, samt nettverks virtualisering." Å få måten tjenestene er virtualisert riktig er nøkkelen til å bringe Docker til Windows, Russinovich forklart, og navneområder er en del av å gjøre det arbeidet.
"Det er noen ting som er unike når det gjelder disse beholderne. Virtualiseringen du vanligvis ser på Windows, er alle ett nivå, men Docker-modellen er stablet virtualisering." Det betyr at ett Docker-bilde kan bare være en referanse til et annet bilde, pluss litt ekstra kode.
"Du starter med et grunnbilde som er et virtuelt filsystem, så lag du et annet bilde med sitt eget virtuelle filsystem og komponerer det øverst [av det første bildet]. Du kan komponere et antall av disse forskjellige lagene sammen - det er verdien av Docker Packing format.