Osmý div světa, který má pro svět téměř stejnou důležitost jako operační systém Windows – lodní kontejner. Odstartoval neuvěřitelný rozmach lodní dopravy i proces globalizace. A stejnou revoluci přinášejí i kontejnery softwarové. Přečtěte si, jaké výhody přinášejí kontejnery oproti běžné virtualizaci.
Klasické „analogové“ lodní kontejnery se prosadily hlavně díky standardizaci rozměrů a způsobu přepravy. Fyzický kontejner můžete jednoduše přeložit z lodi na kamion. Stejně tak softwarové kontejnery: díky standardizaci formátu kontejneru je mohou vývojáři a IT specialisté nasadit v libovolném prostředí bez dalších úprav aplikací, které jsou v kontejnerech vnořené. Tím ale výčet výhod kontejnerizace ovšem zdaleka nekončí.
Vývoj kontejnerizace
Je zajímavou paralelou, že softwarová kontejnerizace má své počátky právě v době, kdy nastal boom v oblasti fyzických přepravních kontejnerů. Jednalo se o sedmdesátá léta a sedmou verzi UNIXu, který umožňoval izolovat soubory od vlastního systému.
Tento stav trval bezmála 20 let, než se v systému FreeBSD objevila možnost rozdělovat jeden systém na menší na sobě nezávislé jednotky. Poté se objevily Solaris kontejnery, ve kterých už mohly pracovat aplikace nezávisle na sobě, aniž by se vzájemně ovlivňovaly.
V roce 2006 vznikla linuxová virtualizace LXC, která se však nikdy nedočkala většího přijetí. LXC bylo až příliš uživatelsky náročné a vyžadovalo hlubokou odbornou znalost systému.
Zjednodušit kontejnerizaci se podařilo až o 7 let později díky systému Docker. Ten celou správu kontejnerů výrazně ulehčil, a navíc přidal celou řadu dalších funkcí a možností práce s kontejnery. Díky se tomu stal Docker nejpoužívanějším systémem na světě, který v současnosti využívá přes 80 % softwarových kontejnerů po celém světě.
Docker
Docker je systém zprostředkovávající kontejnerovou virtualizaci. Jak se liší od běžného virtuálního počítače? Na fyzický stroj obsahuje hypervizor, prostředí, které umožňuje vytvářet virtuální počítač. Klasický virtuální počítač potom obsahuje vlastní operační systém. Pokud na fyzickém stroji pracuje souběžně více virtuálních strojů, každý z nich spotřebuje značné množství systémových prostředků – místo na disku, operační paměť i procesorový výkon. Samotný provoz hypervizoru může spotřebovat až 20 % výkonu fyzického stroje.
V případě Dockeru, popř. jiného nástroje pro kontejnerovou virtualizaci, odpadá nutnost vytváření virtuálních počítačů a odpadají tak vysoké systémové nároky na běh virtuálních operačních systémů a hypervizoru. Dockerem vytvářené kontejnery fungují v rámci jednoho operačního systému a sdílejí paměť, knihovny a další zdroje. Dochází tak k efektivnímu využití systémových prostředků. Na rozdíl od virtuálních počítačů navíc kontejnery spouštíte téměř okamžitě, v řádu milisekund, což je předurčuje k masivnímu škálování dle vašich okamžitých potřeb.
Výhody a přednosti kontejnerizace
Některé z užitečných vlastností kontejnerů jsme už zmínili. Kontejnery nabízí ale mnohem víc:
- Efektivní vývoj – vyhledávání a opravování bugů, ale i samotný vývoj a testování aplikací v kontejnerech je podstatně efektivnější. Nemusíte totiž řešit kompatibilitu v různých prostředích. Tvorbu a aktivaci kontejnerů můžete navíc automatizovat přes API, což dále přispívá k úspoře času i nákladů na vývoj.
- Separace – díky kontejneru je v něm obsažená aplikace naprosto separovaná od ostatních. Aplikace tedy není závislá na prostředí, ani nemůže ovlivňovat nebo být ovlivňována jinými aplikacemi.
- Agilita – kontejnery jsou díky své podstatě rychlé a odlehčené. Velmi snadno se dají spouštět i zastavovat, kopírovat nebo rychle vertikálně škálovat. Navíc můžete kontejnery díky jejich standardizovanému formátu snadno migrovat z jednoho prostředí či systému do druhého.
- Náklady – jak už jsme zmínili v předchozí části článku, díky jediné instanci operačního systému kontejnery výrazně šetří systémové prostředky a režii.
Orchestrace a automatizace
Kontejnery zpravidla běží ve stovkách instancí. K jejich správě a automatizaci se používají orchestrační nástroje, tzv. orchestrátory. Pomocí těchto orchestrátorů můžete spravovat, konfigurovat a monitorovat nejen samotné kontejnery, ale i celé kontejnerové sítě.
Nejznámějším a nejvyužívanějším orchestrátorem je systém Kubernetes. Orchestruje kontejnerovou síť a dokáže automaticky plánovat spouštění kontejnerů podle dostupnosti systémových prostředků a aktuálních požadavků. Seskupuje kontejnery do provozních jednotek a řídí zajišťování služeb, vyrovnává zatížení a sleduje přidělování prostředků.
Budoucnost je v kontejnerech
Kontejnery přináší na rozdíl od klasické plné virtualizace celou řadu výhod. Díky tomu jsou stále populárnější nejen mezi vývojáři po celém světě. V Algotechu to dobře víme, a proto vám rádi poskytneme bezpečnou cloudovou kontejnerizaci hned v několika konfiguracích. Ozvěte se nám a „naložte do kontejnerů“ svoje aplikace už dnes.