vm e container
This commit is contained in:
21
docker/001-vm-container.md
Normal file
21
docker/001-vm-container.md
Normal file
@@ -0,0 +1,21 @@
|
||||
# Virtual Machine vs Container
|
||||
|
||||
## Virtual Machine
|
||||
|
||||
Nel paradigma delle Virtual Machine, un OS completo, dotato del proprio kernel, funge da `hypervisor` (HV). Questo consente di eseguire più VM, ognuna con il proprio sistema operativo e i propri servizi in esecuzione. Ogni VM opera come un'istanza isolata, garantendo un *elevato livello di separazione*.
|
||||
|
||||
Tuttavia, questa architettura presenta un'importante limitazione: ogni VM interagisce con l'hardware virtualizzato attraverso l'HV, che media la comunicazione con l'hardware fisico sottostante. Questo processo di mediazione introduce un *overhead* significativo, che rappresenta una delle principali cause di perdita di performance.
|
||||
|
||||
## Container
|
||||
|
||||
Il paradigma dei container si propone di affrontare le problematiche di overhead e performance associate alle VM. In questo modello, l'OS host non funge da hypervisor, ma esegue un `container engine`, che costituisce uno strato sottile di isolamento tra le applicazioni in esecuzione all'interno dei container e il sistema operativo sottostante.
|
||||
|
||||
A differenza delle VM, i container non eseguono un sistema operativo completo. Non possiedono un proprio kernel, poiché non gestiscono direttamente la comunicazione con l'hardware; piuttosto, *sfruttano il kernel del sistema host*. Le richieste di risorse hardware da parte dei container vengono, tramite il container engine, inoltrate direttamente al kernel dell'OS host, riducendo così l'overhead e migliorando le performance complessive.
|
||||
|
||||
## Vantaggi e limitazioni dei container
|
||||
|
||||
Rispetto alle VM, i container offrono prestazioni superiori e una maggiore flessibilità. È possibile modificare le risorse allocate a un container durante la sua esecuzione, senza necessità di spegnere il container stesso, evitando così downtime. Al contrario, le VM, simili a hardware reale, richiedono un riavvio per apportare modifiche alle risorse allocate.
|
||||
|
||||
Tuttavia, i container presentano anche delle *limitazioni, in particolare riguardo all'isolamento*. Sebbene offrano un certo livello di separazione, l'isolamento dei container è più debole rispetto a quello delle VM, poiché avviene solo a livello di processo e non di risorse. I container sono, infatti, processi in esecuzione sul sistema host e, a differenza delle applicazioni tradizionali, hanno accesso limitato alle risorse.
|
||||
|
||||

|
BIN
docker/asset/img/container-vm.png
Normal file
BIN
docker/asset/img/container-vm.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 278 KiB |
Reference in New Issue
Block a user