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's are Amazon's custom image format.
qemu is a command to build images for either
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
KVM is the solution.
packer is a tool by hashicorp that can stamp out images for multiple compile
targets based on a single configuration. Targets include: