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 umožňuje spouštět více izolovaných operačních systémů na jednom fyzickém stroji pomocí hypervizoru.
Fyzický server (host) → hypervizor → virtuální stroje (VM, guest)
Každý VM má vlastní:
operační systém
kernel
aplikace
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
silná izolace
možnost běhu různých OS
stabilita a bezpečnost
vyšší režie
pomalejší start VM
větší nároky na zdroje
Kontejnerizace izoluje aplikace na úrovni operačního systému, nikoli celého OS.
sdílený kernel hostitelského OS
izolované user-space prostředí
každá aplikace běží v kontejneru
Docker
containerd
Podman
Kubernetes (orchestrace)
rychlý start
nízká režie
vysoká hustota nasazení
jednoduchá distribuce aplikací
sdílený kernel (nižší izolace než VM)
omezení na stejný typ OS kernelu
| Virtualizace | Kontejnerizace |
|---|---|
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 simuluje kompletní hardware nebo systém v softwaru.
software napodobuje jinou architekturu CPU nebo zařízení
umožňuje běh programů pro jinou platformu
QEMU (plná emulace ARM na x86)
konzolové emulátory (NES, PlayStation)
mobilní emulátory
velmi pomalé oproti nativnímu běhu
vysoká kompatibilita
možnost běhu jiných architektur
Simulace napodobuje chování systému, ale ne jeho skutečné prostředí.
modelování reálného systému
neprovádí skutečný kód cílového systému
síťové simulátory (ns-3)
letové simulátory
modely fyzikálních systémů
zaměřeno na chování, ne implementaci
může být velmi rychlá
slouží pro analýzu a vývoj
| Emulace | Simulace |
|---|---|
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 |
Virtualizace = izolace OS
Kontejnerizace = izolace aplikací
Emulace = napodobení jiné platformy
Simulace = modelování chování systému