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 an on-ramp and foundation for cloud computing, whether public or private. In addition, containers have emerged, reinvented by Docker, as a disruptive technology that often works in conjunction with VMs and cloud system software. Containers are also the technological glue that connects developers and infrastructure admins who are pursuing DevOps methodologies. 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 explores the individual technologies as well as the intersections and synergies between virtualization, containers, and cloud system software.