What began as virtualization of servers has expanded into a far more wide-reaching approach to software-defined control over server hardware resources. Virtualization has transitioned into a mainstream technology in today's datacenters and is widely used to increase hardware utilization as well as lower server operational costs in the datacenter. Virtualized infrastructures are proving to be a direct on-ramp into cloud computing, and cloud computing starts with a private cloud for most large organizations. In addition, containers have emerged, reinvented by Docker, as a disruptive technology that works in conjunction with VMs and cloud system software. Software-defined compute is about not only the virtualization of the underlying server and OS resources but also API enabling the entire infrastructure into a malleable and programmable instrument needed for tomorrow's agile cloud. Software-Defined Compute: Virtualization, Containers and Cloud System Software explores the individual technologies as well as the intersections and synergies between virtualization, container, and cloud system software.