Ohjelmointi

Säilöt Windows Server 2016: ssa: mitä sinun tarvitsee tietää

Tarinassa, jonka kirjoitin Tietokonemaailma Tammikuussa, joka oli Windows Server 2016: n teknisen esikatselun 4 tarkistus, mainitsin Windows Serverin uuden tuen Hyper-V-säilöille, joka oli lisätty sen tukeen Docker-tyylisille säiliöille (beetatuotteessa edellisen beta-virstanpylvään julkaisun jälkeen) ).

Kahden konttivaihtoehdon läsnäolo on kuitenkin herättänyt paljon kysymyksiä. Mitä eroa on Docker-kontilla ja uudella Hyper-V-kontilla? Missä skenaarioissa haluat käyttää yhtä säilöratkaisua toisen päälle? Onko olemassa erillisiä menetelmiä näiden käyttöönottamiseksi?

Microsoft ei ole tehnyt kovaa työtä dokumentoidessaan näitä kahta säilytysvaihtoehtoa, ja itse säilöt ovat uusia Windows Server -alustalle. Ottaen huomioon nämä kaksi tekijää haluan omistaa koko tarinan mihin erityisiin säilytysratkaisuihin Windows Server 2016 joko tarjoaa esikatselun muodossa saatavilla olevissa julkaisuissa tai lupaa tarjota ennen ohjelmiston julkaisua valmistuspäivämäärään, todennäköisesti vuoden 2016 jälkipuoliskolla.

Yleiskatsaus

Windows Server 2016: ssa on tällä hetkellä kahden tyyppisiä säilöjä: Windows Server- ja Hyper-V-säilöt. Molemmat tukevat vain Windows Serveria; kumpikaan ei voi sekoittaa esimerkiksi Linuxia ja / tai Unixia.

Minun kaltaisten laiskojen järjestelmänvalvojien on päästävä tärkeä kysymys eteenpäin: Onko toinen kahdesta konttityypistä vaikeampaa ottaa käyttöön kuin toinen? Vastaus on painokkaasti ei.

[Lisätietoja: Ensimmäinen katsaus: Suorita virtuaalikoneita virtuaalikoneissa, joissa on Hyper-V-kontteja]

Säilötyypit suoritetaan eri tavalla, ja niiden eristyneisyys ja luottamus hypervisoriin ovat erilaiset. Mutta ytimessä tämä on fyysisen koneen omistajan - isännän omistajan - tekemä käyttöönottoaikainen päätös siitä, minkä tyyppistä säilöä käytetään, ja se on yhtä helppoa kuin tarkistaa ohjatun toiminnon oikea valintanappi. . Voit yksinkertaisesti valita näiden kahden välillä luomishetkellä. Päätös vaikuttaa siihen, miten Windows Server 2016 - itse käyttöjärjestelmä (hypervisori, joka istuu kaikkien näiden tavaroiden pohjalla, toimii piillä ja fyysisellä raudalla) - eristää ja suorittaa kuormat kunkin säiliön sisällä.

Joten nyt, kun tiedät, että kumpikin konttivaihtoehto on sama määrä työtä sinulle, kuinka voit älykkäästi päättää näiden kahden välillä? Pohjimmiltaan se tulee luottamukseen: Jos luotat säilössä toimivaan koodiin, valitset Windows Server (lue: perinteinen, Docker-tyylinen) säilö. Jos et luota koodiin tai et voi vahvistaa sitä tai jos se ei ole peräisin organisaatiosi sisäisiltä kehittäjiltä, ​​Hyper-V-säilö on oikea tapa. Katsotaanpa kutakin vaihtoehtoa yksityiskohtaisesti.

Windows Server -säilöt

