Programování

Co potřebujete vědět o Dockeru ve Windows

Konec minulého týdne jsem strávil v Monki Gras, londýnské vývojářské konferenci zaměřené na řemeslo vývoje softwaru. Je to fascinující událost a letos se zaměřila na to, jak balit software.

Není divu, že mnoho řečníků hovořilo o úloze kontejnerů v devops a nepřetržitém doručování. Ale došlo k obecné mylné představě o podpoře Windows pro kontejnery, obecně charakterizované jako podpora pro Docker běžící na virtuálních počítačích s Linuxem.

To není pravda: Windows má své vlastní kontejnerové technologie, které staví na Dockeru, ale dávají mu jedinečnou rotaci Microsoftu. To je pravděpodobně zdroj zmatku, protože Windows 10 přidává podporu pro subsystém Linux a Microsoft přidává nástroje Docker na Windows Server 2016 přibližně ve stejnou dobu. Oba jsou součástí přístupu společnosti Microsoft k vývoji nativních cloudových aplikací, což je klíčový prvek její platformy Azure do budoucna.

Závazek společnosti Microsoft týkající se kontejnerů, což je jeden z nejdůležitějších meziodvětvových vývojů v posledních několika letech, by neměl být překvapující. Snad nejlépe představený jako způsob zapouzdření celé uživatelské země procesů a jmenných prostorů, aby se izoloval od ostatních instancí spuštěných na stejném serveru, se kontejnery rychle staly klíčovou součástí devops a implementací kontinuální integrace. Společnost Microsoft interně rychle přijala tyto přístupy a její nástroje jako vždy odrážejí, jak Redmond používá software a jak vytváří aplikace.

Porozumění kontejnerům

Oddělením služeb, které aplikace používá, od služeb, které operační systém potřebuje, se moderní kontejnery staly mocným nástrojem pro balení a nasazení aplikací na serverech. Kontejnery nabízejí přenositelnost mezi vývojovými, místními datovými centry a soukromými, hybridními a veřejnými cloudy. Aplikace zabalené v kontejneru jsou nezávislé na hostitelském OS a mohou běžet na jakémkoli podobném hostiteli kontejneru beze změn.

Zabalení aplikace do kontejneru znamená, že aplikaci lze snadno nasadit vedle všech příslušných konfiguračních souborů a závislostí: Pokud kontejner běží na vývojovém počítači nebo projde všemi vašimi integračními testy, bude spuštěn na serveru bez jakýchkoli změn. Můžete změnit kontejner pro novou verzi bez ovlivnění podkladového OS a můžete přesunout kontejner ze serveru na server bez ovlivnění vašeho kódu. Je to logický koncový bod modelu devops, který vám umožňuje nasazovat infrastrukturu a aplikace samostatně - a spravovat je samostatně.

Původně sálové technologie, kontejnery (nebo alespoň podobné formy jmenného prostoru a izolace procesů) lze nalézt v mnoha operačních systémech Unix, včetně Linux a Solaris.

Uvnitř kontejnerů Windows

S vydáním Windows Server 2016 má nyní Windows vlastní technologii kontejnerů. Je založen na populární kontejnerové službě Docker s otevřeným zdrojovým kódem, ale přidává podporu pro použití příkazového řádku PowerShell a pro další izolaci pomocí kombinace tenkého kontejneru zaměřeného Nano serveru a kontejnerů Hyper-V.

Docker zůstává jádrem kontejnerové strategie společnosti Microsoft. Jeho nástroje, jako je Swarm a Machine, jsou široce používány a jeho produkt Data Center může spravovat kontejnery Windows i Linux. Můžete dokonce použít klienta Dockeru z prostředí Bash, který je součástí systému Windows 10, a nainstalovat jej do subsystému Windows pro Linux. Tento přístup vyžaduje, abyste žonglovali s certifikáty, takže můžete raději použít aplikaci Windows Dockeru jako vývojový a základní nástroj pro správu kontejnerů Windows i Linux.

Kontejnery Windows jsou, stejně jako mnoho funkcí systému Windows Server, role, kterou lze nainstalovat buď prostřednictvím známého dialogového okna funkcí systému Windows, nebo prostřednictvím prostředí PowerShell. Převzetí trasy PowerShellu má největší smysl, protože existuje modul OneGet PowerShell, který nainstaluje funkci kontejnerů Windows i Docker, k zahájení je potřeba pouze jeden restart. (Pokud chcete používat kontejnery Hyper-V, musíte také povolit virtualizaci Hyper-V.)

Vývojáři i operační týmy mají pro kontejnery Windows překvapivé nadšení; Společnost Microsoft ohlásila více než 1 milion stažení základních bitových kopií Windows z knihovny kontejnerů Docker Hub od doby, kdy byl Windows Server 2016 uveden do obecné dostupnosti.

Vytváření a nasazování kontejnerů ve Windows

Kontejnery nejsou jen nástrojem na serveru; Professional a Enterprise verze Windows 10 Anniversary Edition také podporují kontejnery. Budete je muset povolit v dialogovém okně Funkce systému Windows, ale jakmile budou povoleny, můžete nainstalovat a spravovat kontejnery Windows na vývojovém počítači pomocí prostředí PowerShell. Protože Windows 10 podporuje pouze kontejnery Hyper-V, budete si muset nainstalovat také Hyper-V.

Jakmile jsou kontejnery Windows povoleny, budete si muset stáhnout a nainstalovat Docker Engine a klienta Docker a nainstalovat základní bitové kopie, které budete muset pro svou aplikaci nakonfigurovat.

Navrhovaným základním obrázkem společnosti Microsoft pro nové kontejnery Windows je Nano Server, implementace serveru zaměřená na cloudové cloudy. Nano Server má jako kontejnerová základna velký smysl: Je malý a rychlý, bez uživatelského rozhraní, takže je rychle nasaditelný a relativně bezpečný.

Jedna důležitá poznámka: Ačkoli jej můžete použít k hostování běhových časů, jako je Node.js, Nano Server je určen k hostování aplikací .Net Core, včetně ASP.Net Core, takže nedostanete všechny funkce .Net, na které jste zvyklí . Od známého Windows Serveru je dost rozdílu, že je asi nejlepší myslet na kontejnery Windows hostované na Nano Serveru jako nástroj pro nové aplikace, spíše než jako hostitele pro existující kód.

Tyto rozdíly vysvětlují, proč mnoho firem používá Windows Server Core jako základní image. I když je větší a jeho nasazení trvá déle než Nano Server, Windows Server Core nabízí podporu pro aktuální Windows SDK a plnou implementaci .Net. Je mnohem jednodušší rychle přesunout stávající kód na Server Core a dát vám možnost, jak to Taylor Lead Manager pro Windows Server a Hyper-V Containers nazývá, „zvedat a přesouvat“ ze stávajících serverů do kontejnerů, takže lze nasadit kdekoli chcete. Jakmile je aplikace v kontejneru, mohou ji vývojáři dále rozložit; například přesunutí konektorů API do jejich vlastních kontejnerů na bázi Nano Server, aby se zjednodušila údržba aplikací.

Podpora kontejnerů je integrována do nástrojů Windows na nejnižší úrovni, u kontejnerů Windows je nyní cíl nasazení pro Visual Studio 2017. Můžete vytvářet a doručovat aplikace jako kontejner připravený k testování. Vytvoření kontejnerů jednoduchým kliknutím myší je důležitým krokem.

Díky Windows Azure, který brzy podpoří vnořenou virtualizaci, schopnost přidat další izolaci ve veřejném cloudu pomůže regulovaným odvětvím ospravedlnit přechod na oba kontejnery a do cloudu.

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