work on LXD blog post
This commit is contained in:
parent
7e7bffe3d7
commit
0dafe12f60
|
@ -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`
|
||||
|
|
Loading…
Reference in New Issue