I've been looking at what is available to help manage a virtual environment, that favours open source.
It is important to know the difference between a VM, VPS and Container.
VM - Full VIrtual Machine, has it's own kernel.
VPS - VPSs always run on the same OS kernel as the host system
vSphere on ESXi - VmWare owned.
KVM - RedHat owned - Kernel-based Virtual Machine.
Hyper-V - Microsoft owned.
OpenVZ - Each VPS has it's own kernel - full isolation from the guest. OS-level virtualization - sharing the same instance as the host OS.
LXD - designed for hosting virtual environments that “will typically be long running and based on a clean distribution image (Only runs on linux and favours ubuntu). Create an environment similar to Linux installation without the need for separate kernel. Check this video of LXD vs KVM.
LXC is a lightweight virtualization tool integrated into Linux kernel to run multiple virtual units
LXD is a container hypervisor which is built on top of LXC to improve the experience of the user
Docker - focuses on ephemeral, stateless, minimal containers that won’t typically get upgraded or re-configured but instead just be replaced entirely
ProxMox - tightly linked with KVM and LXD
openStack - Seems to be able to manage a variety of things: containers, VM's, bare metal, functions, storage and networking
Results show that containers outperformed VMs due to its better utilization of resources. Containers can be used for application distribution to diminish resource overhead while VMs can be utilized for running application with critical businessdata.
From the results,it can be analyzed that LXC has lower downtime when compared to OpenVZ.
Cloud Init - A set of scripts and utilities to make cloud images all they can be - whatever that means....
Kcli - Interacting with existing virtualisation providers
Creating Lab (Test) Environments