Programiranje

Kaj morate vedeti o Dockerju v sistemu Windows

Konec prejšnjega tedna sem preživel v Monki Gras, londonski konferenci za razvijalce, ki se je osredotočala na razvoj programske opreme. To je fascinanten dogodek, letos pa se je osredotočil na to, kako zapakirati programsko opremo.

Ni presenetljivo, da so se številni govorniki pogovarjali o vlogi posod pri devopsu in neprekinjeni dostavi. Vendar je prišlo do splošne napačne predstave o podpori sistema Windows za vsebnike, ki je bila običajno označena kot podpora za Docker, ki se izvaja v Linux VM-jih.

To ni res: Windows ima lastne tehnologije vsebnikov, ki temeljijo na Dockerju, vendar mu omogočajo edinstveno Microsoftovo zasnovo. To je verjetno vir zmede, saj je Windows 10 dodal podporo za podsistem Linux, Microsoft pa je orodja Docker dodal v Windows Server 2016 približno ob istem času. Oba sta del Microsoftovega pristopa k razvoju lastnih aplikacij v oblaku, ki je ključni element njegove platforme Azure za naprej.

Zavzetost Microsofta za zabojnike, enega najpomembnejših medpanožnih dogodkov v zadnjih nekaj letih, ne bi smela presenetiti. Kontejnerji, ki so verjetno najboljši način, da zajemajo celotno uporabniško deželo procesov in imenskih prostorov, da bi jo izolirali od drugih primerov, ki se izvajajo na istem strežniku, hitro postanejo ključni sestavni del izvedb devops in stalne integracije. Microsoft je te pristope hitro sprejel interno in njegova orodja kot vedno odražajo, kako Redmond uporablja programsko opremo in kako gradi aplikacije.

Razumevanje zabojnikov

Z ločitvijo storitev, ki jih aplikacija uporablja, od storitev, ki jih potrebuje OS, so sodobni zabojniki postali močno orodje za pakiranje in uvajanje aplikacij na strežnikih. Zabojniki ponujajo prenosljivost med razvojnimi, krajevnimi podatkovnimi centri ter zasebnimi, hibridnimi in javnimi oblaki. Aplikacije, zavite v vsebnik, so neodvisne od gostiteljskega operacijskega sistema in se lahko brez sprememb izvajajo na katerem koli podobnem gostiteljskem vsebniku.

Zavijanje aplikacije v vsebnik pomeni, da je aplikacijo enostavno namestiti skupaj z vsemi ustreznimi konfiguracijskimi datotekami in odvisnostmi: če se vsebnik zažene na razvojnem računalniku ali opravi vse vaše integracijske teste, bo deloval na strežniku brez sprememb. Vsebnik lahko spremenite za novo različico, ne da bi to vplivalo na osnovni OS, in lahko vsebnik premaknete s strežnika na strežnik, ne da bi to vplivalo na kodo. To je logična končna točka modela devops, ki vam omogoča, da ločeno namestite infrastrukturo in programe - in jih upravljate ločeno.

Prvotno mainframe tehnologijo je bilo mogoče vsebnike (ali vsaj podobne oblike imenskega prostora in izolacije procesov) najti v številnih operacijskih sistemih Unix, vključno z Linuxom in Solarisom.

Znotraj zabojnikov Windows

Zdaj, ko je Windows Server 2016 izšel, ima Windows lastno tehnologijo zabojnikov. Temelji na priljubljeni odprtokodni storitvi Docker za vsebnike, dodaja pa podporo za uporabo ukazne vrstice PowerShell in dodatno izolacijo s kombinacijo tankega vsebnika Nano Server in Hyper-V Containers.

Docker ostaja v središču Microsoftove strategije zabojnikov. Njegova orodja, kot sta Swarm in Machine, se pogosto uporabljajo, izdelek Data Center pa lahko upravlja vsebnike Windows in Linux. Lahko uporabite celo Dockerjevega odjemalca iz lupine Bash, ki je del sistema Windows 10, in ga namestite v podsistem Windows za Linux. Ta pristop zahteva, da želite žonglirati s potrdili, zato boste morda raje uporabili Dockerjevo aplikacijo Windows kot razvojno in osnovno orodje za upravljanje vsebnikov Windows in Linux.

