Unfashionably secure: why we use isolated VMs
VMs vs Containers: Security & Isolation
- Many argue VMs provide a stronger, clearer security boundary than containers/jails/zones because they don’t share a kernel; containers’ entire host kernel remains in the TCB.
- Others note that even VMs are vulnerable to side channels (Spectre, rowhammer, etc.) and that jail/zone/container security differences mostly come from fewer bugs, not fundamentally better designs.
- Some see “one-VM-per-tenant” as a straightforward way to limit blast radius; others call it wasteful compared to well‑designed multi‑tenant setups.
Developer Experience & Reproducibility
- Containers are widely praised for reproducible dev environments and eliminating “works on my machine” issues; many hobbyists and professionals run most services via Docker/docker-compose.
- Critics say containers just shift dependency hell into images and don’t solve versioning/update problems cleanly; Docker is described as a huge lockfile.
- Several treat Docker as a de facto cross‑distro “package + service manager,” while others argue it lacks real dependency metadata and introspection.
Kubernetes and Orchestration Debate
- Strong sentiment that k8s is overused outside “hyper‑scale” scenarios and often adopted for résumé value.
- Complaints: complexity, fragile storage/network integrations (CSI/CNI), awkward handling of stateful workloads and live migration, and an ecosystem of heavyweight add‑ons.
- Supporters say k8s gives a uniform API for deployment, scaling, and service discovery across heterogeneous stacks, which simplifies operations in large organizations.
Cost, Cloud, and Resource Efficiency
- Some claim cloud + containers is vastly more expensive than owning hardware; scaling could be handled with a few powerful servers instead of many instances.
- Others rely on VMs/containers in public clouds for elasticity and to avoid up‑front hardware and ops expertise.
Storage, Persistence, and State
- Several find container storage semantics confusing and fragile; misconfigured volumes can cause silent data loss.
- Read‑only root filesystems are suggested but clash with many existing apps’ expectations.
Alternatives and Hybrids
- Discussion of BSD jails, Solaris zones, Nix/Guix, OStree, microVMs (Firecracker/Kata), gVisor, unikernels, and Qubes‑style compartmentalization.
- Some run containers inside VMs, or one container/VM per tenant, seeking a balance between DX and isolation.