Windows Server -säilöt ovat itse asiassa vain osa Docker-avoimen lähdekoodin säilöprojektia, joten jos ajattelet Docker-tyylistä säilöä, ajattelet Windows Server -säiliötä. Nämä säilöt ovat pohjimmiltaan uuden tyyppisiä virtuaalikoneita, joilla on tavallaan vähemmän eristystä kuin perinteisellä virtuaalikoneella - nimittäin siksi, että monissa tapauksissa kaikille isännässä käynnissä oleville säilöille on yhteisiä asioita. Näiden jaettujen kohteiden joukossa ovat käyttöjärjestelmätiedostot, hakemistot ja käynnissä olevat palvelut. Tämä tehdään tehokkuuden lisäämiseksi, koska jos isännällä on kolme erilaista säilöä, joilla kaikilla on sama Windows Server -versio kuin vierailijoilla, tarvitset vain yhden kopion C: \ Windows-hakemistosta milloin tahansa.

Tämä jakaminen erottaa säiliöt silti kaikista sovelluksista, jotka saattavat toimia isännässä - mutta se myös vähentää yleiskustannuksia ja tekee säiliöistä kevyempiä. Sinulla on enemmän pinta-alaa palvelinta kohden, jossa on säilöjä tämän jakamisen takia, toisin kuin perinteisten virtuaalikoneiden käyttäminen, jotka ovat erillisempiä ja eivät jaa mitään - ja näin ollen niillä on yleensä paljon enemmän päällekkäisyyksiä. Käytät yleensä myös Windows Server -säilöjä, kun isäntäsi ja vieraasi käyttävät samaa käyttöjärjestelmää hyödyntääkseen tätä jakamista; tämän seurauksena et voi suorittaa säilöä Ubuntu Serverin kanssa, joka toimii Windows Server 2016 -isännässä. (Tämän tyyppiseen työmäärään käytettäisiin perinteisiä virtuaalikoneita. Säiliöt eivät sovi tähän. Käytä vain virtuaalikoneita, joita Windows on tukenut vuodesta 2008 lähtien.)

Siksi mitä kannattaa, tällä hetkellä kaksi Windows Server -säiliön tukemaa kontti-kuva-käyttöjärjestelmää ovat Server Core (Windows ilman graafista käyttöliittymää) ja Windows Nano Server, radikaalisti uudistettu mikropalvelin, joka soveltuu pienille mikropalveluihin suuntautuneille rooleille. (Lisää mikropalveluista vähän.)

Joten miten Docker sopii tähän kaikkeen? Docker tarjoaa "hallintatason", jos haluat, API: sta ja moottoreista konttien hallintaan - sellaisesta, josta on nopeasti tullut alan standardi, todennäköisesti siksi, että Docker itse on avoimen lähdekoodin ja laajalti käytetty. Docker Hub, jota kuka tahansa voi käyttää Internetissä, on todellinen markkinapaikka-tyyppinen arkisto sovelluksista, jotka kaikki toimivat Docker-tyylisissä säilöissä.

Docker tarjoaa myös henkisen kehyksen, jonka avulla kehittäjät voivat tulla lähemmäs koodinsa todellista toimintaa ja rakentaa kokonaisia ​​kontteja ympäristöistä, joita heidän koodinsa edellyttävät. Kehittäjät rakentavat lähinnä konttikuvia, jotka sitten siirretään melko helposti toimintoihin, ja toimivat pääosin sellaisina kuin he ovat tämän isännän vierailijoina. Päivityksiä ja koodin korjauksia voidaan käsitellä nopeasti ja helposti samalla tavalla.

Jokainen näistä säiliökuvista saattaa jopa toimia hyvin pienellä osalla kokonaissovellusta, mikä komponentti muodostaa ratkaisun ja helpottaa työskentelyä mikropalveluihin suuntautuneessa ympäristössä. Suurikokoisesta näkökulmasta käsitteleminen konttien kanssa lisää kehittäjien vastuullisuutta kirjoittaa hyvää koodia, joka toimii tarkalleen heidän ympäristössään. Kehittäjät eivät voi enää kirjoittaa koodia, joka toimii täydellisesti heidän kehityskoneillaan, mutta kaatuu, kun ne otetaan käyttöön tuotanto-ohjelmistoihin - koska he ovat yksi ja sama, koodin on toimittava molemmissa paikoissa. Tämä vähentää myös toiminnan ja IT - IT: n välistä kitkaa koskemattomilla palvelinympäristöillä ja kehittäjillä, jotka odottavat tiettyjä kokoonpanoja, mutta joilla ei usein ole kykyä tai perustetta muuttaa tuotantoympäristöjä heidän odotustensa mukaisesti.

