images
Servers should be a commodity, not a special snowflake that needs attention. Images are snapshots that can be loaded onto a server, containing all the information needed to get to work instantly.
There are 2 types of images:
- hypervisors: are images that host containers. Generally stay alive for longer periods of time and should only start be in charge of managing containers.
- containers: are images that do one thing well. Generally they will be completely self-contained, requiring only a few ports to be open.
Containers themselves can be split up in 2 types:
- services: handle application logic. Whether it's handle HTTP requests,
host a server or do crunch numbers,
servicestake care of it all. - sidekicks: handle secondary tasks such as log forwarding, sending health checks to the mothership and other secondary jobs.
AMI
AMI's are Amazon's custom image format.
Qemu
qemu is a command to build images for either xen or KVM.
KVM
KVM is a virtual machine that resides on the kernel level. It's as low level
as you can get for virtual-machines. If you need Linux-based virtualization
then KVM is the solution.
Packer
packer is a tool by hashicorp that can stamp out images for multiple compile
targets based on a single configuration. Targets include: kvm, docker and
AMI.