Programiranje

Posode v operacijskem sistemu Windows Server 2016: Kaj morate vedeti

V zgodbi, za katero sem pisal Računalniški svet januarja, ki je bil pregled tehničnega predogleda 4 za Windows Server 2016, sem omenil novo podporo sistema Windows Server za vsebnike Hyper-V, ki je bila dodana njegovi podpori za vsebnike v slogu Docker (prisotna v beta izdelku od prejšnje izdaje mejnika beta ).

Vendar pa je prisotnost dveh možnosti posod povzročila veliko vprašanj. Kakšna je razlika med vsebnikom Docker in novim vsebnikom Hyper-V? V katerih scenarijih bi radi uporabili eno rešitev vsebnika nad drugo? Ali obstajajo ločeni načini uvajanja vsakega od teh?

Microsoft se ni dobro potrudil pri dokumentiranju teh dveh možnosti vsebnikov, sami pa so novi na platformi Windows Server. Glede na ta dva dejavnika bi rad posvetil celotno zgodbo o tem, katere posebne rešitve za vsebnike Windows Server 2016 bodisi zdaj ponuja v predogledu v razpoložljivih izdajah bodisi obljublja, da jih bo zagotovil pred datumom izdaje programske opreme do proizvodnje (RTM), najverjetneje v drugo polovico leta 2016.

Pregled

Trenutno sta v sistemu Windows Server 2016 prisotni dve vrsti vsebnikov: vsebniki Windows Server in Hyper-V. Oba podpirata samo Windows Server; prav tako na primer ne moreta mešati in ujemati Linuxa in / ali Unixa.

Za lene skrbnike, kot sem jaz, spravimo spredaj pomembno vprašanje: Ali je eno od obeh vrst vsebnikov težje namestiti kot drugo? Odgovor je odločno ne.

[Nadaljnje branje: Prvi pogled: zagon VM-jev v VM-jih s posodami Hyper-V]

Vrste vsebnikov se izvajajo drugače in imajo različne stopnje izolacije in zaupanja v hipervizor. Toda v bistvu je to odločitev o času uvajanja, ki jo sprejme lastnik fizičnega računalnika - lastnik gostitelja - o tem, katera vrsta vsebnika bo uporabljena, in je tako enostavno kot preverjanje pravilnega izbirnega gumba v čarovniku . Med ustvarjanjem preprosto izbirate med obema. Odločitev vpliva na to, kako Windows Server 2016 - sam operacijski sistem (hipervizor, ki sedi na dnu vseh teh stvari, deluje na siliciju in fizičnem železu) - izolira in izvrši delovne obremenitve znotraj vsakega vsebnika.

Torej, ko veste, da imata obe možnosti vsebnika enako veliko za vas, kako se pametno odločiti med njima? V bistvu gre za zaupanje: če zaupate kodi, ki se izvaja v vsebniku, potem izberete vsebnik Windows Server (beri: tradicionalni, v Dockerjevem slogu). Če kodi ne zaupate ali je ne morete preveriti ali če ni prišla od vaših notranjih razvijalcev v vaši organizaciji, je prava pot vsebnik Hyper-V. Poglejmo si podrobno vsako možnost.

Posode Windows Server

Zabojniki Windows Server so pravzaprav le del odprtokodnega projekta vsebnika Docker, zato, če pomislite na vsebnik v slogu Docker, boste pomislili na vsebnik Windows Server. Ti vsebniki so v bistvu nova vrsta navideznega stroja, ki je na nek način manj izoliran kot tradicionalni navidezni stroj - in sicer zato, ker so v večini primerov skupne stvari, ki so skupne vsem vsebnikom, ki se izvajajo na gostitelju. Med temi elementi v skupni rabi so datoteke, imeniki in zagnane storitve operacijskega sistema. To se naredi za večjo učinkovitost, saj če na gostitelju izvajate tri različne vsebnike, vsi z isto različico sistema Windows Server kot gostje, potrebujete v vsakem trenutku samo eno kopijo imenika C: \ Windows.

Ta skupna raba še vedno ločuje vsebnike od katere koli aplikacije, ki bi se lahko izvajala na gostitelju, hkrati pa zmanjšuje režijske stroške in naredi vsebnike lažje. Zaradi te skupne rabe imate več prostora na strežnik, v katerem se izvajajo vsebniki, v nasprotju s tradicionalnimi navideznimi stroji, ki so bolj izolirani in si ne delijo ničesar - in zato imajo navadno veliko več podvajanja. Prav tako bi običajno uporabljali vsebnike Windows Server, ko gostitelj in gost uporabljata isti operacijski sistem, da bi lahko izkoristili to skupno rabo; posledično ne morete zagnati vsebnika s strežnikom Ubuntu, ki se izvaja na gostitelju Windows Server 2016. (Za takšno delovno obremenitev bi uporabili tradicionalne navidezne stroje. Zabojniki za to ne bi bili primerni. Uporabili bi samo VM-je, ki jih Windows podpira od leta 2008.)

