Programavimas

Ką reikia žinoti apie „Docker“ sistemoje „Windows“

Praėjusios savaitės pabaigą praleidau Londono kūrėjų konferencijoje „Monki Gras“, kurios pagrindinis tikslas buvo programinės įrangos kūrimo amatas. Tai įspūdingas įvykis, kuris šiais metais buvo skirtas programinės įrangos pakavimui.

Nenuostabu, kad daugelis pranešėjų kalbėjo apie konteinerių vaidmenį atliekose ir nuolatinį pristatymą. Tačiau buvo neteisingas „Windows“ palaikymo konteineriams supratimas, paprastai apibūdinamas kaip „Docker“, veikiančio „Linux“ VM, palaikymas.

Tai netiesa: „Windows“ turi savo konteinerių technologijas, kurios remiasi „Docker“, tačiau suteikia jai unikalų „Microsoft“ sukimąsi. Tai tikriausiai yra painiavos šaltinis: „Windows 10“ tuo pačiu metu pridėjo „Linux“ posistemio palaikymą, o „Microsoft“ - „Docker“ įrankius prie „Windows Server 2016“. Abu jie yra „Microsoft“ požiūrio į „cloud-native“ programų kūrimą, kuris yra pagrindinis jos „Azure“ platformos elementas, dalis.

„Microsoft“ įsipareigojimas konteineriams - vienas svarbesnių pastarųjų kelerių metų įvairių pramonės šakų pokyčių - neturėtų stebinti. Turbūt geriausia galvoti apie būdą, kaip apgaubti visą naudotojų procesų ir vardų sritį, kad būtų galima ją izoliuoti nuo kitų egzempliorių, veikiančių tame pačiame serveryje, konteineriai greitai tapo pagrindiniu „devops“ ir nuolatinės integracijos diegimo komponentu. „Microsoft“ greitai pritaikė šiuos metodus savo viduje, ir kaip visada, jos įrankiai atspindi, kaip Redmondas naudoja programinę įrangą ir kaip kuria programas.

Konteinerių supratimas

Atskiriant programas, kurias naudoja programa, nuo OS reikalingų paslaugų, šiuolaikiniai konteineriai tapo galingu įrankiu pakuoti ir diegti programas serveriuose. Konteineriai suteikia galimybę perkelti plėtros, vietinius duomenų centrus ir privačius, hibridinius ir viešuosius debesis. Į sudėtinį rodinį suvyniotos programos yra nepriklausomos nuo pagrindinės OS ir jas galima paleisti bet kuriame panašiame sudėtinio rodinio pagrindiniame kompiuteryje be pakeitimų.

Programos įvyniojimas į sudėtinį rodinį reiškia, kad programą lengva įdiegti kartu su visais atitinkamais konfigūracijos failais ir priklausomybėmis: Jei sudėtinis rodinys veikia kūrimo mašinoje arba išlaikys visus integravimo testus, jis veiks serveryje be jokių pakeitimų. Galite pakeisti naujos versijos konteinerį, nepaveikdami pagrindinės OS, ir galite perkelti konteinerį iš serverio į serverį, nepaveikdami savo kodo. Tai logiška „devops“ modelio baigtis, leidžianti atskirai diegti infrastruktūrą ir programas - jas valdyti atskirai.

Iš pradžių pagrindinio kompiuterio technologiją, konteinerius (ar bent jau panašias vardų srities formas ir procesų izoliavimą) buvo galima rasti daugelyje „Unix“ operacinių sistemų, įskaitant „Linux“ ir „Solaris“.

„Windows“ talpyklų viduje

Dabar, išleidus „Windows Server 2016“, „Windows“ turi savo konteinerių technologiją. Tai paremta populiariąja atvirojo kodo „Docker“ konteinerių paslauga, tačiau ji prideda palaikymą naudojant „PowerShell“ komandų eilutę ir papildomai izoliuoti kartu su plonais į konteinerius orientuotais „Nano Server“ ir „Hyper-V“ konteineriais.

„Docker“ išlieka „Microsoft“ konteinerių strategijos šerdimi. Jos įrankiai, tokie kaip „Swarm“ ir „Machine“, yra plačiai naudojami, o „Data Center“ produktas gali valdyti tiek „Windows“, tiek „Linux“ talpyklas. Jūs netgi galite naudoti „Docker“ klientą iš „Bash“ apvalkalo, kuris yra „Windows 10“ dalis, įdiegdami jį į „Windows“ posistemį, skirtą „Linux“. Šis metodas reikalauja žongliruoti sertifikatais, todėl galbūt norėsite naudoti „Docker“ „Windows“ programą kaip „Windows“ ir „Linux“ talpyklų kūrimo ir pagrindinį valdymo įrankį.

