liveBook · Manning

Virtual machine

As explained in Platform Engineering on Kubernetes

A virtual machine is a software-emulated computer that runs an operating system and applications in an isolated environment on physical infrastructure.

A virtual machine provides a repeatable environment by running an operating system and application stack in an isolated software-defined computer. Teams can configure multiple VMs similarly, reducing differences between development, testing, and deployment environments. section 4.1.1

A VM-based deployment model typically combines:

  • Jenkins jobs that create VMs and record deployment parameters and outcomes. section 4.1.1
  • A hypervisor that monitors and runs VMs across a cluster of physical computers. section 4.1.1
  • Predefined VM configurations that reduce manual server and VM changes. section 4.1.1
  • An entire operating system alongside the application, bringing all bundled tools and resource costs with it. section 4.1.1
Figure 4.3 Jenkins Jobs or scripts encapsulated the operational knowledge of how to do deployments in an imperative way, defining step-by-step what needs to be done. This is a complex task, hard to maintain and modify, and very specific to the tool we're using. On the other hand, virtual machines are resource-intensive and not portable across cloud providers.

The deployment comparison highlights the operational trade-off: imperative Jenkins scripts are difficult to maintain, while VMs consume resources and lack portability across cloud providers. section 4.1.1

How Platform Engineering on Kubernetes covers it

How deep it goes
Explains configuration, hypervisor management, and operational trade-offs but does not descend into virtualization internals.
Examples
Uses Jenkins jobs, developer-provided VMs, and clustered physical computers as concrete deployment examples.
What it assumes
Assumes physical infrastructure and deployment environments, while introducing hypervisors and automated VM configuration.
What you can do after
Operate/configure repeatable environments with Jenkins jobs, hypervisors, and predefined VM configurations.
How it connects
Connects virtual machines with Jenkins, hypervisors, Ansible, Puppet, deployment automation, and cloud portability.

Also explained in

Compare how 16 books explain virtual machine →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Platform Engineering on Kubernetes. The section links point to the parts of the book it draws on.