A virtual machine gives an application an isolated box with its own operating system. That isolation improves separation between workloads, but each VM consumes additional memory and CPU for its OS. section 2.2
Virtual machines are useful when:
- Cloud applications need portable infrastructure across providers through infrastructure as a service. section 1.1.1
- Workloads require isolation, even though separate operating systems reduce density and add licensing and maintenance work. section 2.2
- Containers are considered as an alternative because they share the host OS, start faster, and support more workloads on the same hardware. section 2.2
Cloud migration choice
A distributed application can run each component in a VM through IaaS, gaining portability across clouds but accepting higher running costs. Containerizing the components offers a lower-cost, portable alternative. section 1.1.1
Figure 2.4 Multiple VMs on one computer each have their own OS.
Compare the diagram of multiple VMs, each with its own operating system, with the shared-OS container model. section 2.2