„Windows“ sudėtiniai rodiniai, kaip ir daugelis „Windows Server“ funkcijų, yra vaidmuo, kurį galima įdiegti per žinomą „Windows“ funkcijų dialogo langą arba per „PowerShell“. „PowerShell“ maršruto pasirinkimas yra prasmingiausias, nes yra „OneGet PowerShell“ modulis, kuris įdiegia „Windows“ konteinerių funkciją ir „Docker“, o norint pradėti reikia tik vieno perkrovimo. (Jei norite naudoti „Hyper-V“ konteinerius, taip pat turėsite įgalinti „Hyper-V“ virtualizavimą.)

Stebėtinai daug entuziazmo dėl „Windows“ talpyklų kelia tiek kūrėjai, tiek ops komandos; Nuo tada, kai „Windows Server 2016“ tapo prieinama, „Microsoft“ pranešė apie daugiau nei 1 milijoną pagrindinių „Windows“ vaizdų atsisiuntimo iš „Docker's Hub“ konteinerių bibliotekos.

Konteinerių kūrimas ir diegimas sistemoje „Windows“

Konteineriai yra ne tik serverio įrankis; „Professional 10“ ir „Enterprise“ versijos „Windows 10 Anniversary Edition“ taip pat palaiko konteinerius. Juos turėsite įgalinti iš „Windows“ funkcijų dialogo lango, bet kai jie bus įjungti, galėsite įdiegti ir tvarkyti „Windows“ sudėtinius rodinius kūrimo kompiuteryje naudodami „PowerShell“. Kadangi „Windows 10“ palaiko tik „Hyper-V“ konteinerius, turėsite įdiegti ir „Hyper-V“.

Įgalinę „Windows“ sudėtinius rodinius turėsite atsisiųsti ir įdiegti „Docker Engine“ ir „Docker“ klientą bei įdiegti pagrindinius vaizdus, ​​kuriuos turėsite sukonfigūruoti savo programai.

„Microsoft“ siūlomas naujos konstrukcijos „Windows“ talpyklų pagrindinis atvaizdas yra „Nano Server“, kuris yra debesims skirto serverio diegimas. „Nano Server“ turi daug prasmės kaip konteinerių bazė: ji yra maža ir greita, be vartotojo sąsajos, todėl greitai įdiegiama ir gana saugi.

Viena svarbi pastaba: Nors galite naudoti ją vykdydami vykdymo laiką, pvz., „Node.js“, „Nano Server“ yra skirtas priglobti .Net Core programas, įskaitant ASP.Net Core, todėl negausite visų .Net funkcijų, prie kurių esate įpratę . Pakanka skirtumo nuo pažįstamo „Windows Server“, kad galbūt geriausia galvoti apie „Nano Server“ priglobtus „Windows“ konteinerius kaip įrankį naujoms programoms, o ne kaip esamo kodo pagrindinį kompiuterį.

Šie skirtumai paaiškina, kodėl daugelis įmonių naudoja „Windows Server Core“ kaip pagrindinį vaizdą. Nors „Windows Server Core“ yra didesnis ir jį įdiegti užtrunka ilgiau nei „Nano Server“, „Windows Server Core“ siūlo dabartinių „Windows“ SDK palaikymą ir visišką .Net diegimą. Daug lengviau greitai perkelti esamą kodą į „Server Core“, suteikiant jums galimybę, kaip tai vadina „Windows Server“ ir „Hyper-V Containers“ programų vadovė Taylor Brown, vadina „pakelti ir perkelti“ iš esamų serverių į konteinerius, taigi jie “ vėl galima dislokuoti, kur tik norite. Kai programa yra talpykloje, kūrėjai gali ją toliau suskaidyti; pavyzdžiui, perkelti API jungtis į savo „Nano Server“ pagrindu sukurtus konteinerius, kad būtų paprasčiau palaikyti programas.

Konteinerių palaikymas yra integruotas į „Windows“ įrankius pačiu žemiausiu lygiu, o „Windows“ konteineriai dabar yra „Visual Studio 2017“ diegimo tikslas. Galite kurti ir pristatyti programas kaip sudėtinį rodinį, paruoštą išbandyti. Sudaryti konteinerius vienu pelės paspaudimu yra svarbus žingsnis.

Netrukus „Windows Azure“ palaikys įdėtą virtualizavimą, galimybė pridėti daugiau izoliacijos viešajame debesyje padės reguliuojamoms pramonės šakoms pateisinti perėjimą prie abiejų talpyklų ir prie debesies.

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