Cgroups + namespaces + chroot
Low level virtualization for production high load infrastructure. Docker and LXC are based on this technologies. You should create multiple systemd files and specify RootDirectory=/srv/containers/chroot/test/ in [Service]
KVM
Virtualization provided by Linux kernel, KVM is a framework for kernel virtualization with API, QEMU can use it.
- fastest
Xen
Server – XenServer is iso image for baremetal, client – XenCenter is a windows application client.
- live migration
- acls for operators
- live storage migration
- restart VM if fail
- sharing RAM between VMs
- improved disaster recovery
Docker
- designed for single process
- after container reboot all data will be loss
Docker swarm
- minimum nodes in cluster is 3 (A three-manager swarm tolerates a maximum loss of one manager. A five-manager swarm tolerates a maximum simultaneous loss of two manager nodes.)
Orchestration for containers like Docker, you should install docker before Kubernetes. In kubernetes “Pod” is a logical unit. For example, you create container for DB, container for web server, this containers merge into Pod, which have persistent ip address. Containers can communicate through network 127.0.0.1:[port number], but not by file sockets.
- rolling updates
- fault tolerance
- autoscaling
- load balancing
LXC
- container hypervisor
- full OS
- persistent
LXD
- LXC functionality
- live migration
- REST API for OpenStack
OpenVZ
like LXD but it is iso for bare metal installation. Special patched kernel, if something goes wrong apps developers will point to that.
Virtuozzo
Solution for hosting providers.
Proxmox
KVM and LXC HA management, you can use it for free, but subscription not free like in RedHat.
Mesos
Clustered network OS. Designed for more then 1000 physical servers. Even Riot Games with 600 build server do not use it be cause of it’s complexity.