Spremnici u sustavu Windows Server 2016: Što trebate znati

U priči koju sam napisao za Computerworld u siječnju, a to je bila recenzija tehničkog pregleda sustava Windows Server 2016 4, spomenuo sam novu podršku sustava Windows Server za Hyper-V spremnike koja je dodana podršci za spremnike u stilu Docker (prisutna u beta verziji) proizvoda od prethodnog izdanja beta prekretnice).

Međutim, prisutnost dvije mogućnosti spremnika dovela je do puno pitanja. Koja je razlika između Docker spremnika i novog Hyper-V spremnika? U kojim biste scenarijima željeli koristiti jedno rješenje za spremnike u odnosu na drugo? Postoje li zasebne metode raspoređivanja svake od njih?

Microsoft nije obavio sjajan posao u dokumentiranju ove dvije mogućnosti spremnika, a sami spremnici novi su na platformi Windows Server. S obzirom na ta dva čimbenika, želim posvetiti cijelu priču onim specifičnim rješenjima spremnika koje Windows Server 2016 nudi sada u obliku pregleda u dostupnim izdanjima ili obećava da će ih pružiti prije datuma izdanja softvera na proizvodnju (RTM), najvjerojatnije u druga polovina 2016.

Pregled

Trenutno postoje dvije vrste spremnika u sustavu Windows Server 2016: spremnici Windows poslužitelja i Hyper-V spremnici. Oboje podržavaju samo Windows Server; na primjer, ne mogu se miješati i podudarati Linux i / ili Unix.

Za lijene administratore poput mene, maknimo važno pitanje: Je li jedan od dva tipa spremnika teže primijeniti od drugog? Odgovor je odlučan ne.

[Daljnje čitanje: Prvi pogled: Pokretanje VM-ova u VM-ima s Hyper-V spremnicima]

Tipovi spremnika izvršavaju se različito i imaju različite razine izolacije i povjerenja u hipervizor. Ali u osnovi je ovo odluka o vremenu implementacije koju donosi vlasnik fizičkog stroja - vlasnik hosta - o tome koja će se vrsta spremnika koristiti, a jednostavna je kao provjera ispravnog radio gumba u čarobnjaku . Jednostavno birate između njih dvoje u vrijeme stvaranja. Odluka utječe na to kako Windows Server 2016 - sam operativni sustav (hipervizor, koji sjedi na dnu svih ovih stvari, radi na siliciju i fizičkom željezu) - izolira i izvršava radna opterećenja unutar svakog spremnika.

Dakle, sada kad znate da je bilo koja opcija spremnika za vas jednak posao, kako inteligentno odlučiti između njih dvije? U osnovi se svodi na povjerenje: ako vjerujete kodu pokrenutom unutar spremnika, tada biste odabrali spremnik Windows poslužitelja (čitaj: tradicionalni, u Docker-u). Ako ne vjerujete kodu ili ga ne možete provjeriti ili ga niste dobili od vaših internih programera unutar vaše organizacije, tada je put Hyper-V spremnik. Pogledajmo pojedinosti svake pojedinosti.

Spremnici za Windows Server

Spremnici Windows poslužitelja zapravo su samo dio projekta spremnika otvorenog koda Docker, pa ako mislite na spremnik u stilu Docker, razmišljat ćete o spremniku Windows poslužitelja. Ti su spremnici u osnovi nova vrsta virtualnog stroja koji na neki način ima manje izolacije od tradicionalnog virtualnog stroja - naime zato što se u puno slučajeva dijele stvari zajedničke svim spremnicima pokrenutim na hostu. Među tim dijeljenim stavkama su datoteke operativnog sustava, direktoriji i pokrenute usluge. To je učinjeno radi veće učinkovitosti, jer ako na računaru izvodite tri različita spremnika, svi s istom verzijom sustava Windows Server kao gosti, u bilo kojem trenutku potrebna vam je samo jedna kopija direktorija C: \ Windows.

Ovo dijeljenje i dalje odvaja spremnike od bilo koje dane aplikacije koja se može izvoditi na hostu, ali također smanjuje troškove i čini spremnike lakšima. Zbog ovog dijeljenja imate više prostora po poslužitelju koji izvodi spremnike, za razliku od izvođenja tradicionalnih virtualnih strojeva, koji su izoliraniji i ne dijele ništa - i na taj način imaju mnogo više dupliciranja. Također biste obično koristili spremnike Windows Servera kada vaš domaćin i gost koriste isti operativni sustav kako bi iskoristili ovo dijeljenje; kao rezultat toga, ne možete pokrenuti spremnik s Ubuntu poslužiteljem koji se izvodi na hostu Windows Server 2016. (Za tu vrstu radnog opterećenja koristili biste tradicionalne virtualne strojeve. Spremnici za to ne bi bili prikladni. Koristili biste samo VM-ove koji su podržani u sustavu Windows od 2008.)

