Sdílet prostřednictvím


Úvod do kontejnerů a Dockeru

Návod

Tento obsah je výňatek z eBooku, architektury mikroslužeb .NET pro kontejnerizované aplikace .NET, které jsou k dispozici na .NET Docs nebo jako zdarma ke stažení PDF, které lze číst offline.

eBook o architektuře mikroslužeb .NET pro kontejnerizované aplikace .NET, miniatura na obálce.

Kontejnerizace je přístup k vývoji softwaru, ve kterém se aplikace nebo služba, její závislosti a konfigurace (abstrakce jako soubory manifestu nasazení) zabalí dohromady jako image kontejneru. Kontejnerizovaná aplikace se dá otestovat jako jednotka a nasadit ji jako instanci image kontejneru do hostitelského operačního systému (OS).

Stejně jako přepravní kontejnery umožňují přepravovat zboží lodí, vlakem nebo nákladním vozem bez ohledu na náklad uvnitř, softwarové kontejnery fungují jako standardní jednotka nasazení softwaru, která může obsahovat různé kódy a závislosti. Kontejnerizace softwaru tímto způsobem umožňuje vývojářům a ODBORNÍKŮm v oblasti IT nasazovat je do prostředí s malými nebo žádnými úpravami.

Kontejnery také izolují aplikace od sebe ve sdíleném operačním systému. Kontejnerizované aplikace běží nad hostitelem kontejneru, který běží na operačním systému (Linux nebo Windows). Kontejnery proto mají výrazně menší velikost než obrazy virtuálních strojů.

Každý kontejner může spustit celou webovou aplikaci nebo službu, jak je znázorněno na obrázku 2–1. V tomto příkladu je hostitel Dockeru hostitelem kontejneru a App1, App2, Svc 1 a Svc 2 jsou kontejnerizované aplikace nebo služby.

Diagram znázorňující čtyři kontejnery spuštěné na virtuálním počítači nebo serveru

Obrázek 2–1 Několik kontejnerů spuštěných na hostiteli kontejneru

Další výhodou kontejnerizace je škálovatelnost. Kapacitu můžete rychle rozšířit tím, že vytvoříte nové kontejnery pro krátkodobé úkoly. Z pohledu aplikace je vytvoření instance image (vytvoření kontejneru) podobné vytvoření instance procesu, jako je služba nebo webová aplikace. Kvůli spolehlivosti ale při spouštění více instancí stejné image na více hostitelských serverech obvykle chcete, aby každý kontejner (instance image) běžel na jiném hostitelském serveru nebo virtuálním počítači v různých doménách selhání.

Stručně řečeno, kontejnery nabízejí výhody izolace, přenositelnosti, flexibility, škálovatelnosti a kontroly napříč celým pracovním postupem životního cyklu aplikace. Nejdůležitější výhodou je izolace prostředí poskytovaná mezi vývojovými a provozními operacemi.