Kar je vredno, sta trenutno operacijska sistema s posodo s sliko, ki ju podpirata vsebnika Windows Server, Server Server (Windows brez grafičnega uporabniškega vmesnika) in Windows Nano Server, korenito prenovljen mikroserver, primeren za majhne vloge, usmerjene v mikro storitve. (Več o mikro storitvah v kratkem.)

Torej, kako Docker sodi v vse to? Docker ponuja "upravljalno plast" API-jev in motorjev za upravljanje zabojnikov, ki je hitro postal industrijski standard, verjetno zato, ker je Docker sam odprtokoden in se pogosto uporablja. Docker Hub, ki je na voljo vsem v internetu, je resnično skladišče aplikacij, ki se izvajajo v vsebnikih v Dockerjevem slogu.

Docker ponuja tudi mentalni okvir, s katerim se lahko razvijalci približajo dejanskemu delovanju svoje kode in gradijo celotne vsebnike okolij, ki jih zahteva njihova koda. Razvijalci v bistvu gradijo slike vsebnikov, ki jih nato dokaj enostavno prenesejo v operacije in v bistvu delujejo kot gostje tega gostitelja. S posodobitvami in popravki kode je mogoče hitro in enostavno ravnati na enak način.

Vsaka od teh slik posode lahko deluje celo na zelo majhnem delu celotne aplikacije, ki komponento reši in olajša delo v okolju, usmerjenem v mikro storitve. Z vidika velike slike delo s kontejnerji povečuje odgovornost razvijalcev pri pisanju dobre kode, ki deluje natančno v njihovem okolju. Razvijalci ne morejo več pisati kode, ki popolnoma deluje na njihovih razvojnih strojih, vendar pade, ko jo uporabimo v produkcijski programski opremi - ker sta ena in ista, mora koda delovati na obeh mestih. To tudi zmanjšuje trenje med operacijami in IT - IT s svojimi neokrnjenimi strežniškimi okolji in razvijalci, ki pričakujejo določene konfiguracije, vendar pogosto nimajo možnosti ali utemeljitve za spreminjanje proizvodnega okolja, da ustreza njihovim pričakovanjem.

Ti vsebniki Windows Server v slogu Dockerja pomenijo določeno mero zaupanja - bodisi da ste zaupali zaupanja vredno aplikacijo iz Docker Hub-a ali pa so vam notranji razvijalci ali razvijalci pogodb priskrbeli kodo, v kateri se izvaja zaupanje. Za aplikacije v vsebnikih, v katerih je zaupanja vredna koda, so priporočljivi in ​​primerni vsebniki Windows Server. Skupna raba in projekcija datotek operacijskega sistema ne bi smela biti težava za zaupanja vredno kodo.

Kaj pa se zgodi, ko je potrebna malo več varnosti, malo več izolacije z manj zaupanja vredno kodo ali aplikacijami?

Posode Hyper-V

Takrat začnete gledati zabojnike Hyper-V, ki združujejo model izolacije in abstrakcije od tradicionalnih navideznih strojev s prilagodljivostjo, sliko in enostavnimi formati za prerazporeditev vsebnikov Windows Server v slogu Docker-ja, skupaj z Docker API-jem in orodji za upravljanje, ki Razpravljal sem v prejšnjem poglavju.

Mark Russinovich, tehnični direktor za Microsoft Azure, je to lani zapisal v blogu: posode Hyper-V "izolirajo aplikacije z garancijami, povezanimi s tradicionalno virtualizacijo, vendar z lahkoto, obliko slike in modelom upravljanja Windows Server Containers, vključno z podporo Docker Engine. " Tu je razlika v stopnji izolacije: vsebniki Hyper-V datotek, procesov in storitev operacijskega sistema ne delijo neposredno z gostiteljem. Windows Server namesto tega vsako majhno sliko vsebnika zavije v navidezni stroj z zelo nizkimi stroški, kar doseže mejo abstrakcije in zaupanja, ki je vsebnik Windows Server v slogu Dockerja ne.

Vendar je ta navidezni stroj za vse namene pregleden za skrbnika. Slike posode, ki poganjajo Windows Server, razumejo, da so v resnici slike posod in ne delujejo na običajnem neoviranem siliciju, zato lahko izkoristijo optimizacije za OS, ki izhajajo iz tega zavedanja. A čeprav so te slike vsebnikov bolj izolirane, niso nameščene nič drugače kot vsebniki Windows Server. Še vedno uporabljate Docker API-je. Še vedno uporabljate odjemalca Docker. Preprosto potrdite drugo polje, vendar so slike vsebnikov same izdelane in dostavljene na enak način, ne glede na to, kateri izolacijski model želite uporabiti za njihov zagon.

