Úvod
Oba virtuální stroje a kontejnery se používají k vytváření izolovaných virtuálních prostředí pro vývoj a testování aplikací nebo softwaru. Otázkou je, jak se liší.
Tento článek zkoumá dva koncepty, které vám pomohou pochopit rozdíl mezi kontejnerem a virtuálním počítačem. Definuje kontejnery a virtuální stroje odděleně i vedle sebe, aby bylo vidět, čím se jeden liší od druhého.
Co jsou virtuální stroje (VM)?
Avirtuální stroj (VM) je operační systém, který sdílí fyzické prostředky jednoho serveru. Je to host na hostitelském hardwaru, proto se také nazývá stroj pro hosty .
Existuje několik vrstev, které tvoří virtuální stroj. Vrstva, která umožňuje virtualizaci, je hypervizor . Hypervisor je software, který virtualizuje server.
Jak funguje virtuální stroj
Vše potřebné ke spuštění aplikace je obsaženo ve virtuálním stroji – virtualizovaný hardware, OS a veškeré požadované binární soubory a knihovny. Virtuální stroje proto mají svou vlastní infrastrukturu a jsou samostatné.
Každý virtuální počítač je zcela izolován od hostitelského operačního systému. Vyžaduje také svůj vlastní OS, který se může lišit od OS hostitele. Každý má své vlastní binární soubory, knihovny a aplikace.
Monitor virtuálního stroje (VMM) :jiný název pro hypervizor
Hostitelský počítač :hardware, na kterém je virtuální počítač nainstalován
Host stroj :jiný název pro virtuální počítač
Virtuální stroj:PROS
Virtuální počítače snižují náklady . Namísto spouštění aplikace na jediném serveru umožňuje virtuální stroj využít jeden fyzický zdroj k práci mnoha. Nemusíte tedy kupovat, udržovat a skladovat nespočetné množství serverů.
Protože existuje jeden hostitelský počítač, umožňuje vám efektivní správu všechna virtuální prostředí s centralizovanou silou hypervizoru. Tyto systémy jsou od sebe zcela oddělené, což znamená, že můžete nainstalovat více systémových prostředí .
A co je nejdůležitější, virtuální počítač je izolován od hostitelského operačního systému a je bezpečný místo pro experimentování a vývoj aplikací.
Virtuální počítač:CONS
Virtuální počítače mohou zabírat mnoho systémových prostředků hostitelského počítače o velikosti mnoha GB. Spuštění jedné aplikace na virtuálním serveru znamená spuštění kopie operačního systému a také virtuální kopie veškerého hardwaru potřebného ke spuštění systému. To rychle přidá spoustu RAM a CPU cyklů.
Proces přemístění aplikace spuštěné na virtuálním počítači může být také komplikovaný protože je vždy připojen k operačnímu systému. Proto s ní musíte migrovat aplikaci i operační systém. Při vytváření virtuálního počítače také hypervizor přiděluje hardwarové prostředky vyhrazené virtuálnímu počítači.
Virtuální stroj zřídka využívá všechny dostupné zdroje, což můžeztěžovat plánování a distribuci. To je stále ekonomické ve srovnání s provozováním samostatných skutečných počítačů.
Populární poskytovatelé virtuálních počítačů:
- VMware vSphere
- VirtualBox
- Zen
- Hyper-V
- KVM
Co je to kontejner?
Kontejner je prostředí, ve kterém běží aplikace, která není závislá na operačním systému. Izoluje aplikaci od hostitele tím, že ji virtualizuje. To umožňuje uživatelům vytvářet více úloh na jedné instanci OS.
Jádro hostitelského operačního systému slouží potřebám spouštění různých funkcí aplikace, rozdělených do kontejnerů. Každý kontejner spouští izolované úlohy. Nemůže poškodit hostitelský počítač ani se dostat do konfliktu s jinými aplikacemi spuštěnými v samostatných kontejnerech.
Jak kontejnery fungují?
Při práci uvnitř kontejneru si můžete vytvořit šablonu prostředí, které potřebujete. Kontejner v podstatě spouští snímek systému v konkrétním čase a zajišťuje konzistenci v chování aplikace.
Kontejner sdílí jádro hostitele, aby spustil všechny jednotlivé aplikace v kontejneru. Jediné prvky, které každý kontejner vyžaduje, jsou přihrádky, knihovny a další runtime komponenty.
Kontejner:PROS
Kontejnery mohou mít velikost pouhých 10 MB a můžete snadno omezit jejich využití paměti a procesoru. Díky tomu jsou kontejnery pozoruhodně lehké a rychlé spuštění na rozdíl od nasazení virtuálních strojů, kde je potřeba nasadit celý operační systém.
Díky jejich velikosti je můžete rychle škálovat dovnitř a ven z kontejnerů a přidejte stejné kontejnery.
Kontejnery jsou také vynikající pro nepřetržitou integraci a průběžné zavádění (CI/CD) implementace. Podporují společný vývoj distribucí a slučováním obrázků mezi vývojáři.
Kontejner:CONS
Kontejner používá jádro hostitelského OS a má závislosti na operačním systému. Proto se kontejnery mohou lišit od základního OS podle závislosti, ale ne podle typu. Hostitelské jádro omezuje použití jiných operačních systémů .
Kontejnery stále nenabízejí stejnou bezpečnost a stabilitu které virtuální počítače umí. Protože sdílejí jádro hostitele, nemohou být tak izolované jako virtuální stroj. V důsledku toho jsou kontejnery na úrovni procesu izolované a jeden kontejner může ovlivnit ostatní tím, že ohrozí stabilitu jádra.
Navíc, jakmile kontejner splní svůj úkol, vypne se a smaže všechna data v něm. Pokud chcete, aby data zůstala na hostitelském serveru, musíte je uložit pomocí datových svazků. To vyžaduje ruční konfiguraci a zajišťování na hostiteli.
Populární poskytovatelé kontejnerů:
- Docker
- AWS
- LXD
- Java kontejnery
- Hyper-V kontejnery
- Kontejnery Windows Server
Jak si vybrat virtuální počítače vs kontejnery
Rozhodnutí, zda zvolit virtuální stroje nebo kontejnery, závisí na práci, kterou má vaše virtuální prostředí provádět.
Virtuální stroje jsou lepším řešením, pokud potřebujete:
- Správa různých operačních systémů
- Spravujte více aplikací na jednom serveru
- Spusťte aplikaci, která vyžaduje všechny prostředky a funkce operačního systému
- Zajistěte úplnou izolaci a zabezpečení
Kontejnery jsou vhodné, pokud potřebujete:
- Maximalizujte počet aplikací spuštěných na serveru
- Nasazení více instancí jedné aplikace
- Mějte lehký systém, který se rychle spustí
- Vyviňte aplikaci, která běží na jakékoli základní infrastruktuře
Virtuální stroje se běžně používají pro náročné aplikace, síťovou infrastrukturu a aplikace, které spotřebují většinu prostředků virtuálního počítače.
Kontejnery se běžně používají pro web, aplikace a služby ukládání do mezipaměti, síťové démony a malé databáze.