Nämä Docker-tyyliset Windows Server -säilöt merkitsevät jonkin verran luottamusta - joko siihen, että olet ladannut luotettavan sovelluksen Docker Hubista, tai että sisäiset kehittäjät tai sopimuskehittäjät toimittivat sinulle luotettavan säilön käynnissä olevan koodin. Säilöissä oleville sovelluksille, joissa on luotettu koodi, Windows Server -säilöt ovat suositeltavia ja sopivia. Käyttöjärjestelmän tiedostojen jakamisen ja heijastamisen ei pitäisi olla ongelma luotettavassa koodissa.

Mutta mitä tapahtuu, kun tarvitaan hieman enemmän turvallisuutta, hieman enemmän eristystä ja vähemmän luotettavia koodeja tai sovelluksia?

Hyper-V-astiat

Silloin aloitat tarkastelemalla Hyper-V-kontteja, jotka menevät naimisiin perinteisten virtuaalikoneiden eristämisen ja poistamisen mallin kanssa Docker-tyylisten Windows Server -säiliöiden joustavuuden, kuvan ja helpon uudelleensijoittamismuodon sekä Docker-sovellusliittymän ja hallintatyökalujen kanssa. Käsittelin edellisessä osassa.

Mark Russinovich, Microsoft Azure -yrityksen johtaja, sanoi sen viime vuonna blogimerkinnässä: Hyper-V-kontit "eristävät sovellukset perinteiseen virtualisointiin liittyvillä takuilla, mutta Windows Server Containersin helppoudella, kuvamuodolla ja hallintamallilla, mukaan lukien Docker Enginen tuki. " Ero tässä on eristystaso: Hyper-V-säilöt eivät jaa käyttöjärjestelmän tiedostoja, prosesseja ja palveluita suoraan isännän kanssa. Pikemminkin Windows Server kääri jokaisen pienen säiliökuvan erittäin pienikokoiseen virtuaalikoneeseen, mikä saavuttaa abstraktio- ja luottorajan, jota Docker-tyylinen Windows Server -säiliö ei.

Tämä virtuaalikone on kuitenkin kaikilta osin avoin järjestelmänvalvojalle. Itse Windows Server -palvelinta käyttävät säilökuvat ymmärtävät, että ne ovat itse asiassa konttikuvia eikä käynnissä tavallisella vapaana olevalla piillä, ja pystyvät siten hyödyntämään käyttöjärjestelmän optimointeja, jotka tulevat tästä tietoisuudesta. Mutta vaikka nämä säilökuvat ovat erillisempiä, niitä ei ole asennettu eri tavalla kuin Windows Server -säilöjä. Käytät edelleen Docker-sovellusliittymiä. Käytät edelleen Docker-asiakasta. Valitset vain toisen valintaruudun, mutta säilökuvat itse rakennetaan ja toimitetaan samalla tavalla riippumatta siitä, mitä eristysmallia haluat käyttää niiden suorittamiseen.

Tämän lähestymistavan haittapuoli: Ylimääräisiä kustannuksia on enemmän. Lisäeristyksen vuoksi useampi koodi ja prosessit kopioidaan. On myös tosiasia, että vaikka kevyt virtuaalikoneen kääre Hyper-V-kontille on pieni, se todellakin lisää "veroa" konttikuvan käyttökustannuksiin. Joten vaikka voit täyttää tehokkaan isännän täynnä Docker-tyylisiä Windows Server -säiliöitä, Hyper-V-säiliöt rajoitettaisiin tiettyyn pienempään määrään säiliöitä, kaikki muut olisivat yhtä lailla laitteistokohtaisia.

Jälleen nämä säiliökuvat tukisivat vain Windows Serveria. Vaikka säilytyskuvien ja isäntäkäyttöjärjestelmän välillä onkin yhteinen yhteenkuuluvuus, on eristyneisyyttä. Joten jos konttikuvissasi on Linux, toinen Unixin, BSD: n tai muun vaihtoehtoisen käyttöjärjestelmän maku, mikään näistä uusista Windows Server 2016 -ominaisuuksista ei ole sinulle tärkeä.

