Virtualizace a kontejnerizace

Úvod

Virtualizace a kontejnerizace jsou technologie pro efektivnější využití hardwaru a izolaci aplikací.

Používají se v serverových prostředích, cloudech i vývoji software.


Virtualizace

Virtualizace umožňuje spouštět více izolovaných operačních systémů na jednom fyzickém stroji pomocí hypervizoru.

Základní princip

  • Fyzický server (host) → hypervizor → virtuální stroje (VM, guest)

  • Každý VM má vlastní:

  • operační systém

  • kernel

  • aplikace

Typy hypervizorů

  • Typ 1 (bare-metal)

  • běží přímo na hardwaru

  • např. VMware ESXi, KVM, Hyper-V

  • Typ 2 (hostovaný)

  • běží nad host OS

  • např. VirtualBox, VMware Workstation

Výhody

  • silná izolace

  • možnost běhu různých OS

  • stabilita a bezpečnost

Nevýhody

  • vyšší režie

  • pomalejší start VM

  • větší nároky na zdroje


Kontejnerizace

Kontejnerizace izoluje aplikace na úrovni operačního systému, nikoli celého OS.

Základní princip

  • sdílený kernel hostitelského OS

  • izolované user-space prostředí

  • každá aplikace běží v kontejneru

Technologie

  • Docker

  • containerd

  • Podman

  • Kubernetes (orchestrace)

Výhody

  • rychlý start

  • nízká režie

  • vysoká hustota nasazení

  • jednoduchá distribuce aplikací

Nevýhody

  • sdílený kernel (nižší izolace než VM)

  • omezení na stejný typ OS kernelu


Virtualizace vs Kontejnerizace

VirtualizaceKontejnerizace

Každý VM má vlastní OS

Sdílí kernel host OS

Vyšší režie

Nízká režie

Silná izolace

Lehká izolace

Pomalejší start

Velmi rychlý start

Vhodné pro různé OS

Vhodné pro stejné OS rodiny


Emulace

Emulace simuluje kompletní hardware nebo systém v softwaru.

Princip

  • software napodobuje jinou architekturu CPU nebo zařízení

  • umožňuje běh programů pro jinou platformu

Příklady

  • QEMU (plná emulace ARM na x86)

  • konzolové emulátory (NES, PlayStation)

  • mobilní emulátory

Vlastnosti

  • velmi pomalé oproti nativnímu běhu

  • vysoká kompatibilita

  • možnost běhu jiných architektur


Simulace

Simulace napodobuje chování systému, ale ne jeho skutečné prostředí.

Princip

  • modelování reálného systému

  • neprovádí skutečný kód cílového systému

Příklady

  • síťové simulátory (ns-3)

  • letové simulátory

  • modely fyzikálních systémů

Vlastnosti

  • zaměřeno na chování, ne implementaci

  • může být velmi rychlá

  • slouží pro analýzu a vývoj


Emulace vs Simulace

EmulaceSimulace

Napodobuje hardware/software

Napodobuje chování systému

Spouští reálný kód

Používá modely

Vyšší přesnost kompatibility

Vyšší abstrakce

Pomalejší

Obvykle rychlejší

Např. QEMU, emulátory konzolí

Např. síťové a fyzikální modely


Shrnutí

  • Virtualizace = izolace OS

  • Kontejnerizace = izolace aplikací

  • Emulace = napodobení jiné platformy

  • Simulace = modelování chování systému