Koliko vrijedi, trenutno su dva operativna sustava sa slikovnim spremnicima podržana od Windows Server spremnika Server Server (Windows bez grafičkog korisničkog sučelja) i Windows Nano Server, radikalno preuređeni mikroserver pogodan za male uloge usmjerene na mikroservise. (Malo više o mikrouslugama.)

Pa, kako se Docker uklapa u sve ovo? Docker nudi "upravljački sloj" API-ja i motora za upravljanje spremnicima, koji je brzo postao industrijski standard, vrlo vjerojatno jer je sam Docker otvoreni izvor i široka je upotreba. Docker Hub, dostupan svima za upotrebu na Internetu, pravo je spremište aplikacija u stilu tržišta koje se rade u spremnicima u stilu Docker.

Docker također pruža mentalni okvir koji programeri mogu koristiti za približavanje stvarnom radu svog koda i za izradu cijelih spremnika okruženja koja njihov kôd treba za pokretanje. Razvojni programeri u osnovi grade slike kontejnera, koje se zatim prilično lako prenose u operacije i izvode se u osnovi kao gosti na tom hostu. Ažuriranja i ispravci koda mogu se brzo i jednostavno rukovati na isti način.

Svaka od ovih slika spremnika možda čak djeluje na vrlo malom dijelu cjelokupne aplikacije, koja komponentu orijentira i olakšava rad u okruženju orijentiranom na mikro usluge. Iz perspektive velike slike, rad s spremnicima povećava odgovornost programera za pisanje dobrog koda koji radi točno u njihovom okruženju. Programeri više ne mogu pisati kôd koji savršeno funkcionira na njihovim razvojnim strojevima, ali padne kad se instalira na proizvodnom softveru - budući da su oni jedno te isto, kôd mora raditi na oba mjesta. To također smanjuje trvenje između operacija i IT-IT-a sa svojim netaknutim poslužiteljskim okruženjima i programerima koji očekuju određene konfiguracije, ali često nemaju sposobnost ili obrazloženje da promijene proizvodno okruženje u skladu sa svojim očekivanjima.

Ovi spremnici Windows poslužitelja u stilu Dockera podrazumijevaju izvjesnu količinu povjerenja - bilo da ste preuzeli pouzdanu aplikaciju s Docker Hub-a ili da su vam interni programeri ili programeri s ugovorima dali spremnik koji izvodi kôd kojem vjerujete. Za aplikacije u spremnicima u kojima se nalazi pouzdani kôd, spremnici za Windows Server preporučuju se i odgovaraju. Dijeljenje i projekcija datoteka operativnog sustava ne bi trebalo predstavljati problem za pouzdani kôd.

Ali što se događa kada je potrebno malo više sigurnosti, malo više izolacije, s manje pouzdanim kodom ili aplikacijama?

Hyper-V spremnici

Tada započinjete s gledanjem Hyper-V spremnika koji ožiču model izolacije i apstrakcije od tradicionalnih virtualnih strojeva fleksibilnošću, slikom i jednostavnim formatima preraspodjele spremnika Windows Server u stilu Docker, zajedno s Docker API-jem i alatima za upravljanje Raspravljao sam u prethodnom odjeljku.

Mark Russinovich, glavni tehnički direktor za Microsoft Azure, to je tako izrazio prošle godine u blogu: Hyper-V spremnici "izoliraju aplikacije jamstvima povezanima s tradicionalnom virtualizacijom, ali s lakoćom, formatom slike i modelom upravljanja Windows Server Containers, uključujući podrška Docker Enginea. " Ovdje je razlika u razini izolacije: Hyper-V spremnici ne dijele izravno datoteke, procese i usluge operativnog sustava s hostom. Umjesto toga, Windows Server omotava svaku sliku malog spremnika u virtualni stroj s vrlo malo troškova, čime se postiže granica apstrakcije i povjerenja koju Windows Server spremnik u stilu Dockera ne čini.

Međutim, ovaj virtualni stroj je za sve namjere i svrhe transparentan za administratora. Same slike spremnika koje pokreću Windows Server razumiju da su one zapravo slike spremnika i da se ne izvode na uobičajenom nesputanom siliciju, te su stoga sposobne iskoristiti optimizacije OS-a koje proizlaze iz te svijesti. No iako su te slike spremnika izoliranije, one se ne primjenjuju drugačije od spremnika Windows poslužitelja. I dalje koristite Docker API-je. Još uvijek koristite Docker klijent. Samo označite drugi okvir, ali same slike spremnika izrađuju se i isporučuju na isti način, bez obzira na to koji izolacijski model želite koristiti za njihovo pokretanje.