Vsebniki sistema Windows so, tako kot številne funkcije sistema Windows Server, vloga, ki jo je mogoče namestiti prek znanega pogovornega okna s funkcijami sistema Windows ali prek PowerShell-a. Upoštevanje poti PowerShell je najbolj smiselno, ker obstaja modul OneGet PowerShell, ki namesti funkcijo vsebnikov Windows in Docker, za začetek pa je potreben le en ponovni zagon. (Če želite uporabljati vsebnike Hyper-V, boste morali omogočiti tudi virtualizacijo Hyper-V.)

Presenetljivo veliko navdušenja nad vsebniki sistema Windows imajo tako razvijalci kot tudi operativne ekipe; Microsoft je poročal o več kot milijonu prenosov osnovnih slik sistema Windows iz knjižnice vsebnikov Docker's Hub, odkar je Windows Server 2016 postal splošno dostopen.

Izdelava in uvajanje vsebnikov v sistemu Windows

Posode niso le strežniško orodje; različice Professional in Enterprise različice Windows 10 Anniversary Edition prav tako podpirajo vsebnike. Omogočiti jih boste morali v pogovornem oknu s funkcijami sistema Windows, a ko bodo omogočene, lahko namestite in upravljate vsebnike sistema Windows v razvojni računalnik s pomočjo PowerShell. Ker Windows 10 podpira samo vsebnike Hyper-V, boste morali namestiti tudi Hyper-V.

Ko so vsebniki sistema Windows omogočeni, boste morali prenesti in namestiti Docker Engine in odjemalca Docker ter namestiti osnovne slike, ki jih boste morali konfigurirati za svojo aplikacijo.

Microsoftova osnovna slika za novo zgrajene kontejnerje Windows je Nano Server, njegova implementacija strežnika, usmerjenega v oblak z majhnim obsegom. Nano Server je zelo smiseln kot osnova vsebnika: je majhen in hiter, brez uporabniškega vmesnika, zato je hiter in razmeroma varen.

Ena pomembna opomba: Čeprav ga lahko uporabljate za gostovanje izvajalnih pogojev, kot je Node.js, je Nano Server namenjen gostovanju aplikacij .Net Core, vključno z ASP.Net Core, zato ne boste dobili vseh funkcij .Net, ki ste jih vajeni. . Dovolj je razlike od znanega Windows Serverja, da je morda najbolje, da si vsebnike Windows, ki jih gosti Nano Server, predstavljamo kot orodje za nove programe in ne kot gostitelja za obstoječo kodo.

Te razlike pojasnjujejo, zakaj številna podjetja uporabljajo Windows Server Core kot osnovno sliko. Čeprav je večji in traja dlje kot Nano Server, Windows Server Core ponuja podporo za trenutne SDK-je za Windows in popolno implementacijo .Net. Veliko lažje je hitro premakniti obstoječo kodo v Server Core, tako da imate možnost, kot pravi vodja programa Windows za Windows Server in Hyper-V Containers, Taylor Brown, "dvigniti in premakniti" iz obstoječih strežnikov v vsebnike, tako da znova namestljiv, kjer koli želite. Ko je aplikacija v vsebniku, jo lahko razvijalci še dodatno razgradijo; na primer premikanje priključkov API v lastne vsebnike, ki temeljijo na Nano Server, da se poenostavi vzdrževanje aplikacij.

Podpora za vsebnike je vgrajena v orodja Windows na najnižji ravni, vsebniki sistema Windows so zdaj cilj uvajanja za Visual Studio 2017. Aplikacije lahko gradite in dostavljate kot vsebnik, pripravljen za preizkus. Pomemben korak je, da posode preprosto kliknete z miško.

Ker bo Windows Azure kmalu podpiral ugnezdeno virtualizacijo, bo možnost dodajanja večje izolacije v javni oblak pomagala reguliranim panogam, da bodo upravičile prehod tako na vsebnike kot na oblak.

$config[zx-auto] not found$config[zx-overlay] not found