Programmēšana

Kas jums jāzina par Docker sistēmā Windows

Pagājušās nedēļas beigas pavadīju Londonas izstrādātāju konferencē Monki Gras, kas koncentrējās uz programmatūras izstrādes amatu. Tas ir aizraujošs notikums, un šogad tas koncentrējās uz programmatūras iepakošanu.

Nav pārsteidzoši, ka daudzi runātāji runāja par konteineru lomu izvadīšanā un nepārtrauktā piegādē. Bet pastāv vispārējs nepareizs priekšstats par Windows atbalstu konteineriem, ko parasti raksturo kā atbalstu Docker, kas darbojas Linux virtuālajās mašīnās.

Tā nav taisnība: Windows ir savas konteineru tehnoloģijas, kas balstās uz Docker, bet piešķir tai unikālu Microsoft spin. Tas, iespējams, ir neskaidrību avots - Windows 10 aptuveni tajā pašā laikā pievienojot atbalstu Linux apakšsistēmai un Microsoft pievienojot Docker rīkus Windows Server 2016. Abi ir daļa no Microsoft pieejas mākoņdatošanas lietojumprogrammu izstrādei, kas ir tās Azure platformas galvenais elements.

Microsoft saistībām ar konteineriem, kas ir viens no svarīgākajiem starpnozaru sasniegumiem pēdējos gados, nevajadzētu pārsteigt. Varbūt vislabāk tiek domāts par veidu, kā iekapsulēt visu lietotāju zemi ar procesiem un nosaukumvietām, lai to izolētu no citām instancēm, kas darbojas tajā pašā serverī, konteineri ir ātri kļuvuši par galveno devops un nepārtrauktas integrācijas ieviešanas sastāvdaļu. Microsoft ir ātri izmantojis šīs pieejas iekšēji, un, kā vienmēr, tās rīki atspoguļo to, kā Redmonds izmanto programmatūru un kā tas veido lietojumprogrammas.

Izpratne par konteineriem

Atdalot lietojumprogrammas izmantotos pakalpojumus no OS nepieciešamajiem pakalpojumiem, mūsdienīgi konteineri ir kļuvuši par spēcīgu rīku programmu iesaiņošanai un izvietošanai serveros. Konteineri piedāvā pārnesamību starp attīstības, lokālajiem datu centriem un privātajiem, hibrīdajiem un publiskajiem mākoņiem. Konteinerā ietītas lietojumprogrammas ir neatkarīgas no resursdatora OS, un bez izmaiņām tās var palaist jebkurā līdzīgā konteinera resursdatorā.

Lietotnes iesaiņošana konteinerā nozīmē, ka lietojumprogrammu ir viegli izvietot kopā ar visiem atbilstošajiem konfigurācijas failiem un atkarībām: Ja konteiners darbojas izstrādes mašīnā vai iztur visus jūsu integrācijas testus, tas darbosies serverī bez izmaiņām. Varat mainīt konteineru jaunai versijai, neietekmējot pamatā esošo OS, un konteineru varat pārvietot no servera uz serveri, neietekmējot kodu. Tas ir devops modeļa loģiskais galapunkts, kas ļauj atsevišķi izvietot infrastruktūru un lietojumprogrammas - un pārvaldīt tās atsevišķi.

Sākotnēji lieldatoru tehnoloģija, konteinerus (vai vismaz līdzīgas nosaukumvietas un procesu izolēšanas formas) varēja atrast daudzās Unix OS, tostarp Linux un Solaris.

Windows konteineru iekšpusē

Tagad, izlaižot Windows Server 2016, Windows ir sava konteineru tehnoloģija. Tas ir balstīts uz populāro atvērtā koda Docker konteineru servisu, taču tas papildina atbalstu PowerShell komandrindas izmantošanai un papildu izolācijai, apvienojot plānos uz konteineriem orientētos Nano Server un Hyper-V konteinerus.

Dokers joprojām ir Microsoft konteineru stratēģijas centrā. Tās rīki, piemēram, Swarm un Machine, tiek plaši izmantoti, un datu centra produkts var pārvaldīt gan Windows, gan Linux konteinerus. Jūs pat varat izmantot Docker klientu no čaulas Bash, kas ir daļa no Windows 10, instalējot to Windows apakšsistēmā Linux. Šāda pieeja prasa žonglēt ar sertifikātiem, tāpēc varat izvēlēties izmantot Docker Windows lietotni kā izstrādes un pamata pārvaldības rīku gan jūsu Windows, gan Linux konteineriem.

