Change summary
  content/posts/lxd-containers-for-human-beings.md | 72 ++++++++++++++++++
1 file changed, 72 insertions(+)
  Detailed changes
  
  
    
    @@ -34,3 +34,75 @@ there's unfortunately nothing I can do about that.
   on bare metal servers as necessary.
 - **Density:**
 - **Cleanliness:**
+
+## Virtual machines
+
+```goat
+ .---------------------------------.
+|  .-------.  .-------.  .-------. |
+| | Guest  | | Guest  | | Guest  | |
+| | OS     | | OS     | | OS     | |
+| .---+---'  .---+---'  .---+---'  |
+|  .--+----.  .--+----.  .--+----. |
+| | Guest  | | Guest  | | Guest  | |
+| | Kernel | | Kernel | | Kernel | |
+| .---+---'  .---+---'  .---+---'  |
+|  .--+----------+----------+----. |
+| |          Hypervisor          | |
+| .--------------+--------------'  |
+|  .-------------+---------------. |
+| |          Host Kernel         | |
+| .-----------------------------'  |
+.---------------------------------'
+```
+
+## Containers
+
+```goat
+       Application containers                 System containers
+ .---------------------------------.   .------------------------------.
+|  .-------.  .-------.  .-------. |  |  .------.  .------.  .------. |
+| | App 01 | | App 02 | | App 03 | |  | | Guest | | Guest | | Guest | |
+| '---+---'  '---+---'  '---+---'  |  | | OS    | | OS    | | OS    | |
+|  .--+----------+----------+----. |  | '---+--'  '---+--'  '---+--'  |
+| |          Hypervisor          | |  |  .--+---------+---------+---. |
+| '--------------+--------------'  |  | |         Host Kernel       | |
+|  .-------------+---------------. |  | '--------------------------'  |
+| |          Host Kernel         | |  '------------------------------' 
+| '-----------------------------'  |
+'---------------------------------' 
+```
+
+## When to use which
+
+### Virtual machines
+
+- Virtualising esoteric hardware
+- Virtualising non-Linux operating systems (Windows, macOS)
+- Completely isolating processes from one another with a decades-old, battle-tested technique
+
+> See Drew DeVault's blog post [_In praise of qemu_](https://earl.run/rmBs) for a great use of VMs
+
+### Application containers
+
+- Microservices
+- Extremely reproducible builds
+  - (NixOS.org would likely be a better fit though)
+- Dead-set on using cloud platforms with extreme scaling capabilities (AWS, GCP, etc.)
+- When the app you want to run is _only_ distributed as a Docker container and
+  the maintainers adamantly refuse to support any other deployment method
+  - (Docker does run in LXD 😉)
+
+### System containers
+
+- Anything not listed above 👍
+
+## Crash course to LXD
+
+1. Install snap following [Canonical's tutorial](https://earl.run/ZvUK)
+   - LXD is natively packaged for Arch and Alpine, but configuration can be a massive headache.
+2. `sudo snap install lxd`
+3. `lxd init`
+4. `lxc image copy images:debian/11 local: --alias deb-11`
+5. `lxc launch deb-11 container-name`
+6. `lxc shell container-name`