Slaba stran tega pristopa: več je režijskih stroškov. Zaradi dodatne izolacije se podvoji več kode in procesov. Obstaja tudi dejstvo, da čeprav je lahek ovoj za navidezni stroj za vsebnik Hyper-V majhen, dejansko doda "davek" na stroške vodenja slike vsebnika. Medtem ko lahko napolnite zmogljivega gostitelja, polnega vsebnikov Windows Server v obliki Dockerja, bi bili vsebniki Hyper-V omejeni na določeno manjše število vsebnikov, vse ostalo pa je enako strojno.

Tudi te slike vsebnikov bi podpirale samo Windows Server. Čeprav obstaja izolacija, se slike posod in gostiteljski operacijski sistem še vedno delijo. Če torej vaše slike vsebnikov poganjajo Linux, še en okus Unixa, BSD ali katerega koli drugega nadomestnega operacijskega sistema, vam nobena od teh novih funkcij sistema Windows Server 2016 ne bo pomembna.

Bottom line: Kodo tretje osebe, tržno kodo ali kodo, ki ji noben del vaše organizacije sicer ne zaupa popolnoma, je treba izvajati v vsebnikih Hyper-V. To so tudi najboljša izbira za večnajemniške javne oblake in druga podobna okolja. Ne izgubite ničesar razen zmogljivosti in pridobite varnostne prednosti, če ste bolj izolirani.

Docker posode

Zdaj, da dokažem, da je blagovna znamka vedno najtežji del katere koli tehnologije, mi dovolite, da predstavim Dockerjeve posode. Zgoraj sem omenil, da so vsebniki Windows Server del odprtokodnega projekta Docker. Dockerji se razlikujejo od vsebnikov Windows Server. Vsebniki Windows Server lahko uporabljajo vso osnovno tehnologijo Dockerja, vendar obstoječi nabor orodij Docker za upravljanje vsebnikov Docker ne deluje (vsaj v tej izdaji) z vsebniki Windows Server. Orodja za upravljanje vsebnikov Windows Server - na tej točki kup ukazov PowerShell - ne morejo storiti ničesar pomembnega s samimi vsebniki Docker.

Docker-jevi vsebniki so njihova lastna stvar in medtem ko vsebniki sistema Windows Server delujejo kot Docker-jevi vsebniki, ker lahko delijo, vendar izolirajo - zato sem jih označil za Docker-slog Posode Windows Server - same po sebi niso vsebniki Dockerja. To se lahko v prihodnosti spremeni, zlasti v servisnem paketu ali naslednji izdaji sistema Windows Server, toda za zdaj ostajajo te tri vrste vsebnikov, čeprav so si lahko podobne, različni koncepti. Windows Server trenutno podpira le dva.

Kje je danes tehnologija

Trenutno je podpora vsebnikom v operacijskem sistemu Windows Server 2016 še vedno v teku. Premikajočih se delov v vsebnikih je veliko: Odstranjevanje odvisnosti od datotek gostitelja in operacijskega sistema ter določenih različic in ravni popravkov; doseči pravo izolacijo in zagotoviti, da nobena koda ne more preseči te meje varnosti in zaupanja; popravljanje zgodbe za razvijalce z orodji in avtomatizacijo, ki razvijalcem omogočajo, da delajo s kontejnerji v svojem prednostnem integriranem razvojnem okolju (IDE) in "izvozijo" svoje aplikacije neposredno v vsebnik; zagotavljanje nemotenega premikanja zabojnikov v javni oblak gor in dol; in več.

V vseh teh primerih so še vedno usodne napake in napake, ki jih je treba odpraviti. Če so vsebniki ključnega pomena za vaš načrt ponudbe storitev v vaši trgovini, boste morda želeli zdaj preizkusiti zmogljivosti vsebnikov Windows Server in vsebnikov Hyper-V in še posebej preveriti razpoložljive ukaze PowerShell za omogočanje vsebnikov in njihovo upravljanje. na gostitelju Windows Server 2016.

Če pa so zabojniki lepa možnost, vendar je ni treba imeti za vašo organizacijo, bi bilo moje informirano priporočilo, da zadržite vse, razen najbolj osnovnega raziskovanja s pomočjo 4-bitnega tehničnega predogleda. Še vedno je preveč bradavic - vključno s prej omenjenimi usodnimi napakami in hrošči -, da bi resnično dobili celovit občutek, kaj se dogaja.

Podpora vsebnikom bo vznemirljiv dodatek platformi Windows. Veliko te zgodbe je še treba napisati in povedati.

To zgodbo "Zabojniki v operacijskem sistemu Windows Server 2016: Kaj morate vedeti" je prvotno objavil Computerworld.

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