Container evangelist
Open Source Advocate
Kernel Developer
Hypervisors are based on emulating hardware
Containers are about virtualizing the Operating System subsystems
Containers: Single Kernel; Hypervisors: multiple kernels.
Immediate Advantage: single kernel update, all guests benefit
Other container advantages: elasticity
↑
|
|
|
Gigabytes
|
|
|
↓
↑
Megabytes
↓
Just the lightness of containers makes them far more dense and elastic
But there's more: containers can be scaled instantly up or down (instant vertical scaling)
Sharing the same kernel makes container resource decisions much more efficiently than hypervisors
Sharing and Granularity key container Differentiators
But they're not really exposed by orchestration systems (VZ, LXC, Docker ...)
Kernel API is the same for all containers
Came from an Agreement at the Kernel Summit in 2011
Caused container interests to converge on a unified, upstream API
No repeat of Xen/KVM split
Led directly to the ability of Docker to run on upstream containers
Block I/O
CPU
Devices
Memory
Network
Freezer
Network NS
IPC NS
Mount NS
PID NS
UTS NS
User NS