Windows konteineri, tāpat kā daudzas Windows Server funkcijas, ir loma, kuru var instalēt, izmantojot pazīstamo Windows funkciju dialoglodziņu vai PowerShell. PowerShell maršruta izvēle ir visjēdzīgākā, jo ir OneGet PowerShell modulis, kas instalē gan Windows konteineru funkciju, gan Docker, lai sāktu darbu, ir nepieciešama tikai viena atsāknēšana. (Jums arī jāiespējo Hyper-V virtualizācija, ja vēlaties izmantot Hyper-V konteinerus.)

Pārsteidzoši daudz entuziasma par Windows konteineriem ir gan izstrādātājiem, gan ops komandām; Kopš Windows Server 2016 vispārējās pieejamības Microsoft ir ziņojis par vairāk nekā 1 miljonu Windows bāzes attēlu lejupielādēšanu no Docker's Hub konteineru bibliotēkas.

Konteineru veidošana un izvietošana operētājsistēmā Windows

Konteineri ir ne tikai servera rīks; Windows 10 Anniversary Edition profesionālā un uzņēmuma versija atbalsta arī konteinerus. Jums tie būs jāiespējo dialoglodziņā Windows līdzekļi, bet pēc iespējošanas jūs varat instalēt un pārvaldīt Windows konteinerus izstrādes datorā, izmantojot PowerShell. Tā kā Windows 10 atbalsta tikai Hyper-V konteinerus, jums būs jāinstalē arī Hyper-V.

Kad būs iespējoti Windows konteineri, jums būs jālejupielādē un jāinstalē Docker Engine un Docker klients un jāinstalē pamata attēli, kas jākonfigurē jūsu lietojumprogrammai.

Microsoft ierosinātais jaunizveidoto Windows konteineru pamatattēls ir Nano Server, tā mākoņorientētā servera ieviešana. Nano Server ir daudz jēgas kā konteineru bāzei: tas ir mazs un ātrs, bez lietotāja saskarnes, tāpēc ir ātri izvietojams un samērā drošs.

Viena svarīga piezīme: lai gan to var izmantot tādu izpildlaiku kā Node.js mitināšanai, Nano Server ir paredzēts mitināt .Net Core lietojumprogrammas, ieskaitot ASP.Net Core, tāpēc jūs nesaņemsit visas pierastās .Net funkcijas . Atšķirības no pazīstamā Windows Server ir pietiekami daudz, ka varbūt vislabāk ir domāt par Nano Server mitinātajiem Windows konteineriem kā rīku jaunām lietojumprogrammām, nevis kā esošā koda resursdatoru.

Šīs atšķirības izskaidro, kāpēc daudzi uzņēmumi izmanto Windows Server Core kā bāzes attēlu. Lai gan tā ir lielāka un tās izvietošana prasa ilgāku laiku nekā Nano Server, Windows Server Core piedāvā atbalstu pašreizējiem Windows SDK un pilnīgu .Net ieviešanu. Ir daudz vieglāk ātri pārvietot esošo kodu uz Server Core, dodot jums iespēju, kā Windows Server un Hyper-V konteineru vadošais programmu pārvaldnieks Teilors Brauns to sauc: "pacelt un pārvietot" no esošajiem serveriem uz konteineriem, lai viņi atkārtoti izvietojams, kur vien vēlaties. Kad lietojumprogramma atrodas konteinerā, izstrādātāji to var sadalīt tālāk; piemēram, API savienotāju pārvietošana uz saviem Nano Server balstītajiem konteineriem, lai vienkāršotu lietojumprogrammu uzturēšanu.

Konteineru atbalsts tiek iebūvēts Windows rīkos viszemākajā līmenī, un tagad Windows konteineri ir Visual Studio 2017 izvietošanas mērķis. Jūs varat veidot un piegādāt lietojumprogrammas kā konteineru, kas ir gatavs testēšanai. Svarīgs solis ir padarīt konteinerus ar vienkāršu peles klikšķi.

Tā kā Windows Azure drīz atbalstīs ligzdoto virtualizāciju, spēja pievienot lielāku izolāciju publiskajā mākonī palīdzēs regulētajām nozarēm pamatot pāreju gan uz konteineriem, gan uz mākoni.