Loša strana ovog pristupa: više je režije. Zbog dodatne izolacije duplicira se više koda i procesa. Tu je i činjenica da, iako je lagani omot virtualnog stroja za Hyper-V spremnik malen, uistinu dodaje "porez" na troškove izvođenja slike spremnika. Dakle, iako možete napuniti moćan domaćin pun spremnika Windows Server spremnika u stilu Docker, Hyper-V spremnici bit će ograničeni na određeni manji broj spremnika, a sve ostalo je jednako hardverski.

Opet, ove slike spremnika podržavale bi samo Windows Server. Iako postoji izolacija, i dalje postoji zajedništvo između slika spremnika i operativnog sustava domaćina. Dakle, ako vaše slike spremnika pokreću Linux, drugi okus Unixa, BSD-a ili bilo koji drugi alternativni operativni sustav, nijedna od ovih novih značajki Windows Server 2016 neće vam biti važna.

Dno crta: Kôd treće strane, tržišni kôd ili kôd kojem niti jedan dio vaše organizacije ne vjeruje u potpunosti, trebao bi se izvoditi u Hyper-V spremnicima. To su ujedno i najbolji izbor za multitenant javne oblake i druga slična okruženja. Ne gubite ništa osim kapaciteta i stječete sigurnosne prednosti izoliranosti.

Docker kontejneri

Sada kako bih dokazao da je brendiranje uvijek najteži dio bilo koje tehnologije, dopustite mi da predstavim Dockerove spremnike. Iznad sam spomenuo da su spremnici za Windows Server dio projekta otvorenog koda Docker. Dockerovi spremnici razlikuju se od Windows Server spremnika. Spremnici za Windows Server mogu koristiti svu osnovnu tehnologiju Dockera, ali postojeći Docker skup alata za upravljanje spremnicima Docker ne radi (barem u ovom izdanju) s spremnicima za Windows Server. Alati za upravljanje spremnikom Windows Server - u ovom trenutku gomila naredbi PowerShell - ne mogu učiniti ništa vrijedno sa samim Docker spremnicima.

Docker spremnici su njihova specifična stvar, i dok se Windows Server spremnici ponašaju poput Docker spremnika u svojoj sposobnosti dijeljenja, ali izoliranja - zbog čega sam ih i nazvao Windows Server spremnicima u stilu Docker - oni sami po sebi nisu Docker spremnici . To se može promijeniti u budućnosti, posebno u servisnom paketu ili sljedećem izdanju Windows poslužitelja, ali zasad ove tri vrste spremnika, iako svi mogu biti slični, ostaju različiti koncepti. Windows Server trenutno podržava samo dva.

Gdje je tehnologija danas

Trenutno je podrška za spremnike u sustavu Windows Server 2016 uvelike u tijeku. Puno je pokretnih dijelova u spremnicima: Uklanjanje ovisnosti o datotekama hosta i operativnog sustava, te specifičnim verzijama i razinama zakrpa; postizanje prave izolacije i osiguravanje da nijedan kôd ne može prekršiti tu granicu sigurnosti i povjerenja; ispravljanje priče za programere pomoću alata i automatizacije koji programerima omogućuju rad sa spremnicima u njihovom preferiranom integriranom razvojnom okruženju (IDE) i "izvoz" njihovih aplikacija izravno u spremnik; osiguravanje nesmetanog kretanja gore-dolje u javni oblak; i više.

U svim tim slučajevima još uvijek postoje fatalne pogreške i greške koje treba riješiti. Ako su spremnici presudni za vaš putokaz ponuda usluga u vašoj trgovini, tada biste možda trebali početi testirati mogućnosti spremnika Windows Server i Hyper-V spremnika, a posebno provjeriti PowerShell naredbe dostupne za omogućavanje spremnika i upravljanje njima na računaru sa sustavom Windows Server 2016.

Međutim, ako su spremnici lijepa opcija, ali ne moraju je imati u vašoj organizaciji, moja informirana preporuka bila bi da se zaustavi u pokušaju bilo čega osim najjednostavnijeg istraživanja pomoću Tehničkog pregleda 4 bita. Još uvijek postoji previše previše bradavica - uključujući one ranije spomenute fatalne pogreške i greške - da bismo zaista stekli kohezivan osjećaj što se događa.

Podrška za spremnike bit će uzbudljiv dodatak Windows platformi. Mnogo je te priče ostalo napisati i ispričati.

Ovu je priču "Spremnici u sustavu Windows Server 2016: što trebate znati" izvorno objavio Computerworld.