Virtual machines
A virtual machine (VM) is an isolated guest operating system environment running atop a physical server via a hypervisor. From the perspective of the software running inside it, a VM behaves like dedicated bare-metal hardware: it has virtual CPU cores, allocated memory, network interfaces, and storage controllers. As the foundational primitive of modern cloud computing, virtual machines underpin virtually every higher-level service that providers offer, from managed Kubernetes worker nodes to relational database engines.
Containers and Kubernetes
A container is a standardized software execution unit that isolates an application process and its runtime dependencies from the rest of the host operating system. Unlike virtual machines, which virtualize physical hardware and run independent guest OS kernels, containers share the host Linux kernel while using kernel namespaces (for PID, network, mount, and IPC isolation) and cgroups (for CPU and memory resource boundaries). This lightweight model allows containers to start in sub-second timeframes, consume minimal baseline overhead, and behave identically across local development workstations, staging environments, and production clusters.
Serverless
Serverless computing allows developers to deploy and run application code without provisioning, configuring, or managing underlying servers. Instead of paying for allocated virtual machine capacity that runs around the clock, you provide your application logic and define event triggers. The cloud platform provisions compute resources on demand, executes your code, and meters billing in millisecond increments strictly for the execution duration. When traffic drops to zero, compute allocation scales down to zero, and billing ceases entirely.