Alarivi: Kolmannen osapuolen koodi, markkinapaikkakoodi tai koodi, johon organisaation mikään osa ei muuten luottaa, tulisi suorittaa Hyper-V-säilöissä. Nämä ovat myös paras valinta monivärisiin julkisiin pilviin ja muihin vastaaviin ympäristöihin. Et menetä muuta kuin kapasiteettia ja saat turvaetuja eristyneisyydestäsi.

Telakointiasemat

Nyt voin todistaa, että brändäys on aina vaikein osa tekniikkaa, sallikaa minun esitellä Docker-kontit. Edellä mainitsin, että Windows Server -säilöt ovat osa Docker-avoimen lähdekoodin projektia. Docker-säilöt eroavat Windows Server -säilöistä. Windows Server -säilöt voivat käyttää kaikkea Dockerin taustalla olevaa tekniikkaa, mutta nykyinen Docker-työkalusarja Docker-säilöjen hallintaan ei toimi (ainakin tässä julkaisussa) Windows Server -säiliöiden kanssa. Myöskään Windows Server -säilönhallintatyökalut - tässä vaiheessa joukko PowerShell-komentoja - eivät voi tehdä mitään arvokasta itse Docker-säilöjen kanssa.

Docker-kontit ovat heidän omia erityispiirteitään, ja vaikka Windows Server -säiliöt toimivat kuin Docker-säilöt kyvyssä jakaa, mutta eristää - siksi olen kutsunut niitä Docker-tyyli Windows Server -säilöt - ne eivät sinänsä ole Docker-säilöjä. Tämä voi muuttua tulevaisuudessa, erityisesti Service Pack -paketissa tai seuraavassa Windows Server -julkaisussa, mutta toistaiseksi nämä kolme säilötyyppiä, vaikka ne kaikki saattavat olla samanlaisia, ovat edelleen erillisiä käsitteitä. Windows Server tukee tällä hetkellä vain kahta.

Missä tekniikka on tänään

Tällä hetkellä Windows Server 2016: n säilötuki on hyvin kesken. Säiliöihin on paljon liikkuvia osia: Riippuvuuksien poistaminen isäntä- ja käyttöjärjestelmätiedostoista sekä tietyt versiot ja korjaustiedostot; oikean eristyksen saavuttaminen ja koodin puuttuminen ei voi rikkoa tätä turvallisuus- ja luottamusrajaa; kehittäjän tarinan tekeminen oikein työkaluilla ja automaatiolla, joiden avulla kehittäjät voivat työskennellä säiliöiden kanssa haluamassaan integroidussa kehitysympäristössä (IDE) ja "viedä" sovelluksensa suoraan säilöön; varmistamalla, että kontit voivat liikkua ylös ja alas julkiseen pilveen saumattomasti; ja enemmän.

Kaikissa näissä tapauksissa on edelleen kohtalokkaita virheitä ja virheitä. Jos säilöt ovat ratkaisevan tärkeitä kaupan palvelutarjontaasi nähden, sinun kannattaa ehkä aloittaa Windows Server -säiliöiden ja Hyper-V-säilöjen ominaisuuksien testaaminen nyt ja etenkin tarkistaa käytettävissä olevat PowerShell-komennot säilöjen käyttöönottamiseksi ja hallitsemiseksi Windows Server 2016 -isännässä.

Kuitenkin, jos kontit ovat mukava vaihtoehto, mutta ei välttämätöntä organisaatiollesi, niin tietoiseksi suosituksekseni olisi pidättyä yrittämästä muuta kuin kaikkein alkeellisinta etsintää käyttämällä teknisen esikatselun 4 bittiä. Syyliä on edelleen aivan liian paljon - mukaan lukien aiemmin mainitut kohtalokkaat virheet ja virheet - saadakseen todella yhtenäisen käsityksen siitä, mitä tapahtuu.

Konttituki on jännittävä lisäys Windows-alustalle. Tarina on vielä kirjoitettavana ja kerrottavana paljon.

Tämän tarinan "Containers in Windows Server 2016: What you need to know" julkaisi alun